Survey
* Your assessment is very important for improving the work of artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the work of artificial intelligence, which forms the content of this project
Session Initialization Protocol (SIP) Presented by: Aishwarya Gurazada CISC856: TCP/IP and upper layer protocols May 5th 2011 Some slides borrowed from the presentations of Lei Luo Che-Yu Kuo What is SIP? An IETF defined application-layer control (signaling) protocol for creating, modifying and terminating sessions Sessions are primarily audio and video calls over IP SIP incorporates elements of HTTP request-response model, text-based protocol, URL (SIP uses URI’s) and SMTP for header style such as To, From, and Subject 2 Motivation The telephony applications introduced signaling into IP network SIP was designed to mimic the call setup and signaling characteristics of the traditional telephone network over an IP infrastructure What does SIP do? SIP enables Internet endpoints (called user agents) to discover one another and to agree on a characterization of a session they would like to share As users may move between endpoints, they may be addressable by multiple names, and they may communicate in several different media 3 Facets of Establishing a Call User location: SIP enables the creation of an infrastructure of network hosts (called proxy servers) which could find in locating a user User availability: determination of the willingness of the called party to engage in communications User capabilities: media and media parameters to be used Session management: supports transfer, termination, and modification of sessions 4 SIP Protocol Stack SIP is rather a component that can be used with other IETF protocols to build a complete multimedia architecture. SDP( Session Description Protocol) for describing multimedia sessions during signaling SIP Enabled-IP Network IP Network RTP (real time protocol) defines a standardized packet format for delivering audio and video over IP networks Media Gateway Control Protocol (MEGACO) for controlling gateways SIP/PSTN Gateway PSTN Network 5 SIP – Transport Layer TCP TCP provides a reliable transport layer, but at a cost of complexity and transmission delay over the network. UDP UDP is the simplest way of transmitting chunks of data from one host to another in an IP network. Provided that the amount of data to be sent at once is not too big SCTP SCTP preserves boundaries SCTP avoids head of line blocking 6 SIP Client-Server Architecture User Agent – Softphone User Agent – Hard phone Registrar Server Kate’s & Sam’s location Mike Sam Servers Redirect Server Proxy Server Gateway Kate User Agent – Softphone SIP Gateway PSTN Network Jim 7 SIP Operation SIP addressing Locating the end user SIP messages- methods & responses Sending SIP requests : SIP transactions SIP Addressing SIP clients are identified by SIP URI (Uniform Resource Indicator) URI’s look like email addresses of the form user@domain The communication is user-to-user instead of device-to-device The user@domain needs to be resolved to user@host by using a SIP Proxy server and DNS lookups at the time of call examples sip:[email protected] (user@domain) sip:J.T. Kirk <[email protected]> sip:[email protected];user=phone sip:[email protected] (user@host) 9 Locating the End User When client wants to send a request URI, the client will either send it to Locally configured Proxy server or IP address & port corresponding to the request URI Jim needs to call Jane Location service Jim needs to know the CURRENT IP address of Jane to send request Locates Jane Request - Sip:[email protected] Request xyz.com proxy Server Server can locate Jane by looking up its “location service” database provided that Jane is registered [email protected] 10 SIP Message Format generic-message = Request-Line / Status-Line (Response) message-header (fields) CRLF [ message-body ] Request-Line INVITE sip: [email protected] SIP/2.0 Via: SIP/2.0/UDP lab.highvoltage.org:5060;branch=z9hG4bKfw19b v=0 Max-Forwards: 70 o=Tesla 2890844526 2890844526 IN IP4 lab.high-voltage.org To: G. Marconi <sip: [email protected]> s=Phone Call Tesla <sip:[email protected]>;tag=76341 From: Nikola c=IN IP4 j2qu348ek2328ws 100.101.102.103 Call-ID: t=0 0 1 INVITE CSeq: m=audio 49170 RTP/AVP 0 Outage... Subject: About That Power a=rtpmap:0<sip:[email protected]> PCMU/8000 Contact: Content-Type: application/sdp Content-Length: 158 Message body Header fields 11 Request Line Request-Line = Method SP Request-URI SP SIP-Version CRLF • REGISTER registering contact User to which the request information is addressed SIP version • INVITE, ACK, CANCEL setting up sessions • BYE terminating sessions • INVITE [email protected] SIP/2.0 OPTIONS querying servers about their capabilities 12 Status Line Status-Line = SIP-Version SP Status-Code SP Reason-Phrase CRLF SIP/2.0 1xx: Provisional -- request received, continuing to process the request; 2xx: Success -- the action was successfully received, understood, and accepted; The Reason-Phrase is intended to give a short textual description of the Status-Code. 3xx: Redirection -- further action needs to be taken in order to complete the request; SIP/2.0 180 Ringing 4xx: Client Error -- the request contains bad syntax or cannot be fulfilled at this server; 5xx: Server Error -- the server failed to fulfill an apparently valid request; 6xx: Global Failure -- the request cannot be fulfilled at any server. 13 Message Header fields Parameter Description Call-ID Uniquely identifies a particular session Cseq A monotonically increasing sequence number used to identify 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.g 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 14 Marconi Accepted Marconi Tesla INVITE ACK Media Session 200 OK Simple SIP session establishment example 15 Proxy Server Alice INVITE Bob INVITE ACK Media Session 200 OK SIP call example with proxy server 16 Alice Registrar Server SIP registration example 17 SUBSCRIBE … MESSAGE SIP presence and instant message example 18 SIP/2.0 REGISTER sip:registrar.udel.edu Via: SIP/2.0/UDP 128.175.13.50:5060; branch=z9hG4bKus19 Max-Forwards: 70 SIP/2.0 407 REQUIRED To: AUTHORIZATION Alice <sip:[email protected]> Via: SIP/2.0/UDP 128.175.13.50:5060; From: Alice SIP/2.0 REGISTER sip:registrar.udel.edu branch=z9hG4bKus19 <sip:[email protected]>;tag=3431 Via: SIP/2.0/UDP 128.175.13.50:5060; To: Alice <sip:[email protected]> Call-ID: branch=z9hG4bKus19 From: Alice <sip:[email protected]>;tag=3431 843817637684230@998sdasdh09 To: Alice <sip:[email protected]> Call-ID:843817637684230@998sdasdh09 CSeq: 1 REGISTER From: <sip:[email protected]>;tag=3431 CSeq:Alice 1500 REGISTER Contact: sip:[email protected] Call-ID:843817637684230@998sdasdh09 Contact: Content-Length: <sip:[email protected]>; 0 CSeq: 1 REGISTER Digest Proxy-Authenticate: Contact: <sip:[email protected]>;expires=3600 realm=“eecis.udel.edu", Proxy-Authorization: Digest username=“alice", nonce="4db894763e920f6ec021e68a3e87b098dc4a realm=“eecis.udel.edu, c8f9" nonce="4db894763e920f6ec021e68a3e87b098dc4ac8 Content-Length: 0 SIP/2.0 200 OK f9”,Via: uri=SIP/2.0/UDP [email protected], 128.175.13.50:5060; “response="d4456069e70376940998daae084cd5b5”, branch=z9hG4bKus19 Content-Length: 0 To: Alice <sip:[email protected]> From: Alice <sip:[email protected]>;tag=3431 Call-ID:843817637684230@998sdasdh09 CSeq: 1 REGISTER Contact: <sip:[email protected]>;expires=3600 Content-Length: 0 SIP Registration Server Alice Registrar Server 19 Simple Call Establishment Alice Inserts a “From” tag and sets the session parameters Inserts a “To” tag and sets the session parameters Call ID, from and to tags identify a dialog INVITE sip:[email protected] SIP/2.0 Via: SIP/2.0/UDP 100.101.102.103:5060; branch=z9hG4bKmp17a To: Bob <sip:[email protected]> SIP/2.0 180 Ringing From: Alice <sip:[email protected]>;tag=42 Via: SIP/2.0/UDP 100.101.102.103:5060; Call-ID: j2qu348ek2328ws branch=z9hG4bKmp17a Cseq: 1 IINVITE SIP/2.0 200 OKsip:[email protected] To: Bob sip:[email protected];tag=75 Contact: Via: SIP/2.0/UDP 100.101.102.103:5060; From: Alice <sip:[email protected]>;tag=42 Subject: Where are you exactly? branch=z9hG4bKmp17a Call-ID: j2qu348ek2328ws To: Bob sip:[email protected];tag=75 Cseq: 1 INVITE From: Alice <sip:[email protected]>;tag=42 Contact: <sip:[email protected]> Call-ID: j2qu348ek2328ws Cseq: 1 INVITE SIP/2.0 ACK Contact: <sip:[email protected]> Via: SIP/2.0/UDP 100.101.102.103:5060; Bob branch=z9hG4bK321g To: Bob sip:[email protected];tag=75 v=0 From: Alice <sip:[email protected]>;tag=42 o=alice 2890844526 2890844526 IN IP4 Call-ID: j2qu348ek2328ws alice.udel.edu Cseq: 1 ACK s=Phone Call v=0 IP4 100.101.102.103 c=IN o=bob t=0 0 2890844528 2890844528IN IP4 tower.yahoo.com m=audio 49170 RTP/AVP 0 s=Phone Call a=rtpmap:0 PCMU/8000 c=IN IP4 200.201.202.203 t=0 0 m=audio 60000 RTP/AVP 0 a=rtpmap:0 PCMU/8000 20 SIP Proxy Server DNS server INVITE sip:[email protected] SIP/2.0 Via: SIP/2.0/UDP 100.101.102.103:5060; branch=z9hG4bKmp17a To: Bob <sip:[email protected]> From: Alice <sip:[email protected]>;tag=42 Subject: Where areOutbound you exactly? Contact: <sip:[email protected]> INVITE sip:[email protected] SIP/2.0 Via: SIP/2.0/UDP proxy.udel.com:5060; branch=z9hG4bK83842.1 Via: SIP/2.0/UDP 100.101.102.103:5060; branch=z9hG4bKmp17a To: Bob <sip:[email protected]> From: Alice <sip:[email protected]>;tag=42 Subject: Where are you exactly? Contact: <sip:[email protected]> proxy server 100180 Trying Ringing 200 OK 100 Trying 180 Ringing 200 OK INVITE sip:[email protected] SIP/2.0 Via: SIP/2.0/UDP Location proxy.yahoo.com:5060; branch=z9hG4bKtiop3 server Via: SIP/2.0/UDP proxy.udel.com:5060; branch=z9hG4bK83842.1 Via: SIP/2.0/UDP 100.101.102.103:5060; branch=z9hG4bKmp17a To: Bob <sip:[email protected]> From: Alice Inbound <sip:[email protected]>;tag=42 proxyWhere server Subject: are you exactly? Contact: <sip:[email protected]> 180 Ringing 200 OK BYE Media (RTP) ACK Alice 200 OK Bob SIP Trapezoid 21 SIP Proxy Server Location Service INVITE Bob INVITE Bob Bob’s Phone Proxy Server 486 Busy Here Alice INVITE Bob Proxy servers can make flexible “routing decisions” to decide where to send a request. Bob’s voicemail 22 SIP Redirect Server SIP/2.0 301 Moved Permanently Via: SIP/2.0/UDP 100.101.102.103:5060; INVITE sip:[email protected] SIP/2.0 branch=z9hG4bKmp17a Via: SIP/2.0/UDP 100.101.102.103:5060; To: Bob <sip:[email protected]>;tag=64 branch=z9hG4bKmp17a From: Alice To: Bob <sip:[email protected]> <sip:[email protected]>;tag=42 From: Alice Subject: Where are you exactly? <sip:[email protected]>;tag=42 Contact: sip:[email protected] Subject: Where are you exactly? INVITE sip:[email protected] SIP/2.0 Contact: <sip:[email protected]> Via: SIP/2.0/UDP 100.101.102.103:5060; branch=z9hG4bKmp17a ACK To: Bob <sip:[email protected]> From: Alice <sip:[email protected]>;tag=13473 Subject: Where are you exactly? Contact: <sip:[email protected]> Redirect Server Alice Bob 23 Terminal Mobility- Pre-call Mobile -JIM JANE Home Proxy/registrar REGISTER 200 OK INVITE INVITE 200 OK 200 OK ACK Media Session 24 Terminal Mobility- Mid Call Media Session Home Network Visited Network 25 Personal Mobility INVITE 200Bob OK Location Service INVITE Bob Alice 200 OK Bob’s Cell Phone Bob’s Office Phone INVITE Bob CANCEL Proxy Server INVITE Bob CANCEL Bob’s Home Phone In parallel search, a proxy issues several requests to possible user locations upon receiving an incoming request. 26 Session Mobility Transfer and Retrieval Transfer means to move the session on the current device to one or more other devices Retrieval means to cause a session currently on another device to be transferred to the local device Whole and Split Transfer The set of session media may either be transferred completely to a single device or split across multiple devices 27 Transfer Modes Mobile Node (MN) Control Mode Mobile Node (MN) uses a third party call control It establishes a SIP session with the local device used in the transfer and updates its session with the CN (corresponding node), using the SDP parameters to establish media sessions between the CN and the local device it requires the MN to remain active to maintain the sessions Session Hands off Mode MN completely transfers the session signaling and media to another device Addressing of Devices All devices are assumed to have dedicated SIP URI’s A device has a unique URI and registers a separate contact URI for itself 28 Local Device Corresponding Node Mobile Node Media Session INVITE 200 OK local Parameters INVITE local Parameters 200 OK CN parameters ACK CN Parameters ACK Media Session 29 Local Device Corresponding Node Mobile Node Media Session REFER ,refer-to 200 Accepted INVITE, Replaces 200 OK Media Session ACK Media Session NOTIFY 200 OK BYE 200 OK 30 References J. Rosenberg, SIP: Session Initialization Protocol, RFC 3261, 2002 A. Johnston, SIP: Understanding the Session Initialization Protocol, 2nd edition 31 Questions 32