11/26/2006

SIP based VoIP

SIP: Session Initiation Protocol

SIP (Session Initiation Protocol) is an application-layer control protocol that can establish, modify, and terminate multimedia sessions such as Internet telephony calls (VOIP). SIP can also invite participants to already existing sessions, such as multicast conferences. Media can be added to (and removed from) an existing session. SIP transparently supports name mapping and redirection services, which supports personal mobility - users can maintain a single externally visible identifier regardless of their network location.

SIP supports five facets of establishing and terminating multimedia communications:

  • User location: determination of the end system to be used for communication;
  • User availability: determination of the willingness of the called party to engage in communications;
  • User capabilities: determination of the media and media parameters to be used;
  • Session setup: "ringing", establishment of session parameters at both called and calling party;
  • Session management: including transfer and termination of sessions, modifying session parameters, and invoking services.

SIP is a component that can be used with other IETF protocols to build a complete multimedia architecture, such as the Real-time Transport Protocol (RTP) for transporting real-time data and providing QoS feedback, the Real-Time streaming protocol (RTSP) for controlling delivery of streaming media, the Media Gateway Control Protocol (MEGACO) for controlling gateways to the Public Switched Telephone Network (PSTN), and the Session Description Protocol (SDP) for describing multimedia sessions. Therefore, SIP should be used in conjunction with other protocols in order to provide complete services to the users. However, the basic functionality and operation of SIP does not depend on any of these protocols.

SIP provides a suite of security services, which include denial-of-service prevention, authentication (both user to user and proxy to user), integrity protection, and encryption and privacy services.

SIP works with both IPv4 and IPv6. For Internet telephony sessions, SIP works as follows:
Callers and callees are identified by SIP addresses. When making a SIP call, a caller first locates the appropriate server and then sends a SIP request. The most common SIP operation is the invitation. Instead of directly reaching the intended callee, a SIP request may be redirected or may trigger a chain of new SIP requests by proxies. Users can register their location(s) with SIP servers. SIP addresses (URL) can be embedded in Web pages and therefore can be integrated as part of powerful implementations such as Click to talk.

Protocol Structure - SIP (Session Initiation Protocol)

SIP messages can be transmitted either over TCP or UDP SIP messages are text based and use the ISO 10646 character set in UTF-8 encoding. Lines must be terminated with CRLF. Much of the message syntax and header field are similar to HTTP. Messages can be request messages or response messages.

Request message has the following format:



Method

Request URI

SIP version

  • Method - The method to be performed on the resource. Possible methods are Invite, Ack, Options, Bye, Cancel, Register.
  • Request-URI - A SIP URL or a general Uniform Resource Identifier, this is the user or service to which this request is being addressed.
  • SIP version - The SIP version being used.

The format of the Response message header is shown in the following illustration:


SIP version

Status code

Reason phrase

  • SIP version - The SIP version being used.
  • Status-code - A 3-digit integer result code of the attempt to understand and satisfy the request.
  • Reason-phrase - A textual description of the status code

No comments: