Upload
sherman-jenkins
View
229
Download
4
Tags:
Embed Size (px)
Citation preview
Session Initiation Protocol (SIP)
Ram Dantu (Compiled from different sources, see the references
list)
2Internet Telephony
SIP based VoIP ArchitectureSIP based VoIP Architecture
Legacy PBX
SIP User Agents (UA)
Application Services
eMail LDAP Oracle XML
SIPSIP
RTP(Media)
SIP
CPLCPL3pcc
PSTN
CAS or PRI
INTELLIGENT
SERVICES
SIP Proxy, Registrar & Redirect Servers
3Internet Telephony
Basic SIP Call-FlowBasic SIP Call-Flow
SIP UA1 SIP UA2
INVITE w/ SDP for Media Negotiation
100 Trying
180/183 Ringing w/ SDP for Media Negotiation
200 OK
200 OK
BYE
MEDIA
MEDIA
ACK
4Internet Telephony
SIP Call Flow with Proxy ServerProxy Server
Register
OK (200)
Register
OK (200)
Invite Invite Trying (100) Ringing
(180) Ringing (180) OK (200)
OK (200)
ACK ACK
RTP/RTCP media channels
VoIP Migration
6Internet Telephony
Customer Premises
IP CoreIP CoreNetworkNetwork
Step1: IPPBX deployments in Enterprises
DNS Server for URL resolution- Large enterprises will handle VOIP calls directly- PSTN connectivity provided by Media Gateways - Regulation can not stop spammers outside USA (similar to SMTP spam)
Customer Premises
PSTNPSTNNetworkNetwork
7Internet Telephony
Customer Premises
Carrier NetworkCarrier Network
Softswitches, MGWVoIP Proxy Server, SGWSGC, VoIP Centrex Server,
Internet
STEP 2: Hosted IP CentrexFW, NAT, VoIP service provided by Carrier Networks
8Internet Telephony
Customer Premises
Carrier NetworkCarrier Network
Step 3: Carrier VoIP Network
Softswitches, MGWVoIP Proxy Server, SGWSGC, VoIP Centrix Server,
Internet
- VoIP FW, NAT and Security provided by Carriers
VoIP Trunk
SIP Architecture
10Internet Telephony
The Popularity of SIP
Originally Developed in the MMUSIC A separate SIP working group RFC 2543, RFC 3261 Many developers
SIP + MGCP/MEGACO The VoIP signaling in the future
“back-off” or SIPit (SIP Interoperability Tests) Test products against each other Will be hosted by ETSI
11Internet Telephony
SIP Architecture
A signaling protocol The setup, modification, and tear-down of
multimedia sessions SIP + SDP
Describe the session characteristics Separate signaling and media streams
12Internet Telephony
SIP Network Entities
Clients User agent clients Application programs sending SIP requests
Servers Responds to clients’ requests
Clients and servers may be in the same platform
Proxy Acts as both clients and servers
13Internet Telephony
Four types of servers Proxy servers
Handle requests or forward requests to other servers
Can be used for call forwarding
14Internet Telephony
Redirect servers Map the destination address to zero or more new
addresses Do not initiate any SIP requests
15Internet Telephony
A user agent server Accept SIP requests and contacts the user The user responds → an SIP response A SIP device E.g., an SIP-enabled telephone
A registrar Accepts SIP REGISTER requests
Indicating the user is at a particular address Typically combined with a proxy or redirect server
16Internet Telephony
SIP Call Establishment
It is simple A number of interim responses
17Internet 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 Including non-standard information Enable the users to make intelligent decisions
The user has control of call handling No need to subscribe call features
18Internet Telephony
Call Completion to Busy Subscriber service
19Internet 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 Bob’s SIP phone returned 486 (busy) response, the biloxi.com proxy server could proxy the INVITE to Bob’s 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.
20Internet Telephony
After learning the end point addresses, the end points can communicate directly
21Internet Telephony
Overview of SIP Messaging Syntax
Text-based Similar to HTTP
SIP messages message = start-line
*message-header CRLF
[message-body] start-line = request-line | status-line
Request-line specifies the type of request The response line
The success or failure of a given request
22Internet Telephony
Message headers Additional information of the request or
response E.g.,
The originator and recipient Retry-after header Subject header
Message body Describe the type of session
The media format SDP, Session Description Protocol
Could include an ISDN User Part message Examined only at the two ends
23Internet Telephony
SIP Requests
method SP request-URI SP SIP-version CRLF request-URI
The address of the destination Methods
INVITE, ACK, OPTIONS, BYE, CANCLE, REGISTER extensions: INFO, REFER, UPDATE, …
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
24Internet Telephony
BYE Terminate a session Can be issued by either the calling or called party
Options Query a server as to its capabilities
A particular type of media The response if sent an INVITE
CANCEL Terminate a pending request E.g., an INVITE did not receive a final response
25Internet Telephony
REGISTER 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
INFO RFC 2976 Transfer information during an ongoing session
DTMF digits account balance information midcall signaling information generated in another
network
26Internet Telephony
SIP Responses
SIP version SP status code SP reason-phrase CRLF reason-phrase
A textual description of the outcome Could be presented to the user
status code 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
27Internet Telephony
“One number” service
28Internet Telephony
SIP Addressing
SIP URLs (Uniform Resource Locators) user@host E.g.,
sip:[email protected] sip:[email protected]
Supplement the URL sip:[email protected];user=phone
sip:user:password@host:port;uri-parameters?headers
29Internet Telephony
Message Headers
Provide further information about the message ~ information elements
E.g., To:header in an INVITE
The called party From:header
The caling party
Four main categories General, request, response, and entity headers A list in Table 5-2 Mapping in Table 5-3
30Internet Telephony
General Headers
Used in both requests and responses Basic information
E.g., To:, From:, Call-ID:, … Contact:
A URL for future communication May be different from the From: header
Requests passed through proxies
31Internet Telephony
Request Headers 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 Further information about the response E.g.,
Unsupported:, features Retry-After
32Internet Telephony
Entity Header 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 Expires, the date and time
33Internet Telephony
Example of SIP Message Sequences
Registration Via: Call-ID:
host-specific Content-Length:
Zero, no msg body Cseg:
Avoid ambiguity Expires:
TTL 0, unreg
Contact: *
34Internet Telephony
Invitation
A two-party call Subject:
optional Content-Type:
application/sdp
35Internet Telephony
36Internet Telephony
Termination of a Call
Cseq: Has changed
37Internet Telephony
Redirect Servers
An alternative address
302, Moved temporarily
Another INVITE Same Call-ID Cseq ++
38Internet Telephony
Proxy Servers
Entity headers are omitted
Changes the Req-URI Via:
The path Loop detected, 482 For a response
The 1st Via: header Checked removed
39Internet Telephony
40Internet Telephony
Proxy state
Can be either stateless or stateful Record-Route:
The messages and responses may not pass through the same proxy
Use Contact: 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
41Internet Telephony
Forking Proxy
“fork” requests A user is registered at
several locations ;branch=xxx
42Internet Telephony
43Internet Telephony
The Session Description Protocol
The message body SDP, RFC 2327
The Structure of SDP Session Level Info
Name The originator The time
Media Level Info Media type Port number Transport protocol Media format
44Internet Telephony
SDP session description structure
45Internet Telephony
SDP Syntax
A number of lines of text In each line
field=value Session-level fields first Media-level fields
Begin with media description field (m=)
46Internet 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)
t=<start time> <stop time> NTP time values in seconds
m=(media) m=<media> <port> <transport> <fmt list> Media type The transport port The transport protocol The media format, an RTP payload format
47Internet Telephony
Optional Fileds
i=(session information) A text description At both session and media levels
u=(URI of description) Where further session information can be obtained Only at session level
e=(e-mail address) Who is responsible for the session Only at the session level
p=(phone number) Only at the session level
48Internet Telephony
c=(connection information) Connection type, network type, and connection
address At session or media level
b=(bandwidth information) In kilobits per second At session or media level
r=<repeat interval> <active duration> <list of offsets from start- time>
For regularly scheduled session How often and how many times
49Internet Telephony
z=(timezone adjustments) z=<adjustment time> <offset> <adjustment time>
<offset> .... For regularly scheduled session Standard time and Daylight Savings Time
k=(encryption key) k=<method>:<encryption key> An encryption key or a mechanism to obtain it At session or media level
a=(attributes) Describe additional attributes
50Internet Telephony
Ordering of Fields
Session Level 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 Media description (m) Media info (i) Connection info (c)
Optional if specified at the session level
Bandwidth info (b) Encryption key (k) Attributes (a)
51Internet Telephony
Subfields
Field = <value of subfield1> <value of subfield2> <value of subfield3> …
Origin (o) Username, the originator’s login id or “-” session ID
A unique ID Make use of NTP timestamp
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
52Internet Telephony
Connection Data 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 Information Media type
Audio, video, application, data, or control 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
53Internet Telephony
Attributes Property attribute
a=sendonly a=recvonly
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
54Internet Telephony
Usage of SDP with SIP
SIP for the establishment of multimedia sessions
SDP – a structured language for describing the sessions The entity header
55Internet Telephony
Negotiation of Media
Fig 5-15 G.728 is selected
If a mismatch 488 or 606 Not Acceptable A Warning header
INVITE with multiple media streams
Unsupported should also be returned
With a port number of zero
56Internet Telephony
57Internet Telephony
Offer/answer
58Internet Telephony
59Internet Telephony
OPTIONS Method Determine the
capabilities of a potential called party