Escolar Documentos
Profissional Documentos
Cultura Documentos
Task Force (IETF) to serve VoIP services. It’s an application layer protocol that can
operate over UDP (User Datagram Protocol) or TCP (Transmission Control Protocol).
SIP, currently at version 2, is defined in RFC 3261.
Simplicity and flexibility are the primary characteristics of SIP. However, despite its
structural simplicity it can be used to establish any kind of session between end-systems
(known as User Agents in SIP). SIP is responsible for session setup and tear down;
supported sessions include:
Besides audio, sll supported sessions can contain video and data as well. SIP also
provides the means for User Agents to negotiate session capabilities and decide about
session behavior. Moreover, sophisticated services, such as UA portability and video
conferencing can be well served by SIP.
Before getting into more details about SIP, lets take a look at the most important SIP
terms:
• Transaction: A complete sequence of messages consisting of a request, several
possible provisional responses and one final response.
• User Agent: It’s a SIP end point. It can be either a client or server. User Agent
Client (UAC) is the originate side of the transaction that generates the request and
User Agent Server (UAS) is the terminating side that generates the responses.
• SIP URI: SIP addressing scheme can use an IP address or a Fully Qualified
Domain Name (FQDN) to refer to UAs. If the later is used, then DNS is needed
for translating Domain Name to real IP address.
• SIP Proxy: Network node that routes SIP transactions by using the information of
the SIP URI.
• Dialogue: A SIP dialogue consists of several transactions. Therefore a SIP
dialogue represents a long-term peer-to-peer session between UAs.
SIP messages are text-based messages similar to HTTP. They consist of a Request line,
various Header fields, and the body field (optional). The image below shows SIP’s
general format.
Starting line: SIP’s first line is called Request-Line in requests and Status-Line in
responses. It consists of the method used along with the destination SIP URI. The
following is an example of a SIP starting line:
Message Header fields: These fields contain useful information for efficiently routing
SIP messages. They also include information about UA’s supported capabilities and
sequencing of messages. A sample Header field block is provided below:
Via: SIP/2.0/UDP 10.176.22.24:5060;branch=z9hG4bK06224778770000019777.
From: sip:+44133546022@anonymous.invalid;user=phone>;tag=46dfdde0-a545-
0ab0141c
To: <sip:+44122547012@anonymous.invalid:5060;user=phone>
Call-ID: 46DFDDE0-00004139@routera
CSeq: 1 INVITE
Accept: application/sdp,application/isup,multipart/mixed,application/
Contact: <sip:10.176.22.24:5060>
MIME-Version: 1.0
Supported: timer
Supported: 100rel
Max-Forwards: 70
Session-Expires: 1800
Allow: ACK,INFO,BYE,CANCEL,INVITE,OPTIONS,NOTIFY,PRACK,UPDATE
Content-Type: application/sdp
Content-Length: 360
Message Body: The body of the message may carry session descriptions (SDP). This part
of the SIP message is used by UAs during negotiation and settlement of media related
information like IP addresses, port numbers and codecs. A sample message body can be
seen below:
Via: Consists of SIP version, transport protocol, SIP URI and branch code. Its purpose is
to indicate the address that responses to a request should be forwarded. The branch
parameter is used to identify the transaction. Example:
From: Consists of the SIP URI of the originator of the request. It also contains a random
generated tag for identification purposes. Example:
From: <sip:+44133546022@anonymous.invalid;user=phone>;
tag=46dfdde0-a545-0ab0141c
Call-ID: 46DFDDE0-00004139@routera
CSeq: Contains an integer that counts the requests within a dialog and a method name.
Example:
CSeq: 1 INVITE
Contact: <sip:10.176.22.24:5060>
Supported:Optional header field used to specify SIP options that the sender supports.
Example:
Supported: 100rel
Allow: Another optional header field listing all methods supported by the SIP UA that
generated the message. Example:
Allow: ACK,INFO,BYE,CANCEL,INVITE,OPTIONS,NOTIFY,PRACK,UPDATE
Content-Type: Indicates the type of content within the body of the SIP message.
Example:
Content-Type: application/sdp
Version (v=): Defines the SDP’s version (currently only v=0 exists)
Media attributes (a=): Can be either media (e.g. “rtpmap” is a media attribute
describing payload types) or session attributes (e.g. “sendrecv” is a session attribute
specifying media flow direction. Example:
The image below presents a basic SIP Dialogue consisting of an INVITE and a BYE
method.
The INVITE method is more like a 3-way handshake consisting of the INVITE request,
the final response to the INVITE which is a 200 OK message, and an ACK transaction
with no response. The BYE transaction consists of the BYE request and its response
coming as a 200 OK message.
Final Thoughts
Not convinced SIP is right for you? There are other options, however SIP is the preffered
choice for telecom companies for Broadband VoIP service session control, and its usage
is growing more and more each day. My prediction is that SIP will eventually dominate
call control protocols, so start benefiting from all that SIP has to offer.