Dennis Baron January 15, 2008 np160 Dennis Baron, January 15, 2008 Page 2 Outline What is SIP SIP system components SIP messages and responses SIP call flows SDP basics/CODECs IS&T Services Questions and answers np160 Dennis Baron, January 15, 2008 Page 3 Whats SIP
IETF Standard defined by RFC 3261 The Session Initiation Protocol (SIP) is an application-layer control (signaling) protocol for creating, modifying and terminating sessions with one or more participants. Can be used for voice, video, instant messaging, gaming, etc., etc., etc. Uses URIs for addressing single communications identity mailto:dbaron@MIT.edu for email xmpp:dbaron@MIT.EDU for instant messaging sip:dbaron@MIT.EDU for voice and video Username replaced by numbers for telephone applications np160 Dennis Baron, January 15, 2008 Page 4 Wheres SIP
Application
Transport
Network
Physical/Data Link
Ethernet IP TCP UDP RTSP SIP SDP codecs RTP DNS(SRV) np160 Dennis Baron, January 15, 2008 Page 5 SIP Components
User Agents Clients Make requests Servers Accept requests
Server types Redirect Server Proxy Server Registrar Server Location Server
Gateways np160 Dennis Baron, January 15, 2008 Page 6 SIP Trapezoid DNS Server Location Server Terminating User Agent Outbound Proxy Originating User Agent DNS SIP SIP SIP SIP RTP Registrar Inbound Proxy SIP np160 Dennis Baron, January 15, 2008 Page 7 SIP Triangle ? DNS Server Location Server Terminating User Agent Originating User Agent DNS SIP SIP SIP RTP Registrar Inbound Proxy SIP np160 Dennis Baron, January 15, 2008 Page 8 Terminating User Agent Originating User Agent RTP SIP SIP B2BUA SIP Peer to Peer ! Back-to-Back User Agent Terminating User Agent Originating User Agent SIP RTP np160 Dennis Baron, January 15, 2008 Page 9 SIP Methods
INVITE Requests a session
ACK Final response to the INVITE
OPTIONS Ask for server capabilities
CANCEL Cancels a pending request
BYE Terminates a session
REGISTER Sends users address to server np160 Dennis Baron, January 15, 2008 Page 10 SIP Responses 1XX Provisional 100 Trying
2XX Successful 200 OK
3XX Redirection 302 Moved Temporarily
4XX Client Error 404 Not Found
5XX Server Error 504 Server Time-out
6XX Global Failure 603 Decline np160 Dennis Baron, January 15, 2008 Page 11 SIP Flows - Basic ACK 200 - OK INVITE: sip:18.10.0.79 Calls 18.18.2.4 180 - Ringing Rings 200 - OK Answers BYE Hangs up RTP Talking Talking User A User B np160 Dennis Baron, January 15, 2008 Page 12 SIP INVITE INVITE joeuser.mit.edu SIP/2.0 From: "Dennis Baron"<sip:dbaron@mit.edu>;tag=1c41 To: sip:joeuser.mit.edu Call-Id: call-1096504121-2@18.10.0.79 Cseq: 1 INVITE Contact: "Dennis Baron"<sip:dbaron@18.10.0.79> Content-Type: application/sdp Content-Length: 304 Accept-Language: en Allow: INVITE, ACK, CANCEL, BYE, REFER, OPTIONS, NOTIFY, REGISTER, SUBSCRIBE Supported: sip-cc, sip-cc-01, timer, replaces User-Agent: Pingtel/2.1.11 (WinNT) Date: Thu, 30 Sep 2004 00:28:42 GMT Via: SIP/2.0/UDP 18.10.0.79
np160 Dennis Baron, January 15, 2008 Page 13 Session Description Protocol IETF RFC 2327 SDP is intended for describing multimedia sessions for the purposes of session announcement, session invitation, and other forms of multimedia session initiation. SDP includes: The type of media (video, audio, etc.) The transport protocol (RTP/UDP/IP, H.320, etc.) The format of the media (H.264 video, MPEG video, etc.) Information to receive those media (addresses, ports, formats and so on) np160 Dennis Baron, January 15, 2008 Page 14 SDP
Video H.264 MPEG-4 H.263 np160 Dennis Baron, January 15, 2008 Page 16 SIP Flows - Registration 200 - OK REGISTER: sip:dbaron@MIT.EDU 401 - Unauthorized User B MIT.EDU Registrar REGISTER: (add credentials) MIT.EDU Location sip:dbaron@MIT.EDU Contact 18.10.0.79 np160 Dennis Baron, January 15, 2008 Page 17 SIP REGISTER REGISTER sip:mit.edu SIP/2.0 From: "Dennis Baron"<sip:dbaron@mit.edu>;tag=4561c4561 To: "Dennis Baron"<sip:dbaron@mit.edu>;tag=324591026 Call-Id: 9ce902bd23b070ae0108b225b94ac7fa Cseq: 5 REGISTER Contact: "Dennis Baron"<sip:dbaron@18.10.0.79;LINEID=05523f7a97b54dfa3f0c0e3746d73a24> Expires: 3600 Date: Thu, 30 Sep 2004 00:46:53 GMT Accept-Language: en Supported: sip-cc, sip-cc-01, timer, replaces User-Agent: Pingtel/2.1.11 (WinNT) Content-Length: 0 Via: SIP/2.0/UDP 18.10.0.79 np160 Dennis Baron, January 15, 2008 Page 18 SIP REGISTER 401 Response SIP/2.0 401 Unauthorized From: "Dennis Baron"<sip:dbaron@mit.edu>;tag=4561c4561 To: "Dennis Baron"<sip:dbaron@mit.edu>;tag=324591026 Call-Id: 9ce902bd23b070ae0108b225b94ac7fa Cseq: 5 REGISTER Via: SIP/2.0/UDP 18.10.0.79 Www-Authenticate: Digest realm="mit.edu", nonce="f83234924b8ae841b9b0ae8a92dcf0b71096505216", opaque="reg:change4" Date: Thu, 30 Sep 2004 00:46:56 GMT Allow: INVITE, ACK, CANCEL, BYE, REFER, OPTIONS, REGISTER, NOTIFY, SUBSCRIBE, INFO User-Agent: Pingtel/2.2.0 (Linux) Accept-Language: en Supported: sip-cc-01, timer Content-Length: 0 np160 Dennis Baron, January 15, 2008 Page 19 SIP REGISTER with Credentials REGISTER sip:mit.edu SIP/2.0 From: "Dennis Baron"<sip:dbaron@mit.edu>;tag=4561c4561 To: "Dennis Baron"<sip:dbaron@mit.edu>;tag=324591026 Call-Id: 9ce902bd23b070ae0108b225b94ac7fa Cseq: 6 REGISTER Contact: "Dennis Baron"<sip:dbaron@18.10.0.79;LINEID=05523f7a97b54dfa3f0c0e3746d73a24> Expires: 3600 Date: Thu, 30 Sep 2004 00:46:53 GMT Accept-Language: en Supported: sip-cc, sip-cc-01, timer, replaces User-Agent: Pingtel/2.1.11 (WinNT) Content-Length: 0 Authorization: DIGEST USERNAME=dbaron@mit.edu", REALM="mit.edu", NONCE="f83234924b8ae841b9b0ae8a92dcf0b71096505216", URI="sip:mit.edu", RESPONSE="ae064221a50668eaad1ff2741fa8df7d", OPAQUE="reg:change4" Via: SIP/2.0/UDP 18.10.0.79 np160 Dennis Baron, January 15, 2008 Page 20 SIP Flows Via Proxy INVITE: sip:dbaron@MIT.EDU Calls dbaron @MIT.EDU INVITE:sip:dbaron@18.10.0.79 100 - Trying 180 - Ringing Rings 180 - Ringing 200 - OK Answers 200 - OK ACK BYE Hangs up 200 - OK User A User B MIT.EDU Proxy Talking Talking RTP np160 Dennis Baron, January 15, 2008 Page 21 SIP Flows Via Gateway INVITE: sip:joeuser@MIT.EDU Calls joeuser @MIT.EDU INVITE: sip:38400@18.162.0.25 100 - Trying ACK ACK User A MIT.EDU Proxy 38400 Gateway 180 - Ringing 180 - Ringing Rings 200 - OK 200 - OK Answers BYE Hangs up BYE 200 - OK 200 - OK Talking Talking RTP np160 Dennis Baron, January 15, 2008 Page 22 SIP INVITE with Record-Route INVITE sip:37669@18.162.0.25 SIP/2.0 Record-Route: <sip:18.7.21.118:5080;lr;a;t=2c41;s=b07e28aa8f94660e8545313a44b9ed50> From: \"Dennis Baron\"<sip:6172531000@mit.edu>;tag=2c41 To: sip:37669@mit.edu Call-Id: call-1096505069-3@18.10.0.79 Cseq: 1 INVITE Contact: \"Dennis Baron\"<sip:6172531000@18.10.0.79> Content-Type: application/sdp Content-Length: 304 Accept-Language: en Allow: INVITE, ACK, CANCEL, BYE, REFER, OPTIONS, NOTIFY, REGISTER, SUBSCRIBE Supported: sip-cc, sip-cc-01, timer, replaces User-Agent: Pingtel/2.1.11 (WinNT) Date: Thu, 30 Sep 2004 00:44:30 GMT Via: SIP/2.0/UDP 18.7.21.118:5080;branch=z9hG4bK2cf12c563cec06fd1849ff799d069cc0 Via: SIP/2.0/UDP 18.7.21.118;branch=z9hG4bKd26e44dfdc2567170d9d32a143a7f4d8 Via: SIP/2.0/UDP 18.10.0.79 Max-Forwards: 17 np160 Dennis Baron, January 15, 2008 Page 23 SIP Standards Just a sampling of IETF standards work IETF RFCs http://ietf.org/rfc.html RFC3261 Core SIP specification obsoletes RFC2543 RFC2327 SDP Session Description Protocol RFC1889 RTP - Real-time Transport Protocol RFC2326 RTSP - Real-Time Streaming Protocol RFC3262 SIP PRACK method reliability for 1XX messages RFC3263 Locating SIP servers SRV and NAPTR RFC3264 Offer/answer model for SDP use with SIP np160 Dennis Baron, January 15, 2008 Page 24 SIP Standards (cont.) RFC3265 SIP event notification SUBSCRIBE and NOTIFY RFC3266 IPv6 support in SDP RFC3311 SIP UPDATE method eg. changing media RFC3325 Asserted identity in trusted networks RFC3361 Locating outbound SIP proxy with DHCP RFC3428 SIP extensions for Instant Messaging RFC3515 SIP REFER method eg. call transfer RFC4474 Authenticated Identity Management
SIMPLE IM/Presence - http://ietf.org/ids.by.wg/simple.html np160 Dennis Baron, January 15, 2008 Page 25 IS&T Services MITvoip Desktop VoIP telephones to replace traditional 5ESS telephones New voice mail system Web interface for user control Transition over 2 to 2.5 years
Personal SIP accounts Bring your own devices/software Limited support np160 Dennis Baron, January 15, 2008 Page 26 Hard phones
Soft phones Soft and Hard SIP Clients np160 Dennis Baron, January 15, 2008 Page 27 Asterisk Open source phone system Runs on Linux, Mac OS X, OpenBSD, FreeBSD and Solaris Supports SIP (and other VoIP protocols) Cisco SCCP, H.323, IAX Highly customizable Hardware telephone interfaces available MIT applications Shuttletrack IVR Media Lab Owl Project SIPB VoIP Scripts? np160 Dennis Baron, January 15, 2008 Page 28 IAP 2008 - VoIP Series SIP Fundimentals Dennis Baron Tue Jan 15, 01-02:30pm, 4-149
Personal SIP Account Workshop Dennis Baron Tue Jan 22, 01-02:30pm, 4-231
Build, Test, and Deploy VoIP Applications with Asterisk and other Open-Source Applications Elliot Eichen Tue Jan 29, 01-02:30pm, 4-231 np160 Dennis Baron, January 15, 2008 Page 29
Questions? np160 Dennis Baron, January 15, 2008 Page 30 Abstract Until the 1990s, if you wanted to make telephone hardware do your bidding you had to do it at the level of signal processing, EE, and physical-layer analog protocols. Now MIT and the rest of the world are switching to Voice-over-IP, based on RFC-documented protocols on the familiar IETF stack, and the opportunity is opening for software hackers to work their magic on the oldest extant medium in telecommunications. A SIPB project in the scripts tradition aiming to provide infrastructure for members of the MIT community to serve up their own innovations, is still in the early stages and welcoming new participants. This cluedump will give a technical grounding in the architecture of the protocols governing voice-over-IP and in their implementation at MIT. np160 Dennis Baron, January 15, 2008 Page 31 Outline Whats changed
What is SIP
MIT VoIP services
Questions and answers np160 Dennis Baron, January 15, 2008 Page 32 Whats Changed
We used to send data over phone calls remember modems?
A number defined who you were and where you were
The Phone Company defined the services and we used what they wanted to sell us
Intelligent networks dumb phones np160 Dennis Baron, January 15, 2008 Page 33 Why SIP Core protocol used for VoIP Except Skype! Used by Vonage, AT&T, and other VoIP service providers Free service providers eg. Free World Dialup Second Life MIT Open peering SIP.edu ISN np160 Dennis Baron, January 15, 2008 Page 34 Personal SIP Accounts in Detail Uses your MIT SIP communications identity One account per person Allows you to use your own hardware or software for placing and receiving Internet calls Assigns a traditional telephone number for receiving calls Web interface for customizing your account Experimental service aimed at early technology adopters Not intended as a replacement for other telephone services IS&T support limited to activating accounts and web page No support at this time for clients
np160 Dennis Baron, January 15, 2008 Page 35 Personal SIP Support Model Self service account activation https://voip.mit.edu/cgi-bin/personal/sipmgr/ IS&T Documentation http://mit.edu/ist/topics/telecommunications/psip/ SIP Users at MIT Wiki https://wikis.mit.edu/confluence/display/SIP/SIP+Users+at+MIT Your contributions to the wiki are supported and encouraged! SIP Users Forum https://scripts-cert.mit.edu/~sip/sip-users/ Not currently active may replace with newer technology
np160 Dennis Baron, January 15, 2008 Page 36 Whats Changed
Plenty of bandwidth broadband to the home Voice (and video) are just another data stream Everybody can be anywhere its the Internet Get a phone number from anywhere (optional) Anybody can provide services If you dont like what theyre selling build your own Anything can be an Internet phone Your laptop, your mobile phone, your