230 likes | 574 Views
Session Initiation Protocol (SIP). Stephen Jones 1/25/01. Organization: G061 Project: 51MSR81G. What is SIP?. A simple, powerful protocol that allows users to initiate interactive sessions (audio/video/VoIP) An alternative approach to the H.323 protocol Advantages: Flexible Scalable
E N D
Session Initiation Protocol(SIP) Stephen Jones 1/25/01 Organization: G061 Project: 51MSR81G
What is SIP? • A simple, powerful protocol that allows users to initiate interactive sessions (audio/video/VoIP) • An alternative approach to the H.323 protocol • Advantages: • Flexible • Scalable • Easy to implement • Interoperable • Extensible
Where did SIP come from? • Began as a component of the Mbone, a multicast network that provides dynamic content across the Internet. • Needed to be interoperable with other protocols, including Session Description Protocol (SDP), Real-Time Streaming Protocol (RTSP), and Session Announcement Protocol (SAP) • Interest in VoIP provided impetus to complete specification in 1998. • Became an official IETF standard, RFC 2543, in March 1999. • Tri-annual “bake-offs” ensure compatibility between different implementations
What does SIP do? • Handles the establishment of user sessions • Does not define the actual session information • Locate users in a very dynamic environment • Delivers a description of the session • Uses common MIME extensions • Can negotiate a common format • Allows users to change/control/terminate sessions
Example 1 • User 1 requests a session, passing characteristics to other users • User 2 accepts invitation, modifying session as necessary • Session begins • Either user signals the other if changes are necessary, or when terminating the session SIP Signaling IP Network User 1 Media Stream User 2
Network Entities • User Agent: • User Agent Client (sends requests) • User Agent Server (returns responses) • Usually combined on a user’s client machine • Redirect Server • Accepts SIP requests, translates them to new addresses, and returns these values • Proxy Server • Acts like a proxy server for web accesses • Registrar • Accepts REGISTER requests. Typically combined with a Proxy or Redirect server
Example 2 • Steve registers with the local SIP server (Not shown) • Deb invites Steve<sip:srjones@mitre.org> (Found using DNS SRV Resource Records) • Server responds with a redirect message • machine1 ACKs server response and resends to machine2 • Steve receives request and replies with OK to join session Deb <sip:deb@machine1.mitre.org> 1. INVITE 2. Resp. 302 3. ACK <sip:server.mitre.org> 4. INVITE 5. Resp. 200 Steve <sip:srjones@machine2.mitre.org>
Points about Example 2 • SIP URL’s similar to email addresses that use mailto: • sip:srjones@mitre.org • sip:+1-781-271-2517@mitre.org; user=phone • SIP is a request - response protocol • Small set of well-defined Request messages (INVITE, REGISTER, CANCEL, ACK, OPTIONS, BYE) • Responses include status code that may define whether further interactions required • Allows protocol to use either UDP or TCP • Handles timing and retransmit issues • Users can be addressed by a common name • No matter which machine the recipient is on, they can be reached at their address • Internet scalable
Message Structure • Structure of SIP messages are text-based and based on HTTP: start line message-header line message-header line … message-header line <CRLF> message-body
Example messages <sip:deb@machine1.mitre.org> <sip:srjones@machine2.mitre.org> INVITE sip:srjones@machine2.mitre.org Via: SIP/2.0/UDP machine1.mitre.org From: <sip:deb@machine1.mitre.org> To: <sip:srjones@machine2.mitre.org> Call-ID: 123456@machine1.mitre.org CSeq: 1 INVITE Subject: Big meeting Content-Length: 125 Content-Type: application/sdp (SDP message body) SIP/2.0 180 Ringing Via: SIP/2.0/UDP machine1.mitre.org From: <sip:deb@machine1.mitre.org> To: <sip:srjones@machine2.mitre.org> Call-ID: 123456@machine1.mitre.org Cseq: 1 INVITE Content-Length: 0 SIP/2.0 200 OK ...
Sample Implementation - A Conferencing Service • User is automatically registered upon starting tool. They will be found through an extension to DNS which will forward sip: calls to the appropriate SIP server • Active tools are selected for each area (audio, video, VoIP phone, etc) by clicking the appropriate button, which cycles through choices (e.g. desktop chat tool or Palm chat tool) • A prompt (with an appropriate text message) will be displayed when someone attempts to call • The Call button will allow for quick lookup of users (LDAP) and tools users wish to use • When iconified, the tool goes into “User Busy” mode
Services That SIP Can Provide • Call Hold • Consultation Hold • Unattended Transfer • Call forward on Busy/No Answer/Unconditional • 3-Way Conference • Find-Me • Incoming/Outgoing Call Screening • Call Waiting
Dynamic Capabilities Provided By SIP • Call Processing Language (CPL) • XML scripts that may be created by end users and uploaded to SIP servers for configurable call setup • SIP CGI • Provide information in the same manner as HTTP CGI • SIP Servlets • Again work the same as the HTTP version • Can be hosted in end user devices as well as servers
SIP (IETF) A piece of a communications system Flexible - can be combined with other protocols Designed as a WAN protocol Many concepts derived from HTTP Extremely easy to implement Fully integrated with other Internet protocols (email, web) H.323 (ITU) A complete, integrated suite of protocols for communications Provides all protocols it requires Designed as a LAN protocol Many components derived from other ITU protocols Very complicated to implement SIP vs. H.323
Interoperability with Other Services • Internet-PSTN telephony • Use of phone numbers allows VoIP phones and standard PSTN phones to contact each other • Gateways already exist to do this • SIP-H.323 Internetworking • Internet Draft has been prepared to address this capability • Lucent PacketStar IP • SIP-WAP interoperability • Proxy server can pass information between networks • SIP-Instant Messaging/Presence Awareness • Extensions to SIP have been proposed to allow IMPP interoperability • SIP-SOAP (Simple Object Access Protocol) • Internet Draft has been prepared
Potential Problems for SIP • Shortage of IPv4 addresses and growing use of Network Address Translators (NAT) • SIP carries the IP addresses and ports of the session to be established • NATs may cause these sessions to be un-routable • This effects other protocols as well (H.323) • Same problem can exist with Firewalls • Relatively new
Future Directions • Will see more implementations of the protocol • Bake-offs have increased in participation significantly • SIP initiative within JAIN • Members: AT&T, British Telecom, Cisco, dynamicsoft, Ericsson, & Sun • New extensions being added • RFC 2543 currently being revised • New methods, headers, and responses have been proposed • Investigating management of SIP resources through SNMP • Exploring QoS issues in determining call setup
Resources • Hennig Schulzrinne’s page: http://www.cs.columbia.edu/~hgs/sip • Sip Forum: http://www.sipforum.org • IETF charter: http://www.ietf.org/html.charters/sip-charter.html • The SIP Center: http://www.sipcenter.com