Você está na página 1de 36

np160

Dennis Baron, January 15, 2008


Page 1
SIP Fundimentals
IAP 2008 VoIP Series

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

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
np160
Dennis Baron, January 15, 2008
Page 15
CODECs
Audio
G.711
8kHz sampling rate
64kbps
G.729
8kHz sampling rate
8kbps
Voice Activity Detection

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

Você também pode gostar