sip:session initiation protocol che-yu kuo computer & information science department university...
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:[email protected]
• sip:[email protected]
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:[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
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
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
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
Call RedirectionCall Redirection
UAC Redirect serversip.acme.com
LocationService
UASgw.telco.com
1. INVITE [email protected]
4. 302 Moved [email protected]
5.ACK
6. INVITE [email protected]
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:[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
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
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
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!