|
SIP Development
Session Initiation Protocol (SIP)
The Session Initiation Protocol (SIP) is a signalling protocol, widely used for setting up and tearing down multimedia communication sessions such as voice and video calls over the Internet. Other feasible application examples include video conferencing, streaming multimedia distribution, instant messaging, presence information and online games. The protocol can be used for creating, modifying and terminating two-party (unicast) or multiparty (multicast) sessions consisting of one or several media streams. The modification can involve changing addresses or ports, inviting more participants, adding or deleting media streams, etc.
SIP was originally designed by Henning Schulzrinne (Columbia University) and Mark Handley (UCL) starting in 1996. The latest version of the specification is RFC 3261[1] from the IETF SIP Working Group In November 2000, SIP was accepted as a 3GPP signaling protocol and permanent element of the IMS architecture for IP-based streaming multimedia services in cellular systems.
The SIP protocol is situated at the session layer in the OSI model, and at the application layer in the TCP/IP model. SIP is designed to be independent of the underlying transport layer; it can run on TCP, UDP, or SCTP. SIP has the following characteristics:
Transport-independent, because SIP can be used with UDP, TCP, SCTP, etc.
Text-based, allowing for humans to read and analyze SIP messages.
|
|
SIP network elements
SIP User Agents (UAs) are the end-user devices, used to create and manage a SIP session. A SIP UA has two main components, the User Agent Client (UAC) send messages and answers with SIP responses, the User Agent Server (UAS) responds to SIP requests sent by the peer. SIP UAs may work in point to point mode. Typical implementations of a UA are SIP softphones, SIP hardphones and SIP-enabled ATAs.
SIP also defines server network elements. Although two SIP endpoints can communicate without any intervening SIP infrastructure, which is why the protocol is described as peer-to-peer, this approach is impractical for a public service. There are various implementations that can act as SIP servers:
RFC 3261 defines these server elements:
" Proxy, Proxy Server: An intermediary entity that acts as both a server and a client for the purpose of making requests on behalf of other clients. A proxy server primarily plays the role of routing, which means its job is to ensure that a request is sent to another entity "closer" to the targeted user. Proxies are also useful for enforcing policy (for example, making sure a user is allowed to make a call). A proxy interprets, and, if necessary, rewrites specific parts of a request message before forwarding it."
|