Session Initiation Protocol (SIP) is used for controlling multimedia communication sessions over an IP network. Common applications include voice over IP (VoIP), videoconferencing, streaming multimedia, on-line gaming, and instant messaging. SIP is the protocol of choice for VoIP, and is used to create, modify, and terminate VoIP sessions, including functions such as call transfer, conference calls, and call hold.
This very high-level protocol operates primarily in the Application Layer (Layer 7) of the OSI model. Because SIP runs independently of the Transport Layer (Layer 4), it works with most transport protocols, including TCP and UDP.
Much like HTTP, SIP is a text-based protocol. SIP messages contain only as much information as is needed for each session, so it’s very efficient and can expand and contract to meet each application’s specific requirements. This extensibility makes SIP incredibly versatile, enabling it to cover functions ranging from simple VoIP calls to complex multi-user videoconferencing.
SIP uses proxy servers to route requests, authenticate users, and provide features such as voice mail. SIP performs five basic functions:
- User Location finds another user by way of an address, not unlike an e-mail address.
- User Availability determines whether a user answers a request to communicate. A user may be registered under several addresses, in which case SIP may transfer an unanswered call to another address, which may be another device or an application such as voicemail.
- User Capabilities checks for compatibility between clients.
- Session Setup establishes session parameters for both called and calling party.
- Session management handles changes to the call status, including transfer and termination of sessions, modifying session parameters, and invoking new services.