Session Initiation Protocol (SIP)

Session Initiation Protocol (SIP) is a signaling protocol used for initiating, maintaining, modifying and terminating real-time sessions that involve video, voice, messaging and other communications applications and services between two or more endpoints on IP networks. SIP was developed by four people and later approved by the Internet Engineering Task Force (IETF) in 1996—and standardized in 1999.  SIP was designed to address the evolving needs of IP-based communications.

Native support for mobility, interoperability and multimedia were among the drivers behind SIP's development. SIP complements other communications protocols, such as Real-Time Transport Protocol (RTP) and Real-Time Streaming Protocols (RTSP), used in IP-based sessions.

SIP features

The SIP communications protocol determines five attributes when establishing and terminating multimedia sessions:

  • User location.
  • User availability.
  • User capabilities.
  • Session setup.
  • Session management.

Different types of multimedia SIP sessions include internet telephony calls, video conferencing and other forms of unified communications. The protocol can be used to invite participants to unicast or multicast sessions that do not necessarily involve the initiator.

SIP itself does not provide communication services. Instead, the protocol's specification defines interoperable implementations of SIP features, called primitives, that can be used to facilitate different services. Primitives allow additional information to be embedded in a SIP message, such as linking a user's photo to directory information to enable media-rich caller ID.

SIP also supports name mapping and redirection services, which are two key ways the protocol enables mobility. Users and endpoints are detected with a single identifier, known as a uniform resource identifier (URI), which is independent of their network location. URIs are alphanumeric, using a syntax that looks more like an email address than a phone number or IP address.

In addition to real-time services, SIP can be used for asynchronous event notifications, such as automatic callbacks, message-waiting indicators and buddy lists based on presence.

Relationship of SIP components

How does SIP work?

SIP operates similarly to, and incorporates elements of, both HTTP and SMTP.  Like HTTP or SMTP, SIP works in the application layer of the Open Systems Interconnection (OSI) communications model. SIP can also be thought of as a client/server architecture.

SIP will also work in tandem with other protocols, namely Session Description Protocol (SDP)—which is contained in SIP messages. SDP is used to describe multimedia communication to sessions for invitations, announcements and parameter negotiations.

SIP is a request-response protocol, receiving requests from clients and responses from servers. Requests can be sent through any transport protocol, such as UDPSCTP or TCP.

Devices using SIP can communicate with each other directly, or communicate via a SIP proxy. SIP proxies act as an intermediary system which can aid in offloading tasks that would otherwise be handled by the SIP protocol.

SIP determines the end system to be used for the session, the communication media and media parameters, and whether the called party agrees to engage in communication. Once these are assured, SIP establishes call parameters at either end of the communication, also handling call transfer and termination.

The protocol is supported by both IPv4 and IPv6.

As an example, in a Voice over IP (VoIP) call SIP takes place between two devices, such as a computer or phone, in an application layer. SDP payloads are carried in a SIP message. SIP will typically work with other protocols in VoIPs such as Secure Real-time Transport Protocol (SRTP) and Real-time Transport Protocol (RTP).

Example SIP requests

Requests rely on the features and function of the protocol. Here are some simple requests the protocol can make:

  • Invite- Which starts a dialogue that will initiate a call.
  • Ack- Which confirms the other user has responded to a request.
  • Update- Which can be used to modify a session without changing the dialogue’s state.
  • Cancel- Which stops pending requests.
  • Bye- Which ends dialogs and calls.
This was last updated in June 2019

Continue Reading About Session Initiation Protocol (SIP)

Dig Deeper on SIP and Unified Communications Standards