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

Post on 04-Jan-2016

212 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

Transcript

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

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

SIP FunctionalitySIP Functionality

User location

User availability

User Capabilities

Session setup

Session Management

SIP basic servicesSIP basic services

Call forwarding

Call diversion

Personal mobility

Calling and called party authentication

Terminal capabilities negotiation

Multicast conferencing

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

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

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

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

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

SIP on TCP / UDPSIP on TCP / UDP

SIP can run over any datagram or stream protocol.

Why UDP is default protocol?? Performance

Scalability

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:graceland@ixlmemphis.com

• sip:+1-800-555-1212@information.att.net

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)

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.

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.

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)

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

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>

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

Request Message exampleRequest Message exampleINVITE sip:bob@acme.com SIP/2.0

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

From: Alice A. <sip:alice@radvision.com>

To: Bob B. <sip:bob@acme.com>

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

Response Message exampleResponse Message example

SIP/2.0 200 OK

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

From: Alice A. <sip:alice@radvision.com>

To: Bob B. <sip:bob@acme.com>;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

Session establishment and terminationSession establishment and termination

UAC UAS

1: INVITE bob@lab.acme.com

2. 100 Trying

3. 180 Ringing

4. 182 Queued, 2callers ahead

5. 182 Queued, 1callers ahead

6. 200 OK

7.ACK

1: BYE bob@lab.acme.com

2. 200 OK

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:bob@biloxi.com>From: Bob <sip:bob@biloxi.com>;tag=456248Call-ID: 843817637684230@998sdasdh09CSeq: 1826 REGISTERContact: <sip:bob@192.0.2.4>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:bob@biloxi.com>;tag=2493k59kdFrom: Bob <sip:bob@biloxi.com>;tag=456248Call-ID: 843817637684230@998sdasdh09CSeq: 1826 REGISTERContact: <sip:bob@192.0.2.4>Expires: 7200Content-Length: 0

Call RedirectionCall Redirection

UAC Redirect serversip.acme.com

LocationService

UASgw.telco.com

1. INVITE bob@acme.com

2. bob@acme.com?

3. 35733572@gw.telco.com

4. 302 Moved temporarily35733572@gw.telco.com

5.ACK

6. INVITE 35733572@gw.telco.com

7. 200 OK

8.ACK

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:bob@biloxi.com SIP/2.0Via: SIP/2.0/UDP pc33.atlanta.com;branch=z9hG4bKnashds8Max-Forwards: 70To: Bob <sip:bob@biloxi.com>From: Alice <sip:alice@atlanta.com>;tag=1928301774Call-ID: a84b4c76e66710CSeq: 314159 INVITEContact: <sip:alice@pc33.atlanta.com>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:bob@biloxi.com>From: Alice <sip:alice@atlanta.com>;tag=1928301774Call-ID: a84b4c76e66710CSeq: 314159 INVITEContent-Length: 0

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

INVITE sip:bob@biloxi.com 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:bob@biloxi.com>From: Alice <sip:alice@atlanta.com>;tag=1928301774Call-ID: a84b4c76e66710CSeq: 314159 INVITEContact: <sip:alice@pc33.atlanta.com>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:bob@biloxi.com>From: Alice <sip:alice@atlanta.com>;tag=1928301774Call-ID: a84b4c76e66710CSeq: 314159 INVITEContent-Length: 0

5.INVITE biloxi.com proxy -> BobINVITE sip:bob@192.0.2.4 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:bob@biloxi.com>From: Alice <sip:alice@atlanta.com>;tag=1928301774Call-ID: a84b4c76e66710CSeq: 314159 INVITEContact: <sip:alice@pc33.atlanta.com>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:bob@biloxi.com>;tag=a6c85cfFrom: Alice <sip:alice@atlanta.com>;tag=1928301774Call-ID: a84b4c76e66710Contact: <sip:bob@192.0.2.4>CSeq: 314159 INVITEContent-Length: 0

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:bob@biloxi.com>;tag=a6c85cfFrom: Alice <sip:alice@atlanta.com>;tag=1928301774Call-ID: a84b4c76e66710Contact: <sip:bob@192.0.2.4>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:bob@biloxi.com>;tag=a6c85cfFrom: Alice <sip:alice@atlanta.com>;tag=1928301774Call-ID: a84b4c76e66710Contact: <sip:bob@192.0.2.4>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:bob@biloxi.com>;tag=a6c85cfFrom: Alice <sip:alice@atlanta.com>;tag=1928301774Call-ID: a84b4c76e66710CSeq: 314159 INVITEContact: <sip:bob@192.0.2.4>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:bob@biloxi.com>;tag=a6c85cfFrom: Alice <sip:alice@atlanta.com>;tag=1928301774Call-ID: a84b4c76e66710CSeq: 314159 INVITEContact: <sip:bob@192.0.2.4>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:bob@biloxi.com>;tag=a6c85cfFrom: Alice <sip:alice@atlanta.com>;tag=1928301774Call-ID: a84b4c76e66710CSeq: 314159 INVITEContact: <sip:bob@192.0.2.4>Content-Type: application/sdpContent-Length: 131

12 ACK Alice -> Bob

ACK sip:bob@192.0.2.4 SIP/2.0Via: SIP/2.0/UDP pc33.atlanta.com;branch=z9hG4bKnashds9Max-Forwards: 70To: Bob <sip:bob@biloxi.com>;tag=a6c85cfFrom: Alice <sip:alice@atlanta.com>;tag=1928301774Call-ID: a84b4c76e66710CSeq: 314159 ACKContent-Length: 0

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:alice@pc33.atlanta.com SIP/2.0Via: SIP/2.0/UDP 192.0.2.4;branch=z9hG4bKnashds10Max-Forwards: 70From: Bob <sip:bob@biloxi.com>;tag=a6c85cfTo: Alice <sip:alice@atlanta.com>;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:bob@biloxi.com>;tag=a6c85cfTo: Alice <sip:alice@atlanta.com>;tag=1928301774Call-ID: a84b4c76e66710CSeq: 231 BYEContent-Length: 0

SIP Protocol StructureSIP Protocol Structure

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

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

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

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

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

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

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

QuestionsQuestions

Thanks!

top related