290 likes | 335 Views
Session Initialization Protocol (SIP). Presented by: Lei Luo Computer & Information Science Department University of Delaware Nov. 18, 2004 Some slides are borrowed from Dorgham Sisalem’s SIP Tutorial. What Is SIP?. Alice’s Home Station. Alice. Phone Network. Bob. What is SIP?.
E N D
Session Initialization Protocol (SIP) Presented by: Lei Luo Computer & Information Science Department University of Delaware Nov. 18, 2004 Some slides are borrowed from Dorgham Sisalem’s SIP Tutorial
What Is SIP? Alice’s Home Station Alice Phone Network Bob
What 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
What is NOT SIP? • Not a transport protocol • Not a media transmission protocol • Not a QoS Reservation Protocol • Not an integrated communications system
Internet Multimedia Protocol Stack SCTP Source: Henning Schulzrinne, http://www.cs.columbia.edu/~hgs/internet/
What can SIP Do? • User Location • User Availability • User Capability • Session Setup • Session Management
What 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
Marconi Tesla INVITE 180 Ringing 200 OK ACK Media Session BYE 200 OK Simple SIP session establishment example
Proxy 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
Alice Registrar Server REGISTER Contact: sip:alice@128.175.13.16 200 OK SIP registration example
SUBSCRIBE 200 OK NOTIFY 200 OK … NOTIFY 200 OK MESSAGE 200 OK MESSAGE 200 OK SIP presence and instant message example
How 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
SIP 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
SIP User Agent Examples Cisco Siemens MIC
Presence Agent • SIP devices • Receive subscription requests • Generate state notifications • Collect presence information • Need to authenticate a subscription request
SIP 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
Web server SIP 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@cs Borrowed from Xiaotao Wu’s slides (Columbia University, 2002)
SIP Servers SIP Workhorses • Logical Entities • Accept SIP requests • Respond to requests • Types of Servers • Proxy Server • Redirect Server • Registration Server
SIP 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
SIP Methods Sets • Extended Methods • REFER • SUBSCRIBE • NOTIFY • MESSAGE • etc. • Basic Methods • INVITE • REGISTER • BYE • ACK • CANCEL • OPTIONS
SIP 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 – BusyEverywhere • 603 – Decline • 604 – DoesNot Exist Anywhere • etc. Borrowed from HTTP Created for SIP
SIP Registration Server REGISTER sip:registrar.udel.edu Via: SIP/2.0/UDP 128.175.13.50:5060; branch=z9hG4bKus19 Max-Forwards: 70 To: Alice <sip:alice@eecis.udel.edu> From: Alice <sip:alice@eecis.udel.edu>;tag=3431 Call-ID: 23@128.175.13.50 CSeq: 1 REGISTER Contact: sip:alice@128.175.13.50 Content-Length: 0 Alice Registrar Server SIP/2.0 200 OK Via: SIP/2.0/UDP 128.175.13.50:5060; branch=z9hG4bKus19 To: Alice <sip:alice@eecis.udel.edu> From: Alice <sip:alice@eecis.udel.edu>;tag=3431 Call-ID: 23@128.175.13.50 CSeq: 1 REGISTER Contact: <sip:alice@128.175.13.50>;expires=3600 Content-Length: 0
SIP Proxy Server INVITE sip:bob@yahoo.com 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:bob@yahoo.com> From: Alice <sip:alice@udel.edu>;tag=42 Subject: Where are you exactly? Contact: <sip:alice@pc.udel.edu> Location server DNS server INVITE sip:bob@yahoo.com SIP/2.0 Via: SIP/2.0/UDP proxy.yahoo.com:5060; branch=z9hG4bKtiop3 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:bob@yahoo.com> From: Alice <sip:alice@udel.edu>;tag=42 Subject: Where are you exactly? Contact: <sip:alice@pc.udel.edu> INVITE sip:bob@yahoo.com SIP/2.0 Via: SIP/2.0/UDP 100.101.102.103:5060; branch=z9hG4bKmp17a To: Bob <sip:bob@yahoo.com> From: Alice <sip:alice@udel.edu>;tag=42 Subject: Where are you exactly? Contact: <sip:alice@pc.udel.edu> 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 200 OK Bob SIP Trapezoid
SIP Proxy Server INVITE Bob INVITE Bob Bob’s Phone 486 Busy Here Alice INVITE Bob Bob’s voicemail Proxy servers can make flexible “routing decisions” to decide where to send a request.
SIP Proxy Server Bob’s Cell Phone INVITE Bob 200 OK INVITE Bob Bob’s Office Phone CANCEL INVITE Bob Alice 200 OK Bob’s Home Phone INVITE Bob CANCEL In parallel search, a proxy issues several requests to possible user locations upon receiving an incoming request.
SIP Redirect Server SIP/2.0 302 Moved Temporarily Via: SIP/2.0/UDP 100.101.102.103:5060; branch=z9hG4bKmp17a To: Bob <sip:bob@yahoo.com>;tag=64 From: Alice <sip:alice@udel.edu>;tag=42 Subject: Where are you exactly? Contact: sip:alice@200.201.202.203 INVITE sip:bob@yahoo.com SIP/2.0 Via: SIP/2.0/UDP 100.101.102.103:5060; branch=z9hG4bKmp17a To: Bob <sip:bob@yahoo.com> From: Alice <sip:alice@udel.edu>;tag=42 Subject: Where are you exactly? Contact: <sip:alice@pc.udel.edu> ACK Redirect Server INVITE sip:bob@200.201.202.203 SIP/2.0 Via: SIP/2.0/UDP 100.101.102.103:5060; branch=z9hG4bKmp17a To: Bob <sip:bob@yahoo.com> From: Alice <sip:alice@udel.edu>;tag=13473 Subject: Where are you exactly? Contact: <sip:alice@pc.udel.edu> Alice Bob
That’s It! • We have learned a lot about SIP!! No Way!!! Did we really learn a lot of stuff about SIP? Then what are we gonnado?
Key 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/