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.
Abstract from the RFC 3261 (formatted_and_explained version) – SIP: Session Initiation Protocol
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. …