Monday, August 10, 2009

Session Initiation Protocol

SIP (RFC2543) is a simple signaling protocol for Internet conferencing and telephony. Based on Simple Mail Transfer Protocol (SMTP) and HyperText Transfer Protocol (HTTP), SIP was developed by the Internet Engineering Task Force's (IETF's) Multiparty Multimedia Session Control (MMUSIC) working group. SIP specifies procedures for telephony and multimedia conferencing over the Internet. SIP is an application-layer protocol independent of lower layer protocols (TCP, UDP, ATM, X.25).

SIP is based on a client/server architecture in which the client initiates the calls. By conforming to these existing text-based Internet standards (SMTP and HTTP), troubleshooting and network debugging are facilitated. The protocol can be read without decoding the binary ASN.1 payload required in non-text-based protocols, such as H.323. SIP is widely supported and is not dependent on a single vendor's equipment or implementation.

SIP is a newer protocol than H.323 and does not have maturity and industry support at this time. However, because of its simplicity, scalability, modularity, and ease with which it integrates with other applications, this protocol is attractive for use in packetized voice architectures. Some of the key features that SIP offers are:

  • Address resolution, name mapping, and call redirection

  • Dynamic discovery of endpoint media capabilities using the Session Description Protocol (SDP)

  • Dynamic discovery of endpoint availability

  • Session origination and management between host and endpoints

Session Initiation Protocol Components

The SIP system contains two components: user agents and network servers. A user agent (UA) is an endpoint, which makes and receives SIP calls.

  • User agent client (UAC) Initiates SIP requests.

  • User agent server (UAS) Receives the requests from the UAC and returns responses for the user.

SIP clients can include:

  • IP telephones (UACs or UASs)

  • Gateways to provide conferencing and translation

There are three kinds of SIP servers:

  • Proxy server Determines the server to which the request should be forwarded. Request can actually transit many SIP servers to its destination. Responses return in reverse order.

  • Redirect server Notifies the calling party of the actual location of destination.

  • Registrar server Provides registration services for UACs at their current locations. Often deployed with proxy and redirect servers.

Figure 1 illustrates the interaction between SIP components.

Figure 1: SIP Components

Session Initiation Protocol Messages

SIP works on a simple premise of client/server operation. Clients or endpoints are identified by unique addresses. These addresses come in a format very similar to that of an e-mail address: user@domain.com.

  • SIP addresses are URLs: user@host

  • User: name, telephone (E-164 address), number

  • Host: domain, numeric network (IP) address

The users or clients register with SIP servers to provide location contact information.

SIP uses messages for call connection and control. There are two types of SIP messages: requests and responses. SIP messages are defined as follows:

  • Invite Used to invite a user to a call. Header fields contain:

    • Addresses of the caller and the person being called

    • Subject of the call

    • Call priority

    • Call routing requests

    • Caller preferences for the user location

    • Desired features of the response

  • Bye Used to terminate a connection between two users.

  • Register Conveys location information to a SIP server, allowing a user to tell the server how to map an incoming address into an outgoing address that will reach the user.

  • ACK Confirms reliable message exchanges.

  • Cancel Cancels impending requests.

  • Options Solicits information about the capabilities of the end being called, such as the difference between a plain old telephone handset and a fully-featured multimedia phone.

No comments:

Post a Comment