Title: Session Initialization Protocol (SIP)
1Session Initialization Protocol (SIP)
- Presented by Lei Luo
- Computer Information Science Department
- University of Delaware
- Nov. 18, 2004
- Some slides are borrowed from Dorgham Sisalems
SIP Tutorial
2What Is SIP?
Alices Home Station
Alice
Phone Network
Bob
3What is SIP?
- A signaling protocol
- Set up
- Modify Multimedia Sessions
- Tear down
- Request/deliver presence and Instant messages
- Enable Internet endpoints
- Discover one another
- Agree on a characterization of a session
4What is NOT SIP?
- Not a transport protocol
- Not a media transmission protocol
- Not a QoS Reservation Protocol
- Not an integrated communications system
5Internet Multimedia Protocol Stack
SCTP
Source Henning Schulzrinne, http//www.cs.columbi
a.edu/hgs/internet/
6What can SIP Do?
- User Location
- User Availability
- User Capability
- Session Setup
- Session Management
7What Else Can SIP Do?
- Request/deliver presence information and instant
message sessions - Publish and upload presence information
- Request delivery of presence information
- Notify presence and other events
- Transport instant messages
8Marconi
Tesla
INVITE
180 Ringing
200 OK
ACK
Media Session
BYE
200 OK
Simple SIP session establishment example
9Proxy Server
Bob
Alice
INVITE
INVITE
180 Ringing
180 Ringing
200 OK
200 OK
ACK
Media Session
BYE
200 OK
SIP call example with proxy server
10Alice
Registrar Server
REGISTER Contact sipalice_at_128.175.13.16
200 OK
SIP registration example
11SUBSCRIBE
200 OK
NOTIFY
200 OK
NOTIFY
200 OK
MESSAGE
200 OK
MESSAGE
200 OK
SIP presence and instant message example
12How does SIP Work?
- Based on HTTP-like request/response model
- Text-based protocol
- Use the UTF-8 charset
- SIP message
- A request from a client to a server
- A response from a server to a client
13SIP User Agent (UA)
- SIP-enabled end-devices
- Maintain states on calls
- Local and remote tags
- Call-ID
- Local and remote CSeq header fields
- Contain client (UAC) server applications (UAS)
- Must support SDP for media description
14SIP User Agent Examples
Cisco
Siemens
MIC
15Presence Agent
- SIP devices
- Receive subscription requests
- Generate state notifications
- Collect presence information
- Need to authenticate a subscription request
16SIP Gateway
- A special type of UA
- Interface a SIP network to a non-SIP network
- Terminate the signaling path
- May or may not terminate the media path
- Support much more users than normal UA
17SIP Networks with Gateways
Telephone switch
Local/long distance 1-212-5551212
rtspd media server
Quicktime
Single machine
RTSP
sipconf Conference server
RTSP clients
Department PBX
sipum Unified messaging
Internal Telephone Extn 7040
713x
Proxy, redirect, registrar server
SQL database
SIP/PSTN Gateway
Web based configuration
SNMP (Network Management)
Extn 7134
H.323
Extn 7136
SIP/H.323 Gateway
NetMeeting
xiaotaow_at_cs
Borrowed from Xiaotao Wus slides (Columbia
University, 2002)
18SIP Servers ? SIP Workhorses
- Logical Entities
- Accept SIP requests
- Respond to requests
- Types of Servers
- Proxy Server
- Redirect Server
- Registration Server
19SIP Message Format
Generic-message Start-line
message-header CRLF
message-body Start-line Request-Line /
Status-Line Request-Line Method SP Request-URI
SP SIP-Version CRLF Status-Line SIP-Version SP
Status-Code SP Reason-Phase CRLF
SP blank space
20SIP Methods Sets
- Basic Methods
- INVITE
- REGISTER
- BYE
- ACK
- CANCEL
- OPTIONS
- Extended Methods
- REFER
- SUBSCRIBE
- NOTIFY
- MESSAGE
- etc.
21SIP Response Codes
- Consistent with/extend HTTP/1.1 response codes
- 1xx Informational
- 2xx Success
- 3xx Redirection
- 4xx Client error
- 5xx Server failure
- 6xx Global Failure
- 600 Busy Everywhere
- 603 Decline
- 604 Does Not Exist Anywhere
- etc.
Borrowed from HTTP
? Created for SIP
22SIP Registration Server
REGISTER sipregistrar.udel.edu Via SIP/2.0/UDP
128.175.13.505060 branchz9hG4bKus19 Max-
Forwards 70 To Alice ltsipalice_at_eecis.udel.edugt
From Alice ltsipalice_at_eecis.udel.edugttag3431 Ca
ll-ID 23_at_128.175.13.50 CSeq 1 REGISTER Contact
sipalice_at_128.175.13.50 Content-Length 0
Alice
Registrar Server
SIP/2.0 200 OK Via SIP/2.0/UDP
128.175.13.505060 branchz9hG4bKus19 To
Alice ltsipalice_at_eecis.udel.edugt From Alice
ltsipalice_at_eecis.udel.edugttag3431 Call-ID
23_at_128.175.13.50 CSeq 1 REGISTER Contact
ltsipalice_at_128.175.13.50gtexpires3600 Content-Len
gth 0
23SIP Proxy Server
INVITE sipbob_at_yahoo.com SIP/2.0 Via SIP/2.0/UDP
proxy.udel.com5060 branchz9hG4bK83842.1 Vi
a SIP/2.0/UDP 100.101.102.1035060
branchz9hG4bKmp17a To Bob ltsipbob_at_yahoo.comgt Fr
om Alice ltsipalice_at_udel.edugttag42 Subject
Where are you exactly? Contact
ltsipalice_at_pc.udel.edugt
Location server
DNS server
INVITE sipbob_at_yahoo.com SIP/2.0 Via SIP/2.0/UDP
proxy.yahoo.com5060 branchz9hG4bKtiop3 Via
SIP/2.0/UDP proxy.udel.com5060
branchz9hG4bK83842.1 Via SIP/2.0/UDP
100.101.102.1035060 branchz9hG4bKmp17a To
Bob ltsipbob_at_yahoo.comgt From Alice
ltsipalice_at_udel.edugttag42 Subject Where are
you exactly? Contact ltsipalice_at_pc.udel.edugt
INVITE sipbob_at_yahoo.com SIP/2.0 Via SIP/2.0/UDP
100.101.102.1035060 branchz9hG4bKmp17a To
Bob ltsipbob_at_yahoo.comgt From Alice
ltsipalice_at_udel.edugttag42 Subject Where are
you exactly? Contact ltsipalice_at_pc.udel.edugt
Outbound proxy server
Inbound proxy server
100 Trying
180 Ringing
200 OK
100 Trying
180 Ringing
200 OK
180 Ringing
200 OK
BYE
ACK
Media (RTP)
Alice
Bob
200 OK
SIP Trapezoid
24SIP Proxy Server
INVITE Bob
INVITE Bob
Bobs Phone
486 Busy Here
Alice
INVITE Bob
Bobs voicemail
Proxy servers can make flexible routing
decisions to decide where to send a request.
25SIP Proxy Server
Bobs Cell Phone
INVITE Bob
200 OK
INVITE Bob
Bobs Office Phone
CANCEL
INVITE Bob
Alice
200 OK
Bobs Home Phone
INVITE Bob
CANCEL
In parallel search, a proxy issues several
requests to possible user locations upon
receiving an incoming request.
26SIP Redirect Server
SIP/2.0 302 Moved Temporarily Via SIP/2.0/UDP
100.101.102.1035060 branchz9hG4bKmp17a To
Bob ltsipbob_at_yahoo.comgttag64 From Alice
ltsipalice_at_udel.edugttag42 Subject Where are
you exactly? Contact sipalice_at_200.201.202.203
INVITE sipbob_at_yahoo.com SIP/2.0 Via SIP/2.0/UDP
100.101.102.1035060 branchz9hG4bKmp17a To
Bob ltsipbob_at_yahoo.comgt From Alice
ltsipalice_at_udel.edugttag42 Subject Where are
you exactly? Contact ltsipalice_at_pc.udel.edugt
ACK
Redirect Server
INVITE sipbob_at_200.201.202.203 SIP/2.0 Via
SIP/2.0/UDP 100.101.102.1035060
branchz9hG4bKmp17a To Bob ltsipbob_at_yahoo.comgt Fr
om Alice ltsipalice_at_udel.edugttag13473 Subject
Where are you exactly? Contact
ltsipalice_at_pc.udel.edugt
Alice
Bob
27Thats It!
- We have learned a lot about SIP!!
No Way!!!
Did we really learn a lot of stuff about SIP?
Then what are we gonna do?
28Key References
- J. Rosenberg, SIP Session Initialization
Protocol, RFC 3261, 2002 - A. Johnston, SIP Understanding the Session
Initialization Protocol, 2nd edition - J. Kuthan and D. Sisalem, SIP Tutorial
http//iptel.org/sip/ - SIP web site http//www.cs.columbia.edu/sip/
29Questions?