Session Initiation Protocol (SIP)

Signaling Protocol for Voice, Video and Messaging Applications

Overview

Session Initiation Protocol (SIP) provides signaling and call setup for IP-based communication sessions and is used to set up and terminate voice or video calls.

SIP is an application-layer control protocol that can establish, modify, and terminate multimedia sessions (conferences) such as internet telephony calls.  SIP can also invite participants to already existing sessions, such as multicast conferences.  Media can be added to (and removed from) an existing session.  SIP transparently supports name mapping and redirection services, which supports personal mobility - users can maintain a single externally visible identifier regardless of their network location.

Messages

Requests

  • REGISTER - Register the location of a user agent in the registrar server
  • INVITE - Start a dialog to initiate a call
  • ACK - Confirm a request
  • BYE - End a dialog
  • CANCEL - Stop pending requests
  • UPDATE - Modify an existing session
  • REFER - Indicate that the recipient should contact a 3rd party
  • PRACK - Provisional Response ACK is similar to the standard ACK but for provisional responses
  • SUBSCRIBE - Requests information for a service
  • NOTIFY - Inform the requester of a change of status for a subscribed service
  • PUBLISH - Publish the event status of an entity
  • MESSAGE - Allow the transfer of Instant Messages (IM).
  • INFO - Transmit application-level information (e.g. DTMF digits) within SIP
  • OPTIONS - Query the capabilities of an endpoint

Responses

  • 1xx - Provisional -- request received, continuing to process the  request;
  • 2xx - Success -- the action was successfully received, understood, and accepted
  • 3xx - Redirection -- further action needs to be taken in order to complete the request;
  • 4xx - Client Error -- the request contains bad syntax or cannot be fulfilled at this server;
  • 5xx - Server Error -- the server failed to fulfill an apparently valid request
  • 6xx - Global Failure -- the request cannot be fulfilled at any server.

Standards

  • IETF RFC 3261
  • IETF RFC 3311
  • IETF RFC 3515
  • IETF RFC 3262
  • IETF RFC 6665
  • IETF RFC 3903
  • IETF RFC 3428
  • IETF RFC 6086
  • IETF RFC 3261

Related Products, Interfaces and Protocols