Since the invention of the telephone, real time communication networks have mostly been built using closed circuit switched network infrastructures, e.g. the Public Switched Telephone Network (PSTN). With the advent and the increasing popularity of the packet-switched Internet data network, providers are seeking ways to combine both communication and data networks on an all-IP network basis. Session Initiation Protocol is a core protocol for coming real time communication networks. Session Initiation Protocol (SIP) is one of the most common protocols used in VoIP technology. It is an application layer protocol that works in conjunction with other application layer protocols to control multimedia communication sessions over the Internet.
Overview of Session Initiation Protocol (SIP)
Session Initiation Protocol (SIP) is an application-layer control protocol that can establish, modify, and terminate multimedia sessions (conferences). A session is considered as an exchange of data between an association of participants, such as Internet telephony calls and video telephony. SIP is able to support multicast conferences with more than two participants. Participants can be invited to already existing sessions. Media can be added to (and removed from) an existing session.
SIP can be used to control Internet multimedia conferences, Internet telephone calls and multimedia distribution, in both the core and the periphery of the communications network.
SIP is a very flexible protocol that has great depth. It was designed to be a general-purpose way to set up real-time multimedia sessions between groups of participants. For example, in addition to simple telephone calls, SIP can also be used to set up video and audio multicast meetings, or instant messaging conferences. In this document, we’ll focus on SIP’s capabilities for VoIP, and how it sets up calls that then use RTP (the Real-time Transport Protocol) to actually send the voice data between phones.
IP supports five facets of establishing and terminating multimedia communications:
- User location: determination of the end system to be used for communication;
- User availability: determination of the willingness of the called party to engage in communications;
- User capabilities: determination of the media and media parameters to be used;
- Session setup: “ringing”, establishment of session parameters at both called and calling party;
- Session management: including transfer and termination of sessions, modifying session parameters, and invoking services.
SIP is not a vertically integrated communications system. SIP is rather a component that can be used with other Internet protocols to build a complete multimedia architecture. However, the basic functionality and operation of SIP does not depend on any of these protocols.
Figure: Simple SIP Diagram
The SIP protocol includes the following features.
- SIP invitations are used to create sessions and carry session descriptions that allow participants to agree on a set of compatible media types. In this way, SIP is not restricted to any particular media type, and can therefore handle the expanding range of media technologies.
- SIP enables user mobility through a mechanism that allows requests to be proxied or redirected to the user’s current location. Users can register their current location with their home server.
- SIP supports end-to-end and hop-by-hop authentication, as well as end-to-end encryption using S/MIME.
- Members in a SIP session can communicate using multicast or unicast relations, or a combination of these. In addition, SIP is independent of the lower-layer transport protocol, which allows it to take advantage of new transport protocols.
- Software implementing the basic SIP protocol can be extended with additional capabilities and is actively being exploited for many media applications.
Functions of SIP
SIP is limited to the setup, modification and termination of sessions. It serves four major purposes:
- SIP allows for the establishment of user location (translating from a user’s name to their current network address).
- SIP provides for feature negotiation so that all of the participants in a session can agree on the features to be supported among them.
- SIP is a mechanism for call management (adding, dropping, or transferring participants.
- SIP allows for changing the features of a session while it is in progress.
COMMANDS OF SIP INVITE:
Invites a user to a call ACK: Acknowledgement is used to facilitate reliable message exchange for INVITEs.
BYE: Terminates a connection between users
CANCEL: Terminates a request, or search, for a user. It is used if a client sends an INVITE and then changes its decision to call the recipient.
OPTIONS: Solicits information about a server’s capabilities.
REGISTER: Registers a user’s current location
INFO: Used for mid-session signaling
 Sven Ehlert, Dimitris Geneiatakis and Thomas Magedanz, “Survey of network security systems to counter SIP-based denial-of-service attacks”, computers & security 29 (2010), pp. 225–243.
 “What is Session Initiation Protocol (SIP)?” available online at: https://www.metaswitch.com/knowledge-center/reference/what-is-session-initiation-protocol-sip
 “Session Initiation Protocol (SIP)”, available online at: http://www.telecomabc.com/s/sip.html
 “What is SIP – Session Initiation Protocol?” available online at: https://www.3cx.com/pbx/sip/
 “Chapter 3: A Broad Overview of Session Initiation Protocol”, pp. 62-73, available online at: http://shodhganga.inflibnet.ac.in/bitstream/10603/23599/8/08_chapter3.pdf