Download Session Initialization Protocol (SIP)

Survey
yes no Was this document useful for you?
   Thank you for your participation!

* Your assessment is very important for improving the work of artificial intelligence, which forms the content of this project

Document related concepts
no text concepts found
Transcript
Session Initialization Protocol
(SIP)
Presented by: Aishwarya Gurazada
CISC856: TCP/IP and upper layer protocols
May 5th 2011
Some slides borrowed from the presentations of
Lei Luo
Che-Yu Kuo
What is SIP?

An IETF defined application-layer control (signaling)
protocol for creating, modifying and terminating
sessions

Sessions are primarily audio and video calls over IP

SIP incorporates elements of HTTP request-response
model, text-based protocol, URL (SIP uses URI’s) and
SMTP for header style such as To, From, and Subject
2
Motivation


The telephony applications introduced signaling into IP network
SIP was designed to mimic the call setup and signaling
characteristics of the traditional telephone network over an IP
infrastructure
What does SIP do?


SIP enables Internet endpoints (called user agents) to discover one
another and to agree on a characterization of a session they would
like to share
As users may move between endpoints, they may be addressable
by multiple names, and they may communicate in several different
media
3
Facets of Establishing a Call

User location: SIP enables the creation of an
infrastructure of network hosts (called proxy
servers) which could find in locating a user

User availability: determination of the willingness
of the called party to engage in communications

User capabilities: media and media parameters to
be used

Session management: supports transfer,
termination, and modification of sessions
4
SIP Protocol Stack
SIP is rather a component that can be used with other IETF protocols
to build a complete multimedia architecture.
SDP( Session Description
Protocol) for describing
multimedia sessions during
signaling
SIP Enabled-IP Network
IP Network
RTP (real time protocol)
defines a standardized packet
format for delivering audio
and video over IP networks
Media Gateway
Control Protocol
(MEGACO) for
controlling gateways
SIP/PSTN Gateway
PSTN Network
5
SIP – Transport Layer

TCP
 TCP provides a reliable transport layer, but at a cost of
complexity and transmission delay over the network.

UDP
 UDP is the simplest way of transmitting chunks of data from one
host to another in an IP network. Provided that the amount of
data to be sent at once is not too big

SCTP
 SCTP preserves boundaries
 SCTP avoids head of line blocking
6
SIP Client-Server Architecture
User Agent – Softphone
User Agent – Hard phone
Registrar Server
Kate’s & Sam’s location
Mike
Sam
Servers
Redirect Server
Proxy Server
Gateway
Kate
User Agent – Softphone
SIP Gateway
PSTN Network
Jim
7
SIP Operation
SIP addressing
 Locating the end user
 SIP messages- methods & responses
 Sending SIP requests : SIP transactions

SIP Addressing

SIP clients are identified by SIP URI (Uniform Resource Indicator)

URI’s look like email addresses of the form user@domain

The communication is user-to-user instead of device-to-device

The user@domain needs to be resolved to user@host by using a
SIP Proxy server and DNS lookups at the time of call
examples
sip:[email protected] (user@domain)
sip:J.T. Kirk <[email protected]>
sip:[email protected];user=phone
sip:[email protected] (user@host)
9
Locating the End User

When client wants to send a request URI, the client will either send it to

Locally configured Proxy server or
 IP address & port corresponding to the request URI
Jim needs
to call Jane
Location service
Jim needs to know the
CURRENT IP address of
Jane to send request
Locates Jane
Request
-
Sip:[email protected]
Request
xyz.com proxy Server
Server can locate Jane by looking up its
“location service” database provided
that Jane is registered
[email protected]
10
SIP Message Format

generic-message = Request-Line / Status-Line (Response)
message-header (fields)
CRLF
[ message-body ]
Request-Line
INVITE sip: [email protected] SIP/2.0
Via: SIP/2.0/UDP lab.highvoltage.org:5060;branch=z9hG4bKfw19b
v=0
Max-Forwards:
70
o=Tesla
2890844526
2890844526 IN IP4 lab.high-voltage.org
To:
G. Marconi
<sip: [email protected]>
s=Phone
Call Tesla <sip:[email protected]>;tag=76341
From:
Nikola
c=IN IP4 j2qu348ek2328ws
100.101.102.103
Call-ID:
t=0 0 1 INVITE
CSeq:
m=audio 49170
RTP/AVP
0 Outage...
Subject:
About That
Power
a=rtpmap:0<sip:[email protected]>
PCMU/8000
Contact:
Content-Type: application/sdp
Content-Length: 158
Message body
Header fields
11
Request Line

Request-Line = Method SP Request-URI SP SIP-Version CRLF
•
REGISTER
 registering contact User to which the request
information
is addressed
SIP version
• INVITE, ACK, CANCEL
 setting up sessions
•
BYE
 terminating sessions
•
INVITE [email protected] SIP/2.0
OPTIONS
 querying servers about
their capabilities
12
Status Line

Status-Line = SIP-Version SP Status-Code SP Reason-Phrase CRLF
SIP/2.0
1xx: Provisional -- request received, continuing to
process the request;
2xx: Success -- the action was successfully received,
understood, and accepted;
The Reason-Phrase
is intended to give a
short textual
description of the
Status-Code.
3xx: Redirection -- further action needs to be taken in
order to complete the request;
SIP/2.0 180 Ringing
4xx: Client Error -- the request contains bad syntax or
cannot be fulfilled at this server;
5xx: Server Error -- the server failed to fulfill an
apparently valid request;
6xx: Global Failure -- the request cannot be fulfilled at
any server.
13
Message Header fields
Parameter
Description
Call-ID
Uniquely identifies a particular session
Cseq
A monotonically increasing sequence number used to
identify the sequence of requests associated with a
given Call-ID
From
A SIP URL that identifies the initiator of the request.
May include a “friendly name” (e.g John)
To
A SIP URL that identifies the recipient of the request.
May include a “friendly name”
Via
Indicates the path taken by the request
14
Marconi Accepted
Marconi
Tesla
INVITE
ACK
Media Session
200 OK
Simple SIP session establishment example
15
Proxy
Server
Alice
INVITE
Bob
INVITE
ACK
Media Session
200 OK
SIP call example with proxy server
16
Alice
Registrar Server
SIP registration example
17
SUBSCRIBE
…
MESSAGE
SIP presence and instant message example
18
SIP/2.0 REGISTER
sip:registrar.udel.edu
Via: SIP/2.0/UDP 128.175.13.50:5060;
branch=z9hG4bKus19
Max-Forwards: 70
SIP/2.0 407
REQUIRED
To: AUTHORIZATION
Alice <sip:[email protected]>
Via: SIP/2.0/UDP
128.175.13.50:5060;
From: Alice
SIP/2.0
REGISTER
sip:registrar.udel.edu
branch=z9hG4bKus19
<sip:[email protected]>;tag=3431
Via:
SIP/2.0/UDP
128.175.13.50:5060;
To: Alice
<sip:[email protected]>
Call-ID:
branch=z9hG4bKus19
From:
Alice
<sip:[email protected]>;tag=3431
843817637684230@998sdasdh09
To:
Alice
<sip:[email protected]>
Call-ID:843817637684230@998sdasdh09
CSeq:
1 REGISTER
From:
<sip:[email protected]>;tag=3431
CSeq:Alice
1500
REGISTER
Contact: sip:[email protected]
Call-ID:843817637684230@998sdasdh09
Contact: Content-Length:
<sip:[email protected]>;
0
CSeq:
1 REGISTER Digest
Proxy-Authenticate:
Contact:
<sip:[email protected]>;expires=3600
realm=“eecis.udel.edu",
Proxy-Authorization:
Digest username=“alice",
nonce="4db894763e920f6ec021e68a3e87b098dc4a
realm=“eecis.udel.edu,
c8f9"
nonce="4db894763e920f6ec021e68a3e87b098dc4ac8
Content-Length:
0
SIP/2.0 200 OK
f9”,Via:
uri=SIP/2.0/UDP
[email protected],
128.175.13.50:5060;
“response="d4456069e70376940998daae084cd5b5”,
branch=z9hG4bKus19
Content-Length:
0
To: Alice <sip:[email protected]>
From: Alice
<sip:[email protected]>;tag=3431
Call-ID:843817637684230@998sdasdh09
CSeq: 1 REGISTER
Contact:
<sip:[email protected]>;expires=3600
Content-Length: 0
SIP Registration Server
Alice
Registrar Server
19
Simple Call Establishment
Alice
Inserts a “From”
tag and sets the
session parameters
Inserts a “To” tag
and sets the
session parameters
Call ID, from and to
tags identify a
dialog
INVITE sip:[email protected] SIP/2.0
Via: SIP/2.0/UDP 100.101.102.103:5060;
branch=z9hG4bKmp17a
To: Bob <sip:[email protected]>
SIP/2.0
180 Ringing
From:
Alice <sip:[email protected]>;tag=42
Via: SIP/2.0/UDP
100.101.102.103:5060;
Call-ID: j2qu348ek2328ws
branch=z9hG4bKmp17a
Cseq: 1 IINVITE
SIP/2.0
200
OKsip:[email protected]
To: Bob
sip:[email protected];tag=75
Contact:
Via:
SIP/2.0/UDP
100.101.102.103:5060;
From:
Alice
<sip:[email protected]>;tag=42
Subject:
Where
are you exactly?
branch=z9hG4bKmp17a
Call-ID:
j2qu348ek2328ws
To:
Bob
sip:[email protected];tag=75
Cseq:
1 INVITE
From:
Alice
<sip:[email protected]>;tag=42
Contact:
<sip:[email protected]>
Call-ID: j2qu348ek2328ws
Cseq:
1 INVITE
SIP/2.0
ACK
Contact:
<sip:[email protected]>
Via: SIP/2.0/UDP 100.101.102.103:5060;
Bob
branch=z9hG4bK321g
To:
Bob sip:[email protected];tag=75
v=0
From:
Alice
<sip:[email protected]>;tag=42
o=alice
2890844526
2890844526 IN IP4
Call-ID: j2qu348ek2328ws
alice.udel.edu
Cseq: 1 ACK
s=Phone Call
v=0 IP4 100.101.102.103
c=IN
o=bob
t=0
0 2890844528 2890844528IN IP4
tower.yahoo.com
m=audio
49170 RTP/AVP 0
s=Phone Call
a=rtpmap:0
PCMU/8000
c=IN IP4 200.201.202.203
t=0 0
m=audio 60000 RTP/AVP 0
a=rtpmap:0 PCMU/8000
20
SIP Proxy Server
DNS server
INVITE sip:[email protected] SIP/2.0
Via: SIP/2.0/UDP 100.101.102.103:5060;
branch=z9hG4bKmp17a
To: Bob <sip:[email protected]>
From: Alice <sip:[email protected]>;tag=42
Subject: Where areOutbound
you exactly?
Contact: <sip:[email protected]>
INVITE sip:[email protected] SIP/2.0
Via: SIP/2.0/UDP proxy.udel.com:5060;
branch=z9hG4bK83842.1
Via: SIP/2.0/UDP 100.101.102.103:5060;
branch=z9hG4bKmp17a
To: Bob <sip:[email protected]>
From: Alice <sip:[email protected]>;tag=42
Subject: Where are you exactly?
Contact: <sip:[email protected]>
proxy server
100180
Trying
Ringing
200 OK
100 Trying
180 Ringing
200 OK
INVITE sip:[email protected] SIP/2.0
Via: SIP/2.0/UDP
Location
proxy.yahoo.com:5060;
branch=z9hG4bKtiop3
server
Via: SIP/2.0/UDP proxy.udel.com:5060;
branch=z9hG4bK83842.1
Via: SIP/2.0/UDP
100.101.102.103:5060;
branch=z9hG4bKmp17a
To: Bob <sip:[email protected]>
From:
Alice
Inbound
<sip:[email protected]>;tag=42
proxyWhere
server
Subject:
are you exactly?
Contact: <sip:[email protected]>
180 Ringing
200 OK
BYE
Media (RTP)
ACK
Alice
200 OK
Bob
SIP Trapezoid
21
SIP Proxy Server
Location Service
INVITE Bob
INVITE Bob
Bob’s
Phone
Proxy Server
486 Busy Here
Alice
INVITE Bob
Proxy servers can make flexible “routing
decisions” to decide where to send a request.
Bob’s
voicemail
22
SIP Redirect Server
SIP/2.0 301 Moved Permanently
Via: SIP/2.0/UDP 100.101.102.103:5060;
INVITE sip:[email protected] SIP/2.0 branch=z9hG4bKmp17a
Via: SIP/2.0/UDP 100.101.102.103:5060;
To: Bob <sip:[email protected]>;tag=64
branch=z9hG4bKmp17a
From: Alice
To: Bob <sip:[email protected]> <sip:[email protected]>;tag=42
From: Alice
Subject: Where are you exactly?
<sip:[email protected]>;tag=42
Contact: sip:[email protected]
Subject: Where are you exactly?
INVITE sip:[email protected] SIP/2.0
Contact: <sip:[email protected]>
Via: SIP/2.0/UDP 100.101.102.103:5060;
branch=z9hG4bKmp17a
ACK
To: Bob <sip:[email protected]>
From: Alice <sip:[email protected]>;tag=13473
Subject: Where are you exactly?
Contact: <sip:[email protected]>
Redirect Server
Alice
Bob
23
Terminal Mobility- Pre-call
Mobile -JIM
JANE
Home Proxy/registrar
REGISTER
200 OK
INVITE
INVITE
200 OK
200 OK
ACK
Media Session
24
Terminal Mobility- Mid Call
Media Session
Home Network
Visited Network
25
Personal Mobility
INVITE
200Bob
OK
Location Service
INVITE Bob
Alice
200 OK
Bob’s Cell
Phone
Bob’s
Office
Phone
INVITE
Bob
CANCEL
Proxy Server
INVITE Bob
CANCEL
Bob’s
Home
Phone
In parallel search, a proxy issues several
requests to possible user locations upon
receiving an incoming request.
26
Session Mobility

Transfer and Retrieval
 Transfer means to move the session on the current device to
one or more other devices
 Retrieval means to cause a session currently on another device
to be transferred to the local device

Whole and Split Transfer

The set of session media may either be transferred completely
to a single device or split across multiple devices
27
Transfer Modes

Mobile Node (MN) Control Mode
 Mobile Node (MN) uses a third party call control
 It establishes a SIP session with the local device used in the transfer and
updates its session with the CN (corresponding node), using the SDP
parameters to establish media sessions between the CN and the local
device
 it requires the MN to remain active to maintain the sessions

Session Hands off Mode
 MN completely transfers the session signaling and media to another
device
Addressing of Devices
 All devices are assumed to have dedicated SIP URI’s
 A device has a unique URI and registers a separate contact URI for
itself
28
Local Device
Corresponding Node
Mobile Node
Media Session
INVITE
200 OK local
Parameters
INVITE local
Parameters
200 OK CN
parameters
ACK CN
Parameters
ACK
Media Session
29
Local Device
Corresponding Node
Mobile Node
Media Session
REFER ,refer-to
200 Accepted
INVITE, Replaces
200 OK
Media Session
ACK
Media Session
NOTIFY
200 OK
BYE
200 OK
30
References
 J. Rosenberg, SIP: Session
Initialization
Protocol, RFC 3261, 2002
 A. Johnston, SIP: Understanding the
Session Initialization Protocol, 2nd
edition
31
Questions
32
Related documents