SIP:Session Initiation Protocol

34
SIP:Session Initiation SIP:Session Initiation Protocol Protocol Che-Yu Kuo Computer & Information Science Department University of Delaware May 11, 2010 CISC 856: TCP/IP and Upper Layer Protocols

description

CISC 856: TCP/IP and Upper Layer Protocols. SIP:Session Initiation Protocol. Che-Yu Kuo Computer & Information Science Department University of Delaware May 11, 2010. What is SIP?. Proposed Standard described in IETF RFC 2543 Application-layer control protocol - PowerPoint PPT Presentation

Transcript of SIP:Session Initiation Protocol

Page 1: SIP:Session Initiation Protocol

SIP:Session Initiation ProtocolSIP:Session Initiation Protocol

Che-Yu Kuo

Computer & Information Science Department

University of Delaware

May 11, 2010

CISC 856: TCP/IP and Upper Layer Protocols

Page 2: SIP:Session Initiation Protocol

What is SIP?What is SIP?

Proposed Standard described in IETF RFC 2543

Application-layer control protocol

A signaling protocol for initiating, managing and terminating voice and audio session across packet networks with one or more participants .

Text-based protocol with highly extensible

Page 3: SIP:Session Initiation Protocol

SIP FunctionalitySIP Functionality

User location

User availability

User Capabilities

Session setup

Session Management

Page 4: SIP:Session Initiation Protocol

SIP basic servicesSIP basic services

Call forwarding

Call diversion

Personal mobility

Calling and called party authentication

Terminal capabilities negotiation

Multicast conferencing

Page 5: SIP:Session Initiation Protocol

SIP operationSIP operation

USER AGENT 1

USER AGENT2

1.invitation 2.invitation

3. OK4. OK

5.Acknowledge 6.Acknowledge

7. Audio/Video data 7. Audio/Video data

From: Thomas Doumas

Next Generation Telephony: A Look at Session Initiation Protocol White Paper

Page 6: SIP:Session Initiation Protocol

SIP entitiesSIP entities

User Agent (UA) User agent client (UAC)

User agent server (UAS)

Proxy server Stateless proxy server

Stateful proxy server

Redirect server

Registrar

Page 7: SIP:Session Initiation Protocol

SIP Protocol StructureSIP Protocol Structure

From: http://docs.sun.com/app/docs/doc/821-0203/6nl988v7d

ClientSending Request

Receiving Response

ServerReceiving Request

Sending Response

Framing

Error Handling

ClientINVITE Transaction

ACK

Non INVITE Transaction

Matching Requests to Client Transactions

ServerINVITE Transaction

Non INVITE Transaction

Matching Requests to Server Transactions

Error Handling

Page 8: SIP:Session Initiation Protocol

SIP ProtocolsSIP Protocols

SIP provides basic elements of telephony SIP: Call setup and termination

SDP: Describe call configuation

RTP: data transfer

RTCP: data stream management

Page 9: SIP:Session Initiation Protocol

SIP Protocol stackSIP Protocol stack

TCP

From: Thomas Doumas

Next Generation Telephony: A Look at Session Initiation Protocol White Paper

UDP

SDP SIP RTP RTCP

IP

Link and Physical Layers

Page 10: SIP:Session Initiation Protocol

SIP on TCP / UDPSIP on TCP / UDP

SIP can run over any datagram or stream protocol.

Why UDP is default protocol?? Performance

Scalability

Page 11: SIP:Session Initiation Protocol

SIP addressingSIP addressing

SIP clients are identified by a SIP URL which follows the “user @ host” form. User: user name / telephone number

Host: domain name / host name/ numeric network address

Examples:

• sip:[email protected]

• sip:[email protected]

Page 12: SIP:Session Initiation Protocol

SIP MessagesSIP Messages

SIP Requests

Sent from the client to the server

SIP Responses

Sent from the server to the client

Message parts Start line

Headers

Body(content)

Page 13: SIP:Session Initiation Protocol

SIP request methodsSIP request methods

Method Description

INVITE Initiates a call, changes call parameters

ACK Confirms a final response for INVITE

BYE Terminates a call

CANCEL Cancel searches and “ringing”

OPTIONS Queries the capabilities of the other side

REGISTER Registers with the Location Service

INFO Sends mid-session information that does not modify the session state.

Page 14: SIP:Session Initiation Protocol

Invite messageInvite message

Parameter Description

Call-ID Uniquely identifies a particular session

Cseq A monotonically increasing sequence number used to indetify the sequence of requests associated with a given Call-ID

From A SIP URL that identifies the initiator of the request. May include a “friendly name” (e.q. John)

To A SIP URL that identifies the recipient of the request. May include a “friendly name”

Via Indicates the path taken by the request.

Page 15: SIP:Session Initiation Protocol

SIP response typesSIP response types

Provisional 1xx = provisional, searching, ringing, queuing etc.

Final 2xx = success

3xx = redirection, forwarding

4xx = request failure(client mistakes)

5xx = server failure

6xx = global failure (busy, refusal, not available anywhere)

Page 16: SIP:Session Initiation Protocol

SIP response examplesSIP response examples 100 trying

180 ringing

200 OK

300 Multiple choices

301 Moved permanently

302 Moved temporarily

400 Bad request

401 Unauthorized

403 forbidden

408 Request time-out

480 Unavailable

481 Call-leg/Transaction does not exist

482 Loop detected

5xx Server error

600 Busy

603 decline

604 Does not exist

606 Not acceptable

Page 17: SIP:Session Initiation Protocol

SDP: session description protocolSDP: session description protocol

Used to described the attributes of SIP sessions

SDP parameters are encapsulated as the message body of a SIP request

Encoded with ASCII text

Simple form <type>=<value>

Page 18: SIP:Session Initiation Protocol

Information in SDPInformation in SDP Session Information

Session name and purpose

Time(s) the session is active

Information about the bandwidth

Contact information for the person responsible for this session

Media Information Type of media(audio/video)

Type of Transport protocol(UDP/TCP/RTP)

Media Format(H.261/Mpeg)

Multicast address and Transport Port for media

Remote address for media and Transport Port for contact address

Page 19: SIP:Session Initiation Protocol

Request Message exampleRequest Message exampleINVITE sip:[email protected] SIP/2.0

Via: SIP/2.0/UDP alice_ws.radvision.com

From: Alice A. <sip:[email protected]>

To: Bob B. <sip:[email protected]>

Call-ID: 2388990012@alice_ws.radvision.com

CSeq: 1 INVITE

Subject: Lunch today.

Content-Type: application/SDP

Content-Length: 182

{BODY}

v=0 o=Alice 53655765 2353687637 IN IP4 128.3.4.5 s=Call from Alice. c=IN IP4 alice_ws.radvision.com M=audio 3456 RTP/AVP 0 3 4 5

Page 20: SIP:Session Initiation Protocol

Response Message exampleResponse Message example

SIP/2.0 200 OK

Via: SIP/2.0/UDP alice_ws.radvision.com

From: Alice A. <sip:[email protected]>

To: Bob B. <sip:[email protected]>;tag=17462311

Call-ID: 2388990012@alice_ws.radvision.com

CSeq: 1 INVITE

Content-Type: application/SDP

Content-Length: 200

{BODY}

v=0 o=Bob 4858949 4858949 IN IP4 192.1.2.3 s=Lunch c=IN IP4 machine1.acme.com m=audio 5004 RTP/AVP 0 3

Page 21: SIP:Session Initiation Protocol

Session establishment and terminationSession establishment and termination

UAC UAS

1: INVITE [email protected]

2. 100 Trying

3. 180 Ringing

4. 182 Queued, 2callers ahead

5. 182 Queued, 1callers ahead

6. 200 OK

7.ACK

1: BYE [email protected]

2. 200 OK

Page 22: SIP:Session Initiation Protocol

RegistrationRegistration

Bob’s softphone

Biloxi.comregistrar

Register

200 OKREGISTER sip:registrar.biloxi.com SIP/2.0Via: SIP/2.0/UDP bobspc.biloxi.com:5060;branch=z9hG4bKnashds7Max-Forwards: 70To: Bob <sip:[email protected]>From: Bob <sip:[email protected]>;tag=456248Call-ID: 843817637684230@998sdasdh09CSeq: 1826 REGISTERContact: <sip:[email protected]>Expires: 7200Content-Length: 0

SIP/2.0 200 OKVia: SIP/2.0/UDP bobspc.biloxi.com:5060;branch=z9hG4bKnashds7 ;received=192.0.2.4To: Bob <sip:[email protected]>;tag=2493k59kdFrom: Bob <sip:[email protected]>;tag=456248Call-ID: 843817637684230@998sdasdh09CSeq: 1826 REGISTERContact: <sip:[email protected]>Expires: 7200Content-Length: 0

Page 23: SIP:Session Initiation Protocol

Call RedirectionCall Redirection

UAC Redirect serversip.acme.com

LocationService

UASgw.telco.com

1. INVITE [email protected]

2. [email protected]?

3. [email protected]

4. 302 Moved [email protected]

5.ACK

6. INVITE [email protected]

7. 200 OK

8.ACK

Page 24: SIP:Session Initiation Protocol

Call ProxyCall ProxyBob’s

softphoneBiloxi.com

ProxyAtlanta.com

ProxyAlice’s

softphone

1.INVITE

3..INVITE5..INVITE

2.100 Trying

4.100 Trying6.180 Ringing

1. INVITE Alice -> atlanta.com proxy

INVITE sip:[email protected] SIP/2.0Via: SIP/2.0/UDP pc33.atlanta.com;branch=z9hG4bKnashds8Max-Forwards: 70To: Bob <sip:[email protected]>From: Alice <sip:[email protected]>;tag=1928301774Call-ID: a84b4c76e66710CSeq: 314159 INVITEContact: <sip:[email protected]>Content-Type: application/sdpContent-Length: 142

2. 100 Trying atlanta.com proxy -> Alice

SIP/2.0 100 TryingVia: SIP/2.0/UDP pc33.atlanta.com;branch=z9hG4bKnashds8 ;received=192.0.2.1To: Bob <sip:[email protected]>From: Alice <sip:[email protected]>;tag=1928301774Call-ID: a84b4c76e66710CSeq: 314159 INVITEContent-Length: 0

3 INVITE atlanta.com proxy -> biloxi.com proxy

INVITE sip:[email protected] SIP/2.0Via: SIP/2.0/UDP bigbox3.site3.atlanta.com;branch=z9hG4bK77ef4c2312983.1Via: SIP/2.0/UDP pc33.atlanta.com;branch=z9hG4bKnashds8 ;received=192.0.2.1Max-Forwards: 69To: Bob <sip:[email protected]>From: Alice <sip:[email protected]>;tag=1928301774Call-ID: a84b4c76e66710CSeq: 314159 INVITEContact: <sip:[email protected]>Content-Type: application/sdpContent-Length: 142

F4 100 Trying biloxi.com proxy -> atlanta.com proxy

SIP/2.0 100 TryingVia: SIP/2.0/UDP bigbox3.site3.atlanta.com;branch=z9hG4bK77ef4c2312983.1 ;received=192.0.2.2Via: SIP/2.0/UDP pc33.atlanta.com;branch=z9hG4bKnashds8 ;received=192.0.2.1To: Bob <sip:[email protected]>From: Alice <sip:[email protected]>;tag=1928301774Call-ID: a84b4c76e66710CSeq: 314159 INVITEContent-Length: 0

5.INVITE biloxi.com proxy -> BobINVITE sip:[email protected] SIP/2.0Via: SIP/2.0/UDP server10.biloxi.com;branch=z9hG4bK4b43c2ff8.1Via: SIP/2.0/UDP bigbox3.site3.atlanta.com;branch=z9hG4bK77ef4c2312983.1 ;received=192.0.2.2Via: SIP/2.0/UDP pc33.atlanta.com;branch=z9hG4bKnashds8 ;received=192.0.2.1Max-Forwards: 68To: Bob <sip:[email protected]>From: Alice <sip:[email protected]>;tag=1928301774Call-ID: a84b4c76e66710CSeq: 314159 INVITEContact: <sip:[email protected]>Content-Type: application/sdpContent-Length: 142

6.180 Ringing Bob -> biloxi.com proxySIP/2.0 180 RingingVia: SIP/2.0/UDP server10.biloxi.com;branch=z9hG4bK4b43c2ff8.1 ;received=192.0.2.3Via: SIP/2.0/UDP bigbox3.site3.atlanta.com;branch=z9hG4bK77ef4c2312983.1 ;received=192.0.2.2Via: SIP/2.0/UDP pc33.atlanta.com;branch=z9hG4bKnashds8 ;received=192.0.2.1To: Bob <sip:[email protected]>;tag=a6c85cfFrom: Alice <sip:[email protected]>;tag=1928301774Call-ID: a84b4c76e66710Contact: <sip:[email protected]>CSeq: 314159 INVITEContent-Length: 0

Page 25: SIP:Session Initiation Protocol

Call ProxyCall ProxyBob’s

softphoneBiloxi.com

ProxyAtlanta.com

ProxyAlice’s

softphone

1.INVITE

3..INVITE5..INVITE

2.100 Trying

4.100 Trying6.180 Ringing

7.180 Ringing8.180 Ringing

9. 200 OK10. 200 OK

11. 200 OK

12. ACK

7.180 Ringing biloxi.com proxy -> atlanta.com proxy

SIP/2.0 180 RingingVia: SIP/2.0/UDP bigbox3.site3.atlanta.com;branch=z9hG4bK77ef4c2312983.1 ;received=192.0.2.2Via: SIP/2.0/UDP pc33.atlanta.com;branch=z9hG4bKnashds8 ;received=192.0.2.1To: Bob <sip:[email protected]>;tag=a6c85cfFrom: Alice <sip:[email protected]>;tag=1928301774Call-ID: a84b4c76e66710Contact: <sip:[email protected]>CSeq: 314159 INVITEContent-Length: 0

8 180 Ringing atlanta.com proxy -> Alice

SIP/2.0 180 RingingVia: SIP/2.0/UDP pc33.atlanta.com;branch=z9hG4bKnashds8 ;received=192.0.2.1To: Bob <sip:[email protected]>;tag=a6c85cfFrom: Alice <sip:[email protected]>;tag=1928301774Call-ID: a84b4c76e66710Contact: <sip:[email protected]>CSeq: 314159 INVITEContent-Length: 0

9 200 OK Bob -> biloxi.com proxySIP/2.0 200 OKVia: SIP/2.0/UDP server10.biloxi.com;branch=z9hG4bK4b43c2ff8.1 ;received=192.0.2.3Via: SIP/2.0/UDP bigbox3.site3.atlanta.com;branch=z9hG4bK77ef4c2312983.1 ;received=192.0.2.2Via: SIP/2.0/UDP pc33.atlanta.com;branch=z9hG4bKnashds8 ;received=192.0.2.1To: Bob <sip:[email protected]>;tag=a6c85cfFrom: Alice <sip:[email protected]>;tag=1928301774Call-ID: a84b4c76e66710CSeq: 314159 INVITEContact: <sip:[email protected]>Content-Type: application/sdpContent-Length: 131

10. 200 OK biloxi.com proxy -> atlanta.com proxySIP/2.0 200 OKVia: SIP/2.0/UDP bigbox3.site3.atlanta.com;branch=z9hG4bK77ef4c2312983.1 ;received=192.0.2.2Via: SIP/2.0/UDP pc33.atlanta.com;branch=z9hG4bKnashds8 ;received=192.0.2.1To: Bob <sip:[email protected]>;tag=a6c85cfFrom: Alice <sip:[email protected]>;tag=1928301774Call-ID: a84b4c76e66710CSeq: 314159 INVITEContact: <sip:[email protected]>Content-Type: application/sdpContent-Length: 131

11 200 OK atlanta.com proxy -> Alice

SIP/2.0 200 OKVia: SIP/2.0/UDP pc33.atlanta.com;branch=z9hG4bKnashds8 ;received=192.0.2.1To: Bob <sip:[email protected]>;tag=a6c85cfFrom: Alice <sip:[email protected]>;tag=1928301774Call-ID: a84b4c76e66710CSeq: 314159 INVITEContact: <sip:[email protected]>Content-Type: application/sdpContent-Length: 131

12 ACK Alice -> Bob

ACK sip:[email protected] SIP/2.0Via: SIP/2.0/UDP pc33.atlanta.com;branch=z9hG4bKnashds9Max-Forwards: 70To: Bob <sip:[email protected]>;tag=a6c85cfFrom: Alice <sip:[email protected]>;tag=1928301774Call-ID: a84b4c76e66710CSeq: 314159 ACKContent-Length: 0

Page 26: SIP:Session Initiation Protocol

Call ProxyCall ProxyBob’s

softphoneBiloxi.com

ProxyAtlanta.com

ProxyAlice’s

softphone

1.INVITE

3..INVITE5..INVITE

2.100 Trying

4.100 Trying6.180 Ringing

7.180 Ringing8.180 Ringing

9. 200 OK10. 200 OK

11. 200 OK

12. ACK

Media Session

13.BYE

14. 200 OK

13 BYE Bob -> Alice

BYE sip:[email protected] SIP/2.0Via: SIP/2.0/UDP 192.0.2.4;branch=z9hG4bKnashds10Max-Forwards: 70From: Bob <sip:[email protected]>;tag=a6c85cfTo: Alice <sip:[email protected]>;tag=1928301774Call-ID: a84b4c76e66710CSeq: 231 BYEContent-Length: 0

14 200 OK Alice -> Bob

SIP/2.0 200 OKVia: SIP/2.0/UDP 192.0.2.4;branch=z9hG4bKnashds10From: Bob <sip:[email protected]>;tag=a6c85cfTo: Alice <sip:[email protected]>;tag=1928301774Call-ID: a84b4c76e66710CSeq: 231 BYEContent-Length: 0

Page 27: SIP:Session Initiation Protocol

SIP Protocol StructureSIP Protocol Structure

From: http://docs.sun.com/app/docs/doc/821-0203/6nl988v7d

Page 28: SIP:Session Initiation Protocol

SIP Protocol StructureSIP Protocol StructureBob’s

softphoneBiloxi.com

ProxyAtlanta.com

ProxyAlice’s

softphone

1.INVITE

3..INVITE5..INVITE

2.100 Trying

4.100 Trying6.180 Ringing

7.180 Ringing8.180 Ringing

9. 200 OK10. 200 OK

11. 200 OK

Page 29: SIP:Session Initiation Protocol

SIP Protocol StructureSIP Protocol StructureBob’s

softphoneBiloxi.com

ProxyAtlanta.com

ProxyAlice’s

softphone

ClientTransaction

UAC core

ClientTransport

ServerTransaction

Proxy core

ServerTransport

ClientTransaction

ClientTransport

ServerTransaction

Proxy core

ServerTransport

ClientTransaction

ClientTransport

ServerTransaction

UAS core

ServerTransport

2.100 trying

sendReceive

Response

100 trying1.Invite request

request

send Receive

Request

Invite request

Open session

Page 30: SIP:Session Initiation Protocol

SIP Protocol StructureSIP Protocol StructureBob’s

softphoneBiloxi.com

ProxyAtlanta.com

ProxyAlice’s

softphone

ClientTransaction

UAC core

ClientTransport

ServerTransaction

Proxy core

ServerTransport

ClientTransaction

ClientTransport

ServerTransaction

Proxy core

ServerTransport

ClientTransaction

ClientTransport

ServerTransaction

UAS core

ServerTransport

3.Invite request

request

send Receive

Request

Invite request

4.100 trying

sendReceive

Response

100 trying

Page 31: SIP:Session Initiation Protocol

SIP Protocol StructureSIP Protocol StructureBob’s

softphoneBiloxi.com

ProxyAtlanta.com

ProxyAlice’s

softphone

ClientTransaction

UAC core

ClientTransport

ServerTransaction

Proxy core

ServerTransport

ClientTransaction

ClientTransport

ServerTransaction

Proxy core

ServerTransport

ClientTransaction

ClientTransport

ServerTransaction

UAS core

ServerTransport

5.Invite request

request

send Receive

Request

Invite request

Response

sendReceive

Response

180 ringing 6.180 ringing

Response

sendReceive

Response

180 ringing 7.180 ringing

Response

sendReceive

Response

180 ringing 8.180 ringing

Page 32: SIP:Session Initiation Protocol

SIP Protocol StructureSIP Protocol StructureBob’s

softphoneBiloxi.com

ProxyAtlanta.com

ProxyAlice’s

softphone

ClientTransaction

UAC core

ClientTransport

ServerTransaction

Proxy core

ServerTransport

ClientTransaction

ClientTransport

ServerTransaction

Proxy core

ServerTransport

ClientTransaction

ClientTransport

ServerTransaction

UAS core

ServerTransport

Response

sendReceive

Response

200 OK 10.200 OK

Response

sendReceive

Response

200 OK 11. 200 OK

Response

sendReceive

Response

200 OK 9.200 OK

Page 33: SIP:Session Initiation Protocol

ReferencesReferences

T. Doumas, Next Generation Telephony: A Look at Session Initiation Protocol White Paper

Radvision SIP Overview

P. Stalvig, Session Initiated Protocol(SIP): A Five-Function Protocol, 2008/07

http://www.tech-invite.com/Ti-sip-archi.html

Page 34: SIP:Session Initiation Protocol

QuestionsQuestions

Thanks!