Você está na página 1de 59

Session Initiation Protocol (SIP)

SIP based VoIP Architecture


eMail CPL CPL 3pcc Application Services

I NT EL L I GE NT SE RV I CE S

LDAP

Oracle

XML

SIP Proxy, Registrar & Redirect Servers SIP SIP SIP SIP User Agents (UA) PSTN

CAS or PRI

RTP (Media) Legacy PBX Internet Telephony

Basic SIP Call-Flow


SIP UA1 SIP UA2

INVITE w/ SDP for Media Negotiation 100 Trying 180/183 Ringing w/ SDP for Media Negotiation MEDIA 200 OK ACK MEDIA BYE 200 OK
Internet Telephony

SIP Call Flow with Proxy Server


User Agent 1
Proxy Server

User Agent 1

Register OK (200) Invite Trying (100) Ringing (180) OK (200) ACK

Register OK (200) Invite Ringing (180) OK (200) ACK RTP/RTCP media channels
Internet Telephony

VoIP Migration

Step1: IPPBX deployments in Enterprises

PSTN Network

Customer Premises

Customer Premises

IP Core Network

Large enterprises will handle VOIP calls directly PSTN connectivity provided by Media Gateways Regulation can not stop spammers outside USA (similar to SMTP spam)

DNS Server for URL resolution

Internet Telephony

STEP 2: Hosted IP Centrex FW, NAT, VoIP service provided by Carrier Networks

Softswitches, MGW VoIP Proxy Server, SGW SGC, VoIP Centrex Server,

Internet

Carrier Network

Customer Premises

Internet Telephony

Step 3: Carrier VoIP Network


VoIP Trunk

Softswitches, MGW VoIP Proxy Server, SGW SGC, VoIP Centrix Server,

Internet

Carrier Network

- VoIP FW, NAT and Security provided by Carriers

Customer Premises

Internet Telephony

SIP Architecture

The Popularity of SIP


Originally Developed in the MMUSIC
o o o

A separate SIP working group RFC 2543, RFC 3261 Many developers The VoIP signaling in the future Test products against each other Will be hosted by ETSI

SIP + MGCP/MEGACO
o

back-off or SIPit (SIP Interoperability Tests)


o o

Internet Telephony

SIP Architecture
A signaling protocol
o

The setup, modification, and tear-down of multimedia sessions Describe the session characteristics

SIP + SDP
o

Separate signaling and media streams

Internet Telephony

SIP Network Entities


Clients
o o

User agent clients Application programs sending SIP requests Responds to clients requests

Servers
o

Clients and servers may be in the same platform Proxy


o

Acts as both clients and servers

Internet Telephony

Four types of servers


o

Proxy servers
 Handle requests or forward requests to other servers  Can be used for call forwarding

Internet Telephony

Redirect servers
o o

Map the destination address to zero or more new addresses Do not initiate any SIP requests

Internet Telephony

A user agent server


o o o o

Accept SIP requests and contacts the user The user responds an SIP response A SIP device E.g., an SIP-enabled telephone Accepts SIP REGISTER requests
 Indicating the user is at a particular address

A registrar
o o

Typically combined with a proxy or redirect server

Internet Telephony

SIP Call Establishment


It is simple
o

A number of interim responses

Internet Telephony

SIP Advantages
Attempt to keep the signaling as simple as possible Offer a great deal of flexibility Various pieces of information can be included within the messages
o o

Including non-standard information Enable the users to make intelligent decisions No need to subscribe call features

The user has control of call handling


o

Internet Telephony

Call Completion to Busy Subscriber service

Internet Telephony

Via contains the address (e.g., pc33.atlanta.com) Contact contains a SIP or SIPS URI that represents a direct route to contact the called party, usually composed of username at a fuly qualified domain name (FQDN). While the FQDN is preferred, many end systems do not have registered domain names, so IP addresses are permitted. While Via header field tells other elements where to send response, the Contact header field tells other elements where the called party can be reached directly. In a response, Via, To, From, Call-ID, and CSeq header fields are copied from the INVITE request. In addition to DNS and location service lookups, proxy servers can make flexible routing decisions to decide where to send a request. For example, if Bobs SIP phone returned 486 (busy) response, the biloxi.com proxy server could proxy the INVITE to Bobs voicemail server. A proxy server can also send an INVITE to a number of locations at the same time. This type of parallel search is known as forking.
Internet Telephony

After learning the end point addresses, the end points can communicate directly

Internet Telephony

Overview of SIP Messaging Syntax


Text-based
o

Similar to HTTP

SIP messages
o

message = start-line *message-header CRLF [message-body] o start-line = request-line | status-line

Request-line specifies the type of request The response line


o

The success or failure of a given request

Internet Telephony

Message headers
o o

Additional information of the request or response E.g.,


 The originator and recipient  Retry-after header  Subject header

Message body
o

Describe the type of session


 The media format
 SDP, Session Description Protocol

o o

Could include an ISDN User Part message Examined only at the two ends

Internet Telephony

SIP Requests
method SP request-URI SP SIP-version CRLF request-URI
o

The address of the destination INVITE, ACK, OPTIONS, BYE, CANCLE, REGISTER
 extensions: INFO, REFER, UPDATE,

Methods
o

INVITE
     Initiate a session Information of the calling and called parties The type of media IAM (initial address message) of ISUP ACK only the final response

Internet Telephony

BYE
o o

Terminate a session Can be issued by either the calling or called party Query a server as to its capabilities
 A particular type of media  The response if sent an INVITE

Options
o

CANCEL
o o

Terminate a pending request E.g., an INVITE did not receive a final response

Internet Telephony

REGISTER
o o o o

Log in and register the address with a SIP server all SIP servers multicast address (224.0.1.1750) Can register with multiple servers Can have several registrations with one server RFC 2976 Transfer information during an ongoing session
 DTMF digits  account balance information  midcall signaling information generated in another network

INFO
o o

Internet Telephony

SIP Responses
SIP version SP status code SP reason-phrase CRLF

reason-phrase
o o

A textual description of the outcome Could be presented to the user A three-digit number 1XX Informational 2XX Success (only code 200 is defined) 3XX Redirection 4XX Request Failure 5XX Server Failure 6XX Global Failure All responses, except for 1XX, are considered final
 Should be ACKed

status code
o o o o o o o o

Internet Telephony

One number service

Internet Telephony

SIP Addressing
SIP URLs (Uniform Resource Locators)
o o

user@host E.g.,
 sip:collins@home.net  sip:3344556789@telco.net

o
o

Supplement the URL


 sip:3344556789@telco.net;user=phone sip:user:password@host:port;uri-parameters?headers

Internet Telephony

Message Headers
Provide further information about the message
o

information elements To:header in an INVITE


 The called party

E.g.,
o o

From:header
 The caling party

Four main categories


o o o

General, request, response, and entity headers A list in Table 5-2 Mapping in Table 5-3

Internet Telephony

General Headers
Used in both requests and responses Basic information
o

E.g., To:, From:, Call-ID:, A URL for future communication May be different from the From: header
 Requests passed through proxies

Contact:
o o

Internet Telephony

Request Headers
o o o

Apply only to SIP requests Addition information about the request or the client E.g.,
 Subject:  Priority:, urgency of the request  Authorization:, authentication of the request originator

Response Headers
o o

Further information about the response E.g.,


 Unsupported:, features  Retry-After

Internet Telephony

Entity Header
o o o o o o o o

Session information presented to the user Session description, SDP


 The RTP payload type, an address and port

Content-Length, the length of the message body Content-Type, the media type of the message Content-Encoding, for message compression Content Disposition, Content-Language, Allow, used in a Request to indicate the set of methods supported o Expires, the date and time

Internet Telephony

Example of SIP Message Sequences


Registration
o o o o o

Via: Call-ID:
 host-specific

Content-Length:
 Zero, no msg body

Cseg:
 Avoid ambiguity

Expires:
 TTL  0, unreg

Contact:
*

Internet Telephony

Invitation
A two-party call
o o

Subject:
 optional

Content-Type:
 application/sdp

Internet Telephony

Internet Telephony

Termination of a Call
Cseq:
o

Has changed

Internet Telephony

Redirect Servers
An alternative address
o

302, Moved temporarily Same Call-ID Cseq ++

Another INVITE
o o

Internet Telephony

Proxy Servers
Entity headers are omitted Changes the Req-URI Via:
o o o

The path Loop detected, 482 For a response


 The 1st Via: header  Checked  removed

Internet Telephony

Internet Telephony

Proxy state
Can be either stateless or stateful Record-Route:
o

The messages and responses may not pass through the same proxy
 Use Contact:

o o o o o o

A Proxy might require that it remains in the signaling path


 In particular, for a stateful proxy

Insert its address into the Record-Route: header The response includes the Record-Route: header The Record-Route: header is used in the subsequent requests The Route: header = the Record-Route: header in reverse order, excluding the first proxy Each proxy remove the next from the Route: header

Internet Telephony

Forking Proxy
fork requests A user is registered at several locations
o

;branch=xxx

Internet Telephony

Internet Telephony

The Session Description Protocol


The message body
o

SDP, RFC 2327 Session Level Info


 Name  The originator  The time

The Structure of SDP


o

Media Level Info


    Media type Port number Transport protocol Media format

Internet Telephony

SDP session description structure

Internet Telephony

SDP Syntax
A number of lines of text In each line
o

field=value

Session-level fields first Media-level fields


o

Begin with media description field (m=)

Internet Telephony

Mandatory Fields
v=(protocol version) o=(session origin or creator and session id) s=(session name), a text string t=(time of the session)
o o

t=<start time> <stop time> NTP time values in seconds m=<media> <port> <transport> <fmt list> Media type The transport port The transport protocol The media format, an RTP payload format

m=(media)
o o o o o

Internet Telephony

Optional Fileds
i=(session information)
o o

A text description At both session and media levels Where further session information can be obtained Only at session level Who is responsible for the session Only at the session level Only at the session level

u=(URI of description)
o o

e=(e-mail address)
o o

p=(phone number)
o

Internet Telephony

c=(connection information)
o o

Connection type, network type, and connection address At session or media level In kilobits per second At session or media level

b=(bandwidth information)
o o

r=<repeat interval> <active duration> <list of offsets from start- time>


o o

For regularly scheduled session How often and how many times

Internet Telephony

z=(timezone adjustments)
o o o

z=<adjustment time> <offset> <adjustment time> <offset> .... For regularly scheduled session Standard time and Daylight Savings Time k=<method>:<encryption key> An encryption key or a mechanism to obtain it At session or media level Describe additional attributes

k=(encryption key)
o o o

a=(attributes)
o

Internet Telephony

Ordering of Fields
Session Level
o o o o o o o o o o o o o o

Protocol version (v) Origin (o) Session name (s) Session information (i) URI (u) E-mail address (e) Phone number (p) Connection info (c) Bandwidth info (b) Time description (t) Repeat info (r) Time zone adjustments (z) Encryption key (k) Attributes (a)

Media level
o o o

Media description (m) Media info (i) Connection info (c)


 Optional if specified at the session level

o o o

Bandwidth info (b) Encryption key (k) Attributes (a)

Internet Telephony

Subfields
Field = <value of subfield1> <value of subfield2> <value of subfield3> Origin (o)
o o

Username, the originators login id or - session ID


 A unique ID  Make use of NTP timestamp

o o o o o

version, a version number for this particular session network type


 A text string; IN refers to Internet

address type
 IP4, IP6

Address, a fully-qualified domain name or the IP address o=mhandley 2890844526 2890842807 IN IP4 126.16.64.4

Internet Telephony

Connection Data
o o o

The network and address at which media data are to be received Network type, address type, connection address c=IN IP4 224.2.17.12/127 Media type
 Audio, video, application, data, or control

Media Information
o o o

Port, 1024-65535 Format


 List the various types of media  RTP/AVP payload types

m= audio 45678 RTP/AVP 15 3 0


 G.728, GSM, G.711

Internet Telephony

Attributes
o

Property attribute
 a=sendonly  a=recvonly

o o

value attribute
 a=orient:landscape

rtpmap attribute
 The use of dynamic payload type  a=rtpmap:<payload type> <encoding name>/<clock rate> [/<encoding parameters>].  m=video 54678 RTP/AVP 98  a=rtpmap 98 L16/16000/2

Internet Telephony

Usage of SDP with SIP


SIP for the establishment of multimedia sessions SDP a structured language for describing the sessions
o

The entity header

Internet Telephony

Negotiation of Media
Fig 5-15
o

G.728 is selected 488 or 606 Not Acceptable A Warning header

If a mismatch
o o o

INVITE with multiple media streams


o o

Unsupported should also be returned With a port number of zero

Internet Telephony

Internet Telephony

Offer/answer

Internet Telephony

Internet Telephony

OPTIONS Method
o

Determine the capabilities of a potential called party

Internet Telephony