Session Initiation Protocol (SIP) Ram Dantu

Download Report

Transcript Session Initiation Protocol (SIP) Ram Dantu

Session Initiation Protocol (SIP)
Ram Dantu
(Compiled from different sources, see the references list)
SIP based VoIP Architecture
I
N
T
E
L
L
I
G
E
N
T
S
E
R
V
I
C
E
S
eMail
LDAP
Oracle
XML
CPL
CPL
3pcc
Application
Services
SIP Proxy, Registrar
& Redirect Servers
SIP
SIP
SIP
SIP User
Agents (UA)
PSTN
CAS or PRI
RTP
(Media)
Legacy
Internet PBX
Telephony
2
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
3
SIP Call Flow with Proxy Server
Proxy Server
Register
Register
OK (200)
OK (200)
Invite
Invite
Trying (100)
Ringing (180)
Ringing (180)
OK (200)
OK (200)
ACK
ACK
RTP/RTCP media
channels
Internet Telephony
4
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
6
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
7
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
8
SIP Architecture
The Popularity of SIP

Originally Developed in the MMUSIC




SIP + MGCP/MEGACO


A separate SIP working group
RFC 2543, RFC 3261
Many developers
The VoIP signaling in the future
“back-off” or SIPit (SIP Interoperability Tests)


Test products against each other
Will be hosted by ETSI
Internet Telephony
10
SIP Architecture

A signaling protocol


SIP + SDP


The setup, modification, and tear-down of
multimedia sessions
Describe the session characteristics
Separate signaling and media streams
Internet Telephony
11
SIP Network Entities

Clients



Servers



User agent clients
Application programs sending SIP requests
Responds to clients’ requests
Clients and servers may be in the same
platform
Proxy

Acts as both clients and servers
Internet Telephony
12

Four types of servers

Proxy servers


Handle requests or forward requests to other servers
Can be used for call forwarding
Internet Telephony
13

Redirect servers


Map the destination address to zero or more new addresses
Do not initiate any SIP requests
Internet Telephony
14

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
Internet Telephony
15
SIP Call Establishment

It is simple

A number of interim responses
Internet Telephony
16
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
Internet Telephony
17

Call Completion to Busy Subscriber service
Internet Telephony
18




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.
Internet Telephony
19

After learning the end point addresses, the end
points can communicate directly
Internet Telephony
20
Overview of SIP Messaging Syntax

Text-based


SIP messages




Similar to HTTP
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
Internet Telephony
21

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
Internet Telephony
22
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
Internet Telephony
23

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
Internet Telephony
24

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
Internet Telephony
25
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
Internet Telephony
26
“One number” service
Internet Telephony
27
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

Internet Telephony
28
Message Headers

Provide further information about the message


~information elements
E.g.,

To:header in an INVITE


From:header


The called party
The caling party
Four main categories



General, request, response, and entity headers
A list in Table 5-2
Mapping in Table 5-3
Internet Telephony
29
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
Internet Telephony
30

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
Internet Telephony
31

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
Internet Telephony
32
Example of SIP Message Sequences

Registration


Via:
Call-ID:


Content-Length:


Avoid ambiguity
Expires:



Zero, no msg body
Cseg:


host-specific
TTL
0, unreg
Contact:

*
Internet Telephony
33
Invitation

A two-party call

Subject:


optional
Content-Type:

application/sdp
Internet Telephony
34
Internet Telephony
35
Termination of a Call

Cseq:

Has changed
Internet Telephony
36
Redirect Servers

An alternative address


302, Moved temporarily
Another INVITE


Same Call-ID
Cseq ++
Internet Telephony
37
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
Internet Telephony
38
Internet Telephony
39
Proxy state


Can be either stateless or stateful
Record-Route:

The messages and responses may not pass through the
same proxy


A Proxy might require that it remains in the signaling path






Use Contact:
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
40
Forking Proxy


“fork” requests
A user is registered at
several locations

;branch=xxx
Internet Telephony
41
Internet Telephony
42
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
Internet Telephony
43

SDP session description structure
Internet Telephony
44
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=)
Internet Telephony
45
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
Internet Telephony
46
Optional Fileds

i=(session information)



u=(URI of description)



Where further session information can be obtained
Only at session level
e=(e-mail address)



A text description
At both session and media levels
Who is responsible for the session
Only at the session level
p=(phone number)

Only at the session level
Internet Telephony
47

c=(connection information)



b=(bandwidth information)



Connection type, network type, and connection address
At session or media level
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
Internet Telephony
48

z=(timezone adjustments)




k=(encryption key)




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
a=(attributes)

Describe additional attributes
Internet Telephony
49
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)
Internet Telephony
50
Subfields


Field = <value of subfield1> <value of subfield2>
<value of subfield3> …
Origin (o)


Username, the originator’s login id or “-”
session ID




version, a version number for this particular session
network type



A text string; IN refers to Internet
address type


A unique ID
Make use of NTP timestamp
IP4, IP6
Address, a fully-qualified domain name or the IP address
o=mhandley 2890844526 2890842807 IN IP4 126.16.64.4
Internet Telephony
51

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



Port, 1024-65535
Format



Audio, video, application, data, or control
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
52

Attributes

Property attribute



value attribute


a=sendonly
a=recvonly
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
53
Usage of SDP with SIP


SIP for the establishment of multimedia
sessions
SDP – a structured language for describing the
sessions

The entity header
Internet Telephony
54
Negotiation of Media

Fig 5-15


If a mismatch




G.728 is selected
488 or 606
Not Acceptable
A Warning header
INVITE with multiple
media streams


Unsupported should also
be returned
With a port number of
zero
Internet Telephony
55
Internet Telephony
56

Offer/answer
Internet Telephony
57
Internet Telephony
58

OPTIONS Method

Determine the capabilities
of a potential called party
Internet Telephony
59