SIP, the session initiation protocol, is the IETF protocol for VOIP and other text and multimedia sessions, like instant messaging, video, online games and other services.
This document describes Session Initiation Protocol (SIP), an application-layer control (signaling) protocol for creating, modifying, and terminating sessions with one or more participants. These sessions include Internet telephone calls, multimedia distribution, and multimedia conferences.
SIP invitations used to create sessions carry session descriptions that allow participants to agree on a set of compatible media types. 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. SIP runs on top of several different transport protocols.
SIP is very much like HTTP, the Web protocol, or SMTP. Messages consist of headers and a message body. SIP message bodies for phone calls are defined in SDP -the session description protocol .
- SIP is a text-based protocol that uses UTF-8 encoding
- SIP uses port 5060 both for UDP and TCP. SIP may use other transports
SIP offers all potentialities of the common Internet Telephony features like:
- call or media transfer
- call conference
- call hold
Since SIP is a flexible protocol, it is possible to add more features and keep downward interoperability.
SIP also does suffer from NAT or firewall restrictions. (Refer to NAT and VOIP )
SIP can be regarded as the enabler protocol for telephony and voice over IP (VoIP) services. The following features of SIP play a major role in the enablement of IP telephony and VoIP:
- Name Translation and User Location: Ensuring that the call reaches the called party wherever they are located. Carrying out any mapping of descriptive information to location information. Ensuring that details of the nature of the call (Session) are supported.
- Feature Negotiation: This allows the group involved in a call (this may be a multi-party call) to agree on the features supported recognizing that not all the parties can support the same level of features. For example video may or may not be supported; as any form of MIME type is supported by SIP, there is plenty of scope for negotiation.
- Call Participant Management: During a call a participant can bring other users onto the call or cancel connections to other users. In addition, users could be transferred or placed on hold.
- Call feature changes: A user should be able to change the call characteristics during the course of the call. For example, a call may have been set up as ‘voice-only’, but in the course of the call, the users may need to enable a video function. A third party joining a call may require different features to be enabled in order to participate in the call
- Media negotiation: The inherent SIP mechanisms that enable negotiation of the media used in a call, enable selection of the appropriate codec for establishing a call between the various devices. This way, less advanced devices can participate in the call, provided the appropriate codec is selected.
The SIP protocol
The SIP protocol defines several methods.
SIP methods defined in the SIP RFC
SIP method extensions from other RFCs
SIP terms and definitions
SIP extensions are negotiated with the Supported/Require headers
- SIP Outbound – NAT traversal for SIP signalling
- SIP GIN – Multiple DID registrations for SIP trunks.
- SIP ICE – Interactive Connectivity Establishment
- SIP 100rel – PRACK – reliable provisional responses
- SIP session timers – Keeping a dialog alive
- RFC 2848 – The PINT Service Protocol: xtensions to SIP and SDP for IP Access to Telephone Call Service
- RFC 2976 – The SIP INFO Method
- RFC 3050 – Common Gateway Interface for SIP
- RFC 3087 – Control of Service Context using SIP Request-URI
- RFC 3261 Official Main SIP RFC
- RFC 3261 – SIP: Session Initiation Protocol (Main SIP RFC)
- RFC 3262 – Reliability of Provisional Responses in the Session Initiation Protocol (SIP)
- RFC 3263 – Session Initiation Protocol (SIP): Locating SIP Servers
- RFC 3264 – An Offer/Answer Model with the Session Description Protocol (SDP)
- RFC 3265 – Session Initiation Protocol (SIP)-Specific Event Notification
- RFC 3311 – The Session Initiation Protocol (SIP) UPDATE Method
- RFC 3312 – Integration of Resource Management and Session Initiation Protocol (SIP)
- RFC 3313 – Private Session Initiation Protocol (SIP) Extensions for Media Authorization
- RFC 3319 – Dynamic Host Configuration Protocol (DHCPv6) Options for Session Initiation Protocol (SIP) Servers
- RFC 3323 – A Privacy Mechanism for the Session Initiation Protocol (SIP)
- RFC 3324 – Short Term Requirements for Network Asserted Identity
- RFC 3325 – Private Extensions to the Session Initiation Protocol (SIP) for Asserted Identity within Trusted Networks
- RFC 3326 – The Reason Header Field for the Session Initiation Protocol (SIP)
- RFC 3327 – Session Initiation Protocol (SIP) Extension Header Field for Registering Non-Adjacent Contacts
- RFC 3329 – Security Mechanism Agreement for the Session Initiation Protocol (SIP)
- RFC 3361 – Dynamic Host Configuration Protocol (DHCP-for-IPv4) Option for Session Initiation Protocol (SIP) Servers
- RFC 3388 – Grouping of Media Lines in the Session Description Protocol (SDP)
- RFC 3420 – Internet Media Type message/sipfrag
- RFC 3428 – Session Initiation Protocol (SIP) Extension for Instant Messaging
- RFC 3485 – The Session Initiation Protocol (SIP) and Session Description Protocol (SDP) Static Dictionary for Signaling Compression (SigComp)
- RFC 3486 – Compressing the Session Initiation Protocol (SIP)
- RFC 3487 – Requirements for Resource Priority Mechanisms for the Session Initiation Protocol (SIP)
- RFC 3515 – The Session Initiation Protocol (SIP) Refer Method
- RFC 3524 – Mapping of Media Streams to Resource Reservation Flows
- RFC 3966 – The tel URI for Telephone Numbers
- RFC 4694 – Number Portability Parameters for the “”tel”” URI
- Additional SIP Related IETF Documents, Drafts, and RFCs
- Formatted/explained version of RFC 3261 (over 250 pages!)
- RFC 3329. Security Mechanism Agreement for the Session Initiation Protocol (SIP)
- The IETF SIP Working Group – on this page, you’ll find all current Internet Drafts, RFCs and standards