Session Initiation Protocol
Session Initiation Protocol (SIP) is an application-layer control protocol that is used for signaling the initiation, modification and termination of sessions for IP telephony. It is a widely used as a signaling protocol for voice over IP, along with H.323 and others like Cisco’s proprietary Skinny Client Control Protocol (SCCP).
Like SS7 protocols within the PSTN, SIP’s functions are similar. SIP also makes the newer unified communications principles possible by establishing sessions for features such as audio/videoconferencing, interactive gaming, and call forwarding for calls that are deployed over IP networks. This will help the telecommunication service providers to integrate basic IP telephony services with Web, email, and chat services. In addition to user authentication, redirect and registration services, SIP server supports traditional telephony features such as personal mobility, time-of-day routing and call forwarding based on the geographical location of the person being called.
SIP is a text-based protocol, operating at the Application Layer of the OSI Reference Model, similar to HTTP and SMTP, for initiating interactive communication sessions between users. SIP was designed by Henning Schulzrinne of Columbia University and Mark Handley from the University College of London in 1996.
The IETF Session Initiation Working Group is currently responsible for maintaining and developing SIP. The current version of the specification is RFC 3261. In November 2000, SIP was also accepted as a 3GPP signaling protocol and permanent element of the IMS architecture, and is viewed as a critical element in the future of unified communications for both wired and wireless services.
SIP has the following features:
- Lightweight, in that SIP has only six methods, ensuring the simplicity goal of the IETF WG.
- Transport-independent. SIP can be used with UDP, TCP, ATM, etc.
- Text-based, allowing for humans to read SIP messages.
SIP is a request-response protocol. That is, SIP handles requests from clients and responses from servers. Participants are identified by SIP Uniform Resource Identifiers such as sip:email@example.com or sip:+1‑212‑555‑1212:firstname.lastname@example.org;user=phone
There are two base components in a SIP architecture. The user agent is the end system software used for participating in calls. The network server provides for address resolution and locating users.
Requests can be sent through any transport protocol, such as UDP or TCP, typically using port 5060 to connect to SIP servers and other SIP endpoints. SIP determines the end system to be used for the session, the communication media and media parameters, and the called party's desire to engage in the communication. Once these are assured, SIP establishes call parameters at either end of the communication, and handles call transfer and termination.
From the RFC’s:
- "SIP makes use of elements called proxy servers to help route requests to the user's current location, authenticate and authorize users for services, implement provider call-routing policies, and provide features to users."
- "SIP also provides a registration function that allows users to upload their current locations for use by proxy servers. "
- "Since registrations play an important role in SIP, a User Agent Server that handles a REGISTER is given the special name registrar."
- "It is an important concept that the distinction between types of SIP servers is logical, not physical."
So, while we might think of SIP endpoints as hardware devices, the reality is that they are really software. As such, while SIP is used principally for setting up and tearing down voice or video sessions in an IP network, it can be certainly be used in for application where session initiation is a requirement. Examples would include event subscription and notification or terminal mobility. There are a large number of SIP-related RFCs such as SIP for Instant Messaging and Presence Level Extensions (SIMPLE) as defined in RFC 3428 or Extensible Messaging and Presence Protocol (XMPP) found in Jabber IM, and defined by RFC 3920 to RFC 3923.
The SIP Communication Process
The accompanying visual provides a high-level overview of how SIP operates between a pair of LAN-attached stations. A user at position A wants to talk with a user at position B.
- STEP 1: We begin at step 1, where user A (Bob once again) desires a multimedia session with user B (Sue once again). He sends an “invitation” message to the SIP server (S-1) on his network. The invitation is sent to the SIP server because user A does not know how to locate user B. The SIP INVITE message will contain a session description, formatted as per the SDP specification.
- SIP clients will locate SIP servers using a variety of mechanisms. Chief among these is a static configuration (much like an HTTP proxy server) or the use of the Domain Name System (DNS) based on the Uniform Resource Identifier (URI) specified in the invitation.
- STEP 2: In our example, the first SIP server (S-1) does not know the location of user B. As a result, it forwards the invitation to all other SIP servers that it knows of. This causes S-2 to receive the invitation request.
- STEP 3: Since server S-2 and user B are on the same LAN, S-2 will know how to find user B and will forward the invitation request to user B. For this transfer to occur, user B must be registered with SIP server S-2.
- STEPs 4 ,5, and 6: Since user B in our example would like to participate in the call, it sends back an acknowledgment (ACK) which follows the same path as user A’s invitation The acknowledgement message acknowledges all three of the INVITE message (steps 4, 5, and 6). User B’s session description will be carried in the ACK message that ultimately is delivered to user A. The acknowledgment confirms the session setup and the rules of protocol for the session.
- STEP 7: Since both ends have exchanged session descriptions, the two endpoints can now begin the transmission of RTP encapsulated media. We now have a peer-to-peer session between user A and user B and the voice conversation begins. In addition to being simpler than H.323, SIP offers better support for mobile users due to the use of SIP servers and client registration.
- The IETF SIP Working Group
- The IETF SIP RFC 3261
- The SIP Center
- XMPP and http://www.xmpp.org/rfcs/rfc3920.html, http://www.xmpp.org/rfcs/rfc3921.html, http://www.xmpp.org/rfcs/rfc3922.html, http://www.xmpp.org/rfcs/rfc3923.html
<mp3>http://podcast.hill-vt.com/podsnacks/2007q2/sip.mp3%7Cdownload</mp3> | Session Initiation Protocol (SIP)