36
Dennis Baron, January 15, 2008 Page 1 np160 SIP Fundimentals IAP 2008 VoIP Series Dennis Baron January 15, 2008

Np160 Dennis Baron, January 15, 2008 Page 1 SIP Fundimentals IAP 2008 VoIP Series Dennis Baron January 15, 2008

Embed Size (px)

Citation preview

Dennis Baron, January 15, 2008Page 1np160

SIP FundimentalsIAP 2008 VoIP Series

Dennis Baron

January 15, 2008

Dennis Baron, January 15, 2008Page 2np160

Outline

• What is SIP

• SIP system components

• SIP messages and responses

• SIP call flows

• SDP basics/CODECs

• IS&T Services

• Questions and answers

Dennis Baron, January 15, 2008Page 3np160

What’s 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:[email protected] for email

– xmpp:[email protected] for instant messaging

– sip:[email protected] for voice and video

• Username replaced by numbers for telephone applications

Dennis Baron, January 15, 2008Page 4np160

Where’s SIP

Application

Transport

Network

Physical/Data Link Ethernet

IP

TCP UDP

RTSP SIP

SDP codecs

RTP DNS(SRV)

Dennis Baron, January 15, 2008Page 5np160

SIP Components

• User Agents

– Clients – Make requests

– Servers – Accept requests

• Server types

– Redirect Server

– Proxy Server

– Registrar Server

– Location Server

• Gateways

Dennis Baron, January 15, 2008Page 6np160

SIP Trapezoid

DNS Server

Location Server

Terminating User Agent

Outbound Proxy

Originating User Agent

DNS

SIP

SIP

SIP SIP

RTP

Registrar

Inbound Proxy

SIP

Dennis Baron, January 15, 2008Page 7np160

SIP Triangle ?

DNS Server

Location Server

Terminating User Agent

Originating User Agent

DNS

SIP

SIP SIP

RTP

Registrar

Inbound Proxy

SIP

Dennis Baron, January 15, 2008Page 8np160

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

Dennis Baron, January 15, 2008Page 9np160

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 user’s address to server

Dennis Baron, January 15, 2008Page 10np160

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

Dennis Baron, January 15, 2008Page 11np160

SIP Flows - Basic

ACK

200 - OK

INVITE: sip:18.10.0.79“Calls”

18.18.2.4

180 - Ringing Rings

200 - OK Answers

BYEHangs up

RTPTalking Talking

User A

User B

Dennis Baron, January 15, 2008Page 12np160

SIP INVITEINVITE joeuser.mit.edu SIP/2.0

From: "Dennis Baron"<sip:[email protected]>;tag=1c41

To: sip:joeuser.mit.edu

Call-Id: [email protected]

Cseq: 1 INVITE

Contact: "Dennis Baron"<sip:[email protected]>

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

Dennis Baron, January 15, 2008Page 13np160

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)

Dennis Baron, January 15, 2008Page 14np160

SDP

v=0

o=Pingtel 5 5 IN IP4 18.10.0.79

s=phone-call

c=IN IP4 18.10.0.79

t=0 0

m=audio 8766 RTP/AVP 96 97 0 8 18 98

a=rtpmap:96 eg711u/8000/1

a=rtpmap:97 eg711a/8000/1

a=rtpmap:0 pcmu/8000/1

a=rtpmap:8 pcma/8000/1

a=rtpmap:18 g729/8000/1

a=fmtp:18 annexb=no

a=rtpmap:98 telephone-event/8000/1

Dennis Baron, January 15, 2008Page 15np160

CODECs

• Audio– G.711

• 8kHz sampling rate

• 64kbps– G.729

• 8kHz sampling rate

• 8kbps

• Voice Activity Detection

• Video– H.264

• MPEG-4– H.263

Dennis Baron, January 15, 2008Page 16np160

SIP Flows - Registration

200 - OK

REGISTER: sip:[email protected]

401 - Unauthorized

User B MIT.EDUMIT.EDU

Registrar

REGISTER: (add credentials)

MIT.EDUMIT.EDU

Location

sip:[email protected]

Contact 18.10.0.79

Dennis Baron, January 15, 2008Page 17np160

SIP REGISTERREGISTER sip:mit.edu SIP/2.0

From: "Dennis Baron"<sip:[email protected]>;tag=4561c4561

To: "Dennis Baron"<sip:[email protected]>;tag=324591026

Call-Id: 9ce902bd23b070ae0108b225b94ac7fa

Cseq: 5 REGISTER

Contact: "Dennis Baron"<sip:[email protected];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

Dennis Baron, January 15, 2008Page 18np160

SIP REGISTER – 401 ResponseSIP/2.0 401 Unauthorized

From: "Dennis Baron"<sip:[email protected]>;tag=4561c4561

To: "Dennis Baron"<sip:[email protected]>;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

Dennis Baron, January 15, 2008Page 19np160

SIP REGISTER with CredentialsREGISTER sip:mit.edu SIP/2.0

From: "Dennis Baron"<sip:[email protected]>;tag=4561c4561

To: "Dennis Baron"<sip:[email protected]>;tag=324591026

Call-Id: 9ce902bd23b070ae0108b225b94ac7fa

Cseq: 6 REGISTER

Contact: "Dennis Baron"<sip:[email protected];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=“[email protected]", REALM="mit.edu", NONCE="f83234924b8ae841b9b0ae8a92dcf0b71096505216", URI="sip:mit.edu", RESPONSE="ae064221a50668eaad1ff2741fa8df7d", OPAQUE="reg:change4"

Via: SIP/2.0/UDP 18.10.0.79

Dennis Baron, January 15, 2008Page 20np160

SIP Flows – Via Proxy

INVITE: sip:[email protected]“Calls” dbaron

@MIT.EDUINVITE:sip:[email protected]

100 - Trying

180 - Ringing

Rings180 - Ringing

200 - OK Answers

200 - OK

ACK

BYEHangs up

200 - OK

User A

User BMIT.EDUMIT.EDU

Proxy

Talking TalkingRTP

Dennis Baron, January 15, 2008Page 21np160

SIP Flows – Via Gateway

INVITE: sip:[email protected]“Calls” joeuser

@MIT.EDUINVITE: sip:[email protected]

100 - Trying

ACKACK

User A MIT.EDUMIT.EDU

Proxy

38400Gateway

180 - Ringing

180 - Ringing

Rings

200 - OK

200 - OK

Answers

BYEHangs up

BYE

200 - OK

200 - OK

Talking TalkingRTP

Dennis Baron, January 15, 2008Page 22np160

SIP INVITE with Record-RouteINVITE sip:[email protected] SIP/2.0

Record-Route: <sip:18.7.21.118:5080;lr;a;t=2c41;s=b07e28aa8f94660e8545313a44b9ed50>

From: \"Dennis Baron\"<sip:[email protected]>;tag=2c41

To: sip:[email protected]

Call-Id: [email protected]

Cseq: 1 INVITE

Contact: \"Dennis Baron\"<sip:[email protected]>

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

Dennis Baron, January 15, 2008Page 23np160

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

Dennis Baron, January 15, 2008Page 24np160

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

Dennis Baron, January 15, 2008Page 25np160

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

Dennis Baron, January 15, 2008Page 26np160

• “Hard phones”

• “Soft phones”

Soft and Hard SIP Clients

Dennis Baron, January 15, 2008Page 27np160

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?

Dennis Baron, January 15, 2008Page 28np160

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

Dennis Baron, January 15, 2008Page 29np160

Questions?

Dennis Baron, January 15, 2008Page 30np160

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.

Dennis Baron, January 15, 2008Page 31np160

Outline

• What’s changed

• What is SIP

• MIT VoIP services

• Questions and answers

Dennis Baron, January 15, 2008Page 32np160

What’s 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

Dennis Baron, January 15, 2008Page 33np160

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

Dennis Baron, January 15, 2008Page 34np160

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

Dennis Baron, January 15, 2008Page 35np160

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

Dennis Baron, January 15, 2008Page 36np160

What’s Changed

• Plenty of bandwidth – broadband to the home

– Voice (and video) are just another data stream

• Everybody can be anywhere – it’s the Internet

– Get a phone number from anywhere (optional)

• Anybody can provide services

– If you don’t like what they’re selling build your own

• Anything can be an Internet phone

– Your laptop, your mobile phone, your …