
Introduction
Session Initiation Protocol (SIP) is a signaling protocol used for establishing multimedia communication session over an Internet Protocol (IP) network. SIP was originally designed by Mark Handley and Henning Schulzrinne in the year 1996. Latest version of SIP is specified in RFC 3261 from the Internet Engineering Task Force (IETF) Network Working Group.
SIP is a request response protocol i.e. it deals with a request from clients and the responses from server. It closely resembles two other Internet Protocol like SMTP (Simple Mail Transfer Protocol) and HTTP (Hyper Text Transfer Protocol). SIP is used in Instant Messaging (IM), streaming multimedia distribution, file transfer, video conferencing, online games and presence information.
The Session Initiation Protocol is an Application Layer protocol that can run on User Datagram Protocol (UDP), Stream Control Transmission Protocol (SCTP) and Transmission Control Protocol (TCP). It facilitates the initiation, termination and modification of a communication session between individual or multiple recipients (unicast or multicast session), it does not know about the details of a session. SIP also supports redirection services, which make users to initiate and receive communication services from any location or network. In November 2000, SIP was accepted as a permanent element of IP Multimedia System (IMS) architecture and 3GPP signaling protocol for IP-based streaming multimedia services in cellular systems.
Function or Characteristics
SIP has four key functions that facilitates various interaction capabilities –
• Name translation and user location – This involves translation of user naming information to SIP location information, which ensures that call reaches the called party despite their location.
• Feature negotiation – All the media capabilities are determined by the SIP, to ensure that all the participants can support the same level of features.
• Call participant management – During a call, user can cancel a connection with other users or can bring other users onto the call.
• Call feature changes – A user can change the characteristics of a call during the course of the calls.
Architecture
There are five SIP network elements or components –
• User Agent Client (UAC): User Agent Client is used to initiate the session. After initiation, it determines the information necessary for the request, protocol needed, IP address and port number of server (UAS). UAC initiates six SIP requests to a UAS: REGISTER, INVITE, OPTIONS, ACK, CANCEL and BYE.
• User Agent Server (UAS): User Agent Server hosts the SIP requests from a User Agent Client and returns a response to the UAC. UAS may issue single or multiple responses to the SIP requests from a UAC.
• Proxy Server: Proxy Server acts as a server or client for the purpose of making request on behalf of other clients. It plays the role of routing the request to the client. It also provides name resolution and user location.
• Redirect Server: It allows SIP servers to direct SIP session invitation to other domain i.e. it directs the client to an alternate set of URIs (Uniform Resource Identifier).
• Registrar Server: It allows users to alter their address. It is done by sending the REGISTRAR request to the registrar server.
SIP Messages
There are two types of SIP different messages –
1. Request Methods – Commands used in SIP request methods are:
INVITE: It is used to establish a media session.
REGISTRAR: It is used to register a user’s current location.
CANCEL: It is used to terminate a pending request.
ACK: It is used to confirm the reliable message exchanges.
OPTIONS: It is used to solicit information about a server’s capabilities.
BYE: It is used to terminate a session between two users.
2. Response Methods – List of SIP response codes are:
Redirection (3xx): It signifies that the further actions should be taken to complete a request.
Success (2xx): It signifies that the action was successfully received and accepted.
Provisional (1XX): It signifies that the request is received and being processed.
Global Failure (6xx): It signifies that the request cannot be processed at any server.
Client Error (4xx): It signifies that the request contains bad syntax and cannot be processed at any server.
Server Error (5xx): It signifies server failed to process the valid request.
SIP and H.323
Difference between SIP and H.323 is listed below –
| SIP | H.323 |
| 1. It was designed by IETF. | 1. It was designed by ITU. |
| 2. SIP messages are formatted to text. | 2. H.323 messages are in binary format. |
| 3. It has unique ability to mix media. | 3. It cannot mix media within the session. |
| 4. It works smoothly with media gateway Controllers. | 4. Interworking with SS7 is problematic. |
| 5. URLs can be embedded in web browsers and email tools. | 5. H.323 has no URL format. |
| 6. Minimal delay due to signaling scheme. | 6. Possibilities of delay (up to 7 to 8 seconds). |
| 7. It has not defined procedures for handling device failure. | 7. It has defined number of procedures to handle device failure. |
| 8. It has no notion of load balancing. | 8. It has the ability to load balance endpoints across a number of alternate gatekeepers. |
| 9. Firewall support is provided by SIP proxy. | 9. Firewall support is provided by H.323 proxy and H.323 signaling gateway. |
| 10. SIP proxy can fork the call to any number of devices simultaneously. | 10. H.323 gateway can fork the call to any number of devices simultaneously. |
Applications
Nowadays, many of the VoIP phone companies are allowing customers to bring their own SIP devices like softphones or telephone sets. SIP is used by web developers to develop services and interfaces like SIP-CGI, SIP Servlets, JAIN™ API, etc. The Session Initiation Protocol for Instant Messaging and Presence Leveraging Extensions, also known as SIMPLE, is a SIP-based suite used for presence information and instant messaging. The Message Session Relay Protocol (MSRP) is used to transfer files during an instant messaging session. SIP services are also used in mobile technology like 3G, WAP, etc.