SlideShare uma empresa Scribd logo
1 de 59
Baixar para ler offline
SIPping from the
Open Source Well
Matthew Bynum
UC Architect
Agenda
● SIP History
● Why SIP matters (SIP and DNS)
● Inside the SIP spec
● Open Source (and one proprietary) SIP options
● What the future entails
● Q&A
SIP is a protocol for establishing
sessions in an IP network.
SIP History
Glory is fleeting, but obscurity is forever.
- Napoleon Bonaparte
Setting the Stage
The Internet Engineering Task Force first met in 1986.
“The mission of the IETF is to make the Internet work better by producing
high quality, relevant technical documents that influence the way
people design, use, and manage the Internet. “
- http://www.ietf.org/about/mission.html
http://tools.ietf.org/html/rfc5000
IETF Meetings
The First IETF Audiocast
occurred in 1992
Create 1
Descr.: DNS Discussion San Fran
Orig.: John Doe j.doe@com.com
Info: http://www.com.com
Start: 04.04.2001 / 09.30
End: 20.04.2001 / 16:30
Media: Audio GSM 224.1.6.7
/49000
Media: Video H.263 224.1.6.8
/49100
Disseminate 2
SAP/NNTP/HTTP
Invite
SMTP/SIP
Join 3
PC/Telephone
Media 4
PC/Telephone
Simple Conference
Invitation Protocol
Session Invitation
Protocol
CALL
CHANGE
CLOSE
by Henning Schulzrinneby Mark Handley and Eve Schooler
1xx
2xx
3xx
4xx
5xx
UDP/SDP TCP/SCIP
SUCCESS
UNSUCCESSFUL
BUSY
DECLINE
UNKNOWN
FAILED
FORBIDDEN
RINGING
RINGING
TRYING
REDIRECT
ALTERNATIVE
NEGOTIATE
Simple Conference
Invitation Protocol
Session Invitation
Protocol
SCIP/1.0 302 Callee has moved temporarily
Location: jones@salt.lab3.company.com
Location: jones@pepper.lab3.company.com
CALL hgs@lupus.fokus.gmd.de 1.0
User-Agent: coco/1.3
From: Christian Zahl <cz@cs.tu-berlin.de>
To: Henning Schulzrinne <schulzrinne@fokus.
gmd.de>
Call-Id: 9510021900.AA07734@lion.cs.tu-
berlin.de
Referer: ceres.fokus.gmd.de
Expires: Mon, 02 Oct 1995 18:44:11 GMT
Required: fc99cb08 audio/pcmu; port=3456;
transport=RTP;
rate=16000; channels=1; pt=97; net=224.2.0.1;
ttl=128,
audio/gsm; port=3456; transport=RTP;
rate=8000; channels=1,
audio/lpc; port=3456; transport=RTP;
rate=8000; channels=1
SIP/1.0 REQ
PA=128.16.65.19 16
AU=none
ID=128.16.65.19/32492374
FR=M.Handley@cs.ucl.ac.uk
TO=J.Crowcroft@cs.ucl.ac.uk
v=0
o=van 2353644765 2353687637 IN IP4
128.3.4.5
s=Mbone Audio
i=Discussion of Mbone Engineering Issues
e=van@ee.lbl.gov (Van Jacobsen
c=IN IP4 224.2.0.1/127
t=0 0
m=audio 3456 RTP PCMU
Papa SIP
“Personal Mobility for Multimedia Services in the Internet”
by Henning Schulzrinne, March 1996
http://www.cs.columbia.edu/~hgs/papers/Schu9603_Personal.pdf
http://www.cs.columbia.edu/~hgs/
Creator of RTP
The Internet Architect
http://www.cs.ucl.ac.uk/staff/M.Handley/
SIP (RFC 2543, RFC 3261); SDP (RFC 2327; SAP, RFC 2974); Protocol
Independent Multicast-Sparse Mode (PIM-SM, RFC 2362), TCP-Friendly Rate
Control (TFRC, RFC 3448), Multicast-Scope Zone Announcement Protocol
(MZAP, RFC 2776), Multicast Address Allocation (RFC 2908, RFC 2909), TCP
Congestion Window Validation ( RFC 2861), Reliable Multicast ( RFC 3451, RFC
3452, RFC 3453, RFC 3048), Datagram Congestion Control Protocol ( RFC 4340,
RFC 4336).
Mark Handley
Founder of XORP (www.xorp.org)
Creator of SDP
SIP Drafts http://www.cs.columbia.edu/sip/history.html
Date Draft Name
December 2, 1996 draft-ietf-mmusic-sip-01
March 27, 1997 draft-ietf-mmusic-sip-02
July 31, 1997 draft-ietf-mmusic-sip-03
November 11, 1997 draft-ietf-mmusic-sip-04
May 14, 1998 draft-ietf-mmusic-sip-05
June 17, 1998 draft-ietf-mmusic-sip-06
July 16, 1998 draft-ietf-mmusic-sip-07
August 7, 1998 draft-ietf-mmusic-sip-08
September 18, 1998 draft-ietf-mmusic-sip-09
September 28, 1998 Last call
November 12, 1998 draft-ietf-mmusic-sip-10
December 15, 1998 draft-ietf-mmusic-sip-11
January 16, 1999 draft-ietf-mmusic-sip-12
February 2, 1999 Approved
March 17, 1999 RFC 2543
SIP Today
RFC 3261 (SIP: Session Initiation Protocol)
RFC 3263 (Session Initiation Protocol (SIP): Locating SIP Servers)
RFC 3264 (An Offer/Answer Model with Session Description Protocol (SDP))
RFC 3265 (Session Initiation Protocol (SIP)-Specific Event Notification)
RFC 3325 (Private Extensions to SIP for Asserted Identity within Trusted Networks)
RFC 3327 (SIP Extension Header Field for Registering Non-Adjacent Contacts)
RFC 3581 (An Extension to SIP for Symmetric Response Routing)
RFC 3840 (Indicating User Agent Capabilities in SIP)
RFC 4320 (Actions Addressing Issues Identified with the Non-INVITE Transaction in SIP)
RFC 4474 (Enhancements for Authenticated Identity Management in SIP)
GRUU (Obtaining and Using Globally Routable User Agent Identifiers (GRUU) in SIP)
OUTBOUND (Managing Client Initiated Connections through SIP)
RFC 4566 (Session Description Protocol)
SDP-CAP (SDP Capability Negotiation)
ICE (Interactive Connectivity Establishment)
RFC 3605 (Real Time Control Protocol (RTCP) Attribute in the Session Description Protocol)
RFC 4916 (Connected Identity in the Session Initiation Protocol (SIP))
RFC 3311 (The SIP UPDATE Method)
SIPS-URI (The Use of the SIPS URI Scheme in the Session Initiation Protocol (SIP))
RFC 3665 (Session Initiation Protocol (SIP) Basic Call Flow Examples)
http://tools.ietf.org/html/rfc5411
Don’t
Panic!
A Hitchhiker's Guide to the Session Initiation Protocol
● Q.931 (TDM)
● H.323 (IP)
Alternative protocols…
Why SIP is kind of a big deal
It’s all about the decentralization
Internet
linuxcon.com
20.20.20.20
SIP Proxy
DNS
SIP
DNS
atlanta.com
SIP Proxy
Media
bob@linuxcon.com
alice@atlanta.com
2.
Where is the SIP server
for linuxcon.com?
20.20.20.20 and port
5061
1.
Alice places call to
bob@linuxcon.com.
3.
INVITE is sent to
20.20.20.20 addressed
to bob@linuxcon.com
4.
INVITE is forwarded to
the user bob, who
answers, and the media
is established between
Alice and Bob.
SIP and DNS (RFC 3263)
● Use DNS SRV records for determining what
servers provide SIP services for a domain (internal
and external)
sipserver A 10.0.0.1
; SRV’s
_sips._tcp IN SRV 50 1 5061 sipserver.yourdomain.com.
_sip._tcp IN SRV 90 1 5060 sipserver.yourdomain.com.
_sip._udp IN SRV 100 1 5060 sipserver.yourdomain.com.
; NAPTR
IN NAPTR 50 50 "s" "SIPS+D2T" "" _sips._tcp.yourdomain.com.
IN NAPTR 90 50 "s" "SIP+D2T" "" _sip._tcp.yourdomain.com.
IN NAPTR 100 50 "s" "SIP+D2U" "" _sip._udp.yourdomain.com.
SIP and DNS (cont.)
● Use ENUM records for determining what URI
a full E.164 number should map to
● Politics suck. Screenshot from the ITU
website:
; NAPTR for calling +12561234567
$ORIGIN 7.6.5.4.3.2.1.6.5.2.1.e164.arpa.
IN NAPTR 100 10 “u" "E2U+sip" “!^.*$!sip:bob@linuxcon.com!” .
Inside SIP
User Agents
Client Server
TCP or UDP port 5060
TLS on port 5061
SIP Methods
METHOD DESCRIPTION
INVITE Session setup
ACK Acknowledgement of final response to INVITE
BYE Session termination
CANCEL Pending session cancellation
REGISTER Registration of a user’s URI
OPTIONS Query of options and capabilities
INFO Mid-call signaling transport
PRACK Provisional response acknowledgement
UPDATE Update session information
REFER Transfer user to a URI
SUBSCRIBE Request notification of an event
NOTIFY Transport of subscribed event notification
MESSAGE Transport of an instant message body
PUBLISH Upload presence state to a server
SIP Responses
Status Message
100 Trying
180 Ringing
183 Session Progress
200 OK
300 Multiple Choices
302 Moved Temporarily
305 Use Proxy
400 Bad Request
401 Unauthorized
402 Payment Required
403 Forbidden
404 Not Found
500 Internal Server Error
501 Not Implemented
502 Bad Gateway
CLASS DESCRIPTION
1xx Provisional or
Informational
2xx Success
3xx Redirection
4xx Client Error
5xx Server Error
6xx Global Failure
SIP Roles
Element Function
Proxy Responsible for routing
Registrar Accepts REGISTER request from
endpoints
Redirect Generates 3xx responses
Back to Back
User Agent
(B2BUA)
Terminates SIP dialogs from UAC and
creates new dialog to end destination
Session Border
Controller (SBC)
Demarcation between disparate networks
Media Gateway Media translation
SIP Element Examples
SIP Service Provider
SBC
Proxy
Registrar/B2BUA
Media Gateway
SIP
TDM
Redirect
Clunky Old PBX
Basic Call Flow
INVITE
Phone BPhone A
180 Ringing
200 OK
ACK
Media
BYE
200 OK
Call Flow with Proxy
INVITE
Proxy (Server/Client)Phone (Client) Phone (Server)
INVITE
100 Trying
180 Ringing
180 Ringing
200 OK
200 OK
ACK
Media
BYE
200 OK
Example SIP INVITE
INVITE sip:bob@linuxcon.com SIP/2.0
Via: SIP/2.0/UDP pc33.atlanta.com;branch=z9hG4bK776asdhds
Max-Forwards: 70
To: Bob <sip:bob@linuxcon.com>
From: Alice <sip:alice@atlanta.com>;tag=1928301774
Call-ID: a84b4c76e66710@pc33.atlanta.com
CSeq: 314159 INVITE
Contact: <sip:alice@pc33.atlanta.com>
Content-Type: application/sdp
Content-Length: 142
v=0
o=alice 2890844526 2890844526 IN IP4 linuxcon.com
s=SIP Call
c=IN IP4 216.81.194.139
t=0 0
m=audio 32894 RTP/AVP 0 101
a=rtpmap: 0 PCMU/8000
a=rtpmap: 101 iLBC/8000
Example SIP OK
SIP/2.0 200 OK
Via: SIP/2.0/UDP server10.linuxcon.com;
branch=z9hG4bKnashds8;received= 216.81.194.139
To: Alice <sip:alice@atlanta.com>;tag=1928301774
From: Bob <sip:bob@linuxcon.com>;tag=a6c85cf
Call-ID: a84b4c76e66710@pc33.atlanta.com
CSeq: 314159 INVITE
Contact: <sip:bob@192.0.2.4>
Content-Type: application/sdp Content-Length: 131
v=0
o=bob 7844 125 IN IP4 10.0.0.1
s=SIP Call
c=IN IP4 10.0.0.1
t=0 0
m=audio 43588 RTP/AVP 0
a=sendrecv
a=rtpmap: 0 PCMU/8000
Presence
● Real-time indicator of a
person’s willingness and
availability to communicate
● Blends communication
methods together, allows for
designating preferred contact
method
SIMPLE – Powering Presence in SIP
● Session Initiation Protocol
for Instant Messaging
and Presence Leveraging Extensions
● Uses the SIP methods of PUBLISH, SUBSCRIBE,
and NOTIFY, defined in RFC’s 3903, 3265, and
3856
● http://datatracker.ietf.org/wg/simple/
XMPP– Powering Presence via XML
● EXtensible Messaging and Presence Protocol
● Uses XML messages and a
Publisher/Subscriber model for messages,
defined in RFC’s 6120, 6121, and 6122
● http://datatracker.ietf.org/wg/XMPP/
Which one should I use?
● Externally facing? Both! Run a “dual-stack”
for maximum federation flexibility
● Current IETF draft to bring interoperability:
http://tools.ietf.org/html/draft-saintandre-sip-xmpp-core-04
Open Source (and one proprietary)
SIP and XMPP Server Options
Knowledge without practice is useless. Practice without
knowledge is dangerous.
- Confucius
Two main types of SIP solution
● Back-to-Back User Agent (B2BUA)
● owns each leg of call as a separate dialog
● Stateful
● inter-work SIP with other protocols, including TDM and
analog interfaces
● More like traditional telephony
● Doesn’t scale as well as a Proxy
● Proxy
● Relays messages between UACs and other SIP entities
● Stateless option
● SIP-only (with some exceptions)
● some trouble exists with the way endpoints implement
features (like transfers)
● Future-ish proof
Asterisk – B2BUA/Media Server
● B2BUA
● Provides ACD, Voicemail, and IVR
● Most popular VoIP project in the world
● Backed by Digium in Huntsville, AL
● Rooted in traditional telephony
● Struggles with NAT traversal
FreeSWITCH
● B2BUA
● Provides ACD, Voicemail, and IVR
● Used by other projects for its media
processing capabilities
● Geared for replacing a PBX
● Basis of Baracuda’s CudaTel product
sipXecs
● Composed of sipX (Proxy), FreeSWITCH
(media), OpenFire (IM & Presence)
● Backed by eZuce in Andover, MA; but run by
SIPfoundry
● Biggest user is Amazon with 5,000 users
● Marketed as an open source Unified
Communications solution
Kamailio
● Registrar, Redirect, Proxy
● Fork of “SIP Express Router”
● Frequently used to “front-end” other SIP
servers
● Does NOT handle media
OpenSIPS
● Registrar, Redirect, Proxy
● Fork of “SIP Express Router”
● Frequently used to “front-end” other SIP
servers
● Does NOT handle media
reSIProcate
● Proxy and Location (repro), STUN/TURN
(reTurn)
● Founded in 2002
● reSIProcate stacks used by commercial
products(through a “BSD-like” license) from
Cisco, Avaya, LifeSize, Plantronics, Motorola,
Ericsson, and more
STUN and TURN and ICE, oh my!
● NAT traversal for endpoints is…troublesome
● Kamailio or OpenSIPS with RTPproxy or
MediaProxy
● reSIProcate (repro + reTurn) (STUN and TURN
but no RFC ICE support)
Proprietary: Cisco UC Manager
● B2BUA for all types of SIP calls (trunk and
line)
● Cisco’s implementation is 100% standards
compatible SIP…except when it’s not.
● SIP extensions for “feature parity”
● Leads to two modes of SIP support for
phones, basic and advanced. Basic is no
bueno.
Openfire
● XMPP Server
● “Shiny”
● Backed by Jive Software
● Used by sipXecs for XMPP, has plugins galore
ejabberd
● XMPP Server
● Config heavy
● Efficient and scalable
Open Source SIP Client Options
Product Version Linux Win Mac Android iOS SIP XMPP NAT
Jitsi 2.2 X X X X X TURN
Blink 0.5.0 X X Pro X ICE
Empathy 3.8.4 X X X ICE
Linphone 3.6.0 X X X X (2.0) X (2.0) X ICE
cSipSimple 1.01 X X ICE
sipdroid 3.1 X X STUN
Future of Communications
How does this get me my flying car?
- Me, a child of the 80’s
SIP-based voice is spreading...
P2P SIP
● Decentralized SIP Services
● Uses overlay networks and
Distributed Hash Tables
● REsource LOcation And
Discovery (RELOAD)
● No RFCs, only drafts
C
A
B
http://datatracker.ietf.org/wg/p2psip/
WebRTC
● sipml5.org
● HTML5 Web-based SIP clients
● Enables future B2C, B2B, P2P, and any other
acronym you can think of
●
What do we do now?
More Information
gplus.to/mbynum
linkedin.com/in/mattbynum
slideshare.net/mbynum
www.voip-info.org
www.opentelecoms.org
Asterisk, FreeSWITCH, OpenSIPS books
This work is licensed under a Creative Commons
Attribution-ShareAlike 3.0 Unported License.
Q&A
Questions?
The End
“Due to technological advances, changes in consumer
preference, and market forces, the question is when, not if, POTS
service and the PSTN over which it is provided will become
obsolete.”
- AT&T response to FCC on PSTN Evolution, Dec 2009
Appendix
Additional Reference Slides
Offer/Answer Model
INVITE w/SDP (offer)
200 OK w/SDP (answer)
INVITE w/o SDP
200 OK w/SDP (offer)
ACK w/SDP (answer)ACK
Early Offer Delayed Offer
REFER (Transfer)
INVITE
Phone BPhone A Phone C
INVITE
200 OK
200 OK
ACK
ACK
Media Session
REFER (Refer-To: C)
202 Accepted
200 OK
Media Session
NOTIFY
200 OK
BYE
PRACK (Provisional Acknowledgement)
INVITE
100 Trying
183 Session Progress
200 OK
ACK
PRACK
200 OK (PRACK)
PRACK sip:8000@172.16.184.83:5060 SIP/2.0
Via: SIP/2.0/UDP 172.16.13.87:5060
;branch=z9hG4bKC384
From: <sip:9000@172.16.13.87>;tag=1EDC10-2436
To: <sip:8000@172.16.184.83>;tag=85E9C7C8-A4C
Date: Fri, 01 Mar 2002 00:33:42 GMT
Call-ID: D110EA36-2BE211D6-801CEF21-
DD62106B@172.16.13.87
CSeq: 102 PRACK
RAck: 3696 101 INVITE
Max-Forwards: 70
Content-Length: 0
OPTIONS Ping
OPTIONS sip:8000@172.16.184.83:5060 SIP/2.0
Via: SIP/2.0/UDP 172.16.13.87:5060;branch=z9hG4bKC384
From: <sip:9000@172.16.13.87>;tag=1EDC10-2436
To: <sip:8000@172.16.184.83>;tag=85E9C7C8-A4C
Call-ID: D110EA36-2BE211D6-801CEF21-DD62106B@172.
16.13.87
CSeq: 100 OPTIONS
Contact: <sip:9000@172.16.13.87>
Accept: application/sdp
Max-Forwards: 70
Content-Length: 0
OPTIONS
200 OK
SIMPLE Presence Example
IP PBX
PUBLISH
NOTIFY
SUBSCRIBE
SIMPLE Server
On Hook / Off Hook
XMPP Presence Example
IP PBX
Presence StanzaPresence Stanza
XMPP Server
On Hook / Off Hook
<presence xml:lang="en"> <show>on
hook</show>
</presence>

Mais conteúdo relacionado

Mais procurados

Lindheimer Philippe
Lindheimer PhilippeLindheimer Philippe
Lindheimer PhilippeCarl Ford
 
#MoreCrypto : Introduction to TLS
#MoreCrypto : Introduction to TLS#MoreCrypto : Introduction to TLS
#MoreCrypto : Introduction to TLSOlle E Johansson
 
Get Ready For Ipv6
Get Ready For Ipv6Get Ready For Ipv6
Get Ready For Ipv6Rishu Mehra
 
Sinnreich Henry Johnston Alan Pt 3
Sinnreich Henry Johnston Alan   Pt 3Sinnreich Henry Johnston Alan   Pt 3
Sinnreich Henry Johnston Alan Pt 3Carl Ford
 
02 asterisk - the future of telecommunications
02   asterisk - the future of telecommunications02   asterisk - the future of telecommunications
02 asterisk - the future of telecommunicationsTran Thanh
 
Building a new ecosystem for interoperable communications
Building a new ecosystem for interoperable communicationsBuilding a new ecosystem for interoperable communications
Building a new ecosystem for interoperable communicationsPaloSanto Solutions
 
VoIP security: Implementation and Protocol Problems
VoIP security: Implementation and Protocol ProblemsVoIP security: Implementation and Protocol Problems
VoIP security: Implementation and Protocol Problemsseanhn
 
Visual Security Event Analysis - DefCon 13 - 2005
Visual Security Event Analysis - DefCon 13 - 2005Visual Security Event Analysis - DefCon 13 - 2005
Visual Security Event Analysis - DefCon 13 - 2005Raffael Marty
 
Introduction to SIP(Session Initiation Protocol)
Introduction to SIP(Session Initiation Protocol)Introduction to SIP(Session Initiation Protocol)
Introduction to SIP(Session Initiation Protocol)William Lee
 

Mais procurados (20)

Lindheimer Philippe
Lindheimer PhilippeLindheimer Philippe
Lindheimer Philippe
 
SIP security in IP telephony
SIP security in IP telephonySIP security in IP telephony
SIP security in IP telephony
 
#MoreCrypto : Introduction to TLS
#MoreCrypto : Introduction to TLS#MoreCrypto : Introduction to TLS
#MoreCrypto : Introduction to TLS
 
Get Ready For Ipv6
Get Ready For Ipv6Get Ready For Ipv6
Get Ready For Ipv6
 
Meletis Belsis - Voip security
Meletis Belsis - Voip securityMeletis Belsis - Voip security
Meletis Belsis - Voip security
 
Sip crash course
Sip crash courseSip crash course
Sip crash course
 
Indroduction to SIP
Indroduction to SIPIndroduction to SIP
Indroduction to SIP
 
Sinnreich Henry Johnston Alan Pt 3
Sinnreich Henry Johnston Alan   Pt 3Sinnreich Henry Johnston Alan   Pt 3
Sinnreich Henry Johnston Alan Pt 3
 
02 asterisk - the future of telecommunications
02   asterisk - the future of telecommunications02   asterisk - the future of telecommunications
02 asterisk - the future of telecommunications
 
Building a new ecosystem for interoperable communications
Building a new ecosystem for interoperable communicationsBuilding a new ecosystem for interoperable communications
Building a new ecosystem for interoperable communications
 
Introduction to VoIP Security
Introduction to VoIP SecurityIntroduction to VoIP Security
Introduction to VoIP Security
 
Sip 416 (sip proxy server) intro
Sip 416 (sip proxy server) introSip 416 (sip proxy server) intro
Sip 416 (sip proxy server) intro
 
Sip 416 (sip proxy server) intro
Sip 416 (sip proxy server) introSip 416 (sip proxy server) intro
Sip 416 (sip proxy server) intro
 
VoIP security: Implementation and Protocol Problems
VoIP security: Implementation and Protocol ProblemsVoIP security: Implementation and Protocol Problems
VoIP security: Implementation and Protocol Problems
 
No More Fraud, Astricon, Las Vegas 2014
No More Fraud, Astricon, Las Vegas 2014No More Fraud, Astricon, Las Vegas 2014
No More Fraud, Astricon, Las Vegas 2014
 
Number one-issue-voip-today-fraud
Number one-issue-voip-today-fraudNumber one-issue-voip-today-fraud
Number one-issue-voip-today-fraud
 
VoIP – vulnerabilities and attacks
VoIP – vulnerabilities and attacksVoIP – vulnerabilities and attacks
VoIP – vulnerabilities and attacks
 
Visual Security Event Analysis - DefCon 13 - 2005
Visual Security Event Analysis - DefCon 13 - 2005Visual Security Event Analysis - DefCon 13 - 2005
Visual Security Event Analysis - DefCon 13 - 2005
 
Introduction to SIP(Session Initiation Protocol)
Introduction to SIP(Session Initiation Protocol)Introduction to SIP(Session Initiation Protocol)
Introduction to SIP(Session Initiation Protocol)
 
Sip
SipSip
Sip
 

Destaque

Demystifying Software Defined Networking (SDN)
Demystifying Software Defined Networking (SDN)Demystifying Software Defined Networking (SDN)
Demystifying Software Defined Networking (SDN)Matt Bynum
 
Feb 2009 Certification
Feb 2009 CertificationFeb 2009 Certification
Feb 2009 CertificationMatt Bynum
 
Python (Jinja2) Templates for Network Automation
Python (Jinja2) Templates for Network AutomationPython (Jinja2) Templates for Network Automation
Python (Jinja2) Templates for Network AutomationRick Sherman
 
Python for the Network Nerd
Python for the Network NerdPython for the Network Nerd
Python for the Network NerdMatt Bynum
 
A Network Engineer's Approach to Automation
A Network Engineer's Approach to AutomationA Network Engineer's Approach to Automation
A Network Engineer's Approach to AutomationJeremy Schulman
 
NCUG - Current State Of Cisco UC
NCUG - Current State Of Cisco UCNCUG - Current State Of Cisco UC
NCUG - Current State Of Cisco UCMatt Bynum
 

Destaque (7)

Demystifying Software Defined Networking (SDN)
Demystifying Software Defined Networking (SDN)Demystifying Software Defined Networking (SDN)
Demystifying Software Defined Networking (SDN)
 
Feb 2009 Certification
Feb 2009 CertificationFeb 2009 Certification
Feb 2009 Certification
 
Python (Jinja2) Templates for Network Automation
Python (Jinja2) Templates for Network AutomationPython (Jinja2) Templates for Network Automation
Python (Jinja2) Templates for Network Automation
 
Python for the Network Nerd
Python for the Network NerdPython for the Network Nerd
Python for the Network Nerd
 
A Network Engineer's Approach to Automation
A Network Engineer's Approach to AutomationA Network Engineer's Approach to Automation
A Network Engineer's Approach to Automation
 
BGP Overview
BGP OverviewBGP Overview
BGP Overview
 
NCUG - Current State Of Cisco UC
NCUG - Current State Of Cisco UCNCUG - Current State Of Cisco UC
NCUG - Current State Of Cisco UC
 

Semelhante a LinuxCon North America: SIPPing from the Open Source Well

Session Initiation Protocol
Session Initiation ProtocolSession Initiation Protocol
Session Initiation ProtocolMatt Bynum
 
Tlc 004 - take a sip of sip
Tlc 004 - take a sip of sipTlc 004 - take a sip of sip
Tlc 004 - take a sip of sipAnna Volynkina
 
AN OVERVIEW OF VOICE OVER INTERNET PROTOCOL (VOIP
AN OVERVIEW OF VOICE OVER INTERNET PROTOCOL (VOIPAN OVERVIEW OF VOICE OVER INTERNET PROTOCOL (VOIP
AN OVERVIEW OF VOICE OVER INTERNET PROTOCOL (VOIPSean Flores
 
Sinnreich Henry Johnston Alan Pt 2
Sinnreich Henry Johnston Alan   Pt 2Sinnreich Henry Johnston Alan   Pt 2
Sinnreich Henry Johnston Alan Pt 2Carl Ford
 
Voice over IP: Issues and Protocols
Voice over IP: Issues and ProtocolsVoice over IP: Issues and Protocols
Voice over IP: Issues and ProtocolsVideoguy
 
BlackHat Hacking - Hacking VoIP.
BlackHat Hacking - Hacking VoIP.BlackHat Hacking - Hacking VoIP.
BlackHat Hacking - Hacking VoIP.Sumutiu Marius
 
Sip Detailed , Call flows , Architecture descriptions , SIP services , sip se...
Sip Detailed , Call flows , Architecture descriptions , SIP services , sip se...Sip Detailed , Call flows , Architecture descriptions , SIP services , sip se...
Sip Detailed , Call flows , Architecture descriptions , SIP services , sip se...ALTANAI BISHT
 
NetFlow Monitoring for Cyber Threat Defense
NetFlow Monitoring for Cyber Threat DefenseNetFlow Monitoring for Cyber Threat Defense
NetFlow Monitoring for Cyber Threat DefenseCisco Canada
 
Apple Facetime Protocol
Apple Facetime ProtocolApple Facetime Protocol
Apple Facetime Protocolkshitijmehta23
 
Kamailio :: A Quick Introduction
Kamailio :: A Quick IntroductionKamailio :: A Quick Introduction
Kamailio :: A Quick IntroductionOlle E Johansson
 
Uip Sip Implementation Best Practices060409
Uip Sip Implementation Best Practices060409Uip Sip Implementation Best Practices060409
Uip Sip Implementation Best Practices060409Abdel-Fattah M. Hmoud
 
WebRTC overview
WebRTC overviewWebRTC overview
WebRTC overviewRouyun Pan
 

Semelhante a LinuxCon North America: SIPPing from the Open Source Well (20)

Session Initiation Protocol
Session Initiation ProtocolSession Initiation Protocol
Session Initiation Protocol
 
Sip summary
Sip summarySip summary
Sip summary
 
Take a sip of sip
Take a sip of sipTake a sip of sip
Take a sip of sip
 
Tlc 004 - take a sip of sip
Tlc 004 - take a sip of sipTlc 004 - take a sip of sip
Tlc 004 - take a sip of sip
 
AN OVERVIEW OF VOICE OVER INTERNET PROTOCOL (VOIP
AN OVERVIEW OF VOICE OVER INTERNET PROTOCOL (VOIPAN OVERVIEW OF VOICE OVER INTERNET PROTOCOL (VOIP
AN OVERVIEW OF VOICE OVER INTERNET PROTOCOL (VOIP
 
SIP Tutorial/Workshop 1
SIP Tutorial/Workshop 1SIP Tutorial/Workshop 1
SIP Tutorial/Workshop 1
 
Sinnreich Henry Johnston Alan Pt 2
Sinnreich Henry Johnston Alan   Pt 2Sinnreich Henry Johnston Alan   Pt 2
Sinnreich Henry Johnston Alan Pt 2
 
Voice over IP: Issues and Protocols
Voice over IP: Issues and ProtocolsVoice over IP: Issues and Protocols
Voice over IP: Issues and Protocols
 
BlackHat Hacking - Hacking VoIP.
BlackHat Hacking - Hacking VoIP.BlackHat Hacking - Hacking VoIP.
BlackHat Hacking - Hacking VoIP.
 
Sip Detailed , Call flows , Architecture descriptions , SIP services , sip se...
Sip Detailed , Call flows , Architecture descriptions , SIP services , sip se...Sip Detailed , Call flows , Architecture descriptions , SIP services , sip se...
Sip Detailed , Call flows , Architecture descriptions , SIP services , sip se...
 
NetFlow Monitoring for Cyber Threat Defense
NetFlow Monitoring for Cyber Threat DefenseNetFlow Monitoring for Cyber Threat Defense
NetFlow Monitoring for Cyber Threat Defense
 
Apple Facetime Protocol
Apple Facetime ProtocolApple Facetime Protocol
Apple Facetime Protocol
 
SBC: Do I really need it?
SBC: Do I really need it?SBC: Do I really need it?
SBC: Do I really need it?
 
Introduction To SIP
Introduction  To  SIPIntroduction  To  SIP
Introduction To SIP
 
Vo ip sip
Vo ip sipVo ip sip
Vo ip sip
 
Voip internet
Voip internet Voip internet
Voip internet
 
Kamailio :: A Quick Introduction
Kamailio :: A Quick IntroductionKamailio :: A Quick Introduction
Kamailio :: A Quick Introduction
 
1304
13041304
1304
 
Uip Sip Implementation Best Practices060409
Uip Sip Implementation Best Practices060409Uip Sip Implementation Best Practices060409
Uip Sip Implementation Best Practices060409
 
WebRTC overview
WebRTC overviewWebRTC overview
WebRTC overview
 

Último

Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsJoaquim Jorge
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?Antenna Manufacturer Coco
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 

Último (20)

Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 

LinuxCon North America: SIPPing from the Open Source Well

  • 1. SIPping from the Open Source Well Matthew Bynum UC Architect
  • 2. Agenda ● SIP History ● Why SIP matters (SIP and DNS) ● Inside the SIP spec ● Open Source (and one proprietary) SIP options ● What the future entails ● Q&A
  • 3. SIP is a protocol for establishing sessions in an IP network.
  • 4. SIP History Glory is fleeting, but obscurity is forever. - Napoleon Bonaparte
  • 5. Setting the Stage The Internet Engineering Task Force first met in 1986. “The mission of the IETF is to make the Internet work better by producing high quality, relevant technical documents that influence the way people design, use, and manage the Internet. “ - http://www.ietf.org/about/mission.html http://tools.ietf.org/html/rfc5000
  • 6. IETF Meetings The First IETF Audiocast occurred in 1992 Create 1 Descr.: DNS Discussion San Fran Orig.: John Doe j.doe@com.com Info: http://www.com.com Start: 04.04.2001 / 09.30 End: 20.04.2001 / 16:30 Media: Audio GSM 224.1.6.7 /49000 Media: Video H.263 224.1.6.8 /49100 Disseminate 2 SAP/NNTP/HTTP Invite SMTP/SIP Join 3 PC/Telephone Media 4 PC/Telephone
  • 7. Simple Conference Invitation Protocol Session Invitation Protocol CALL CHANGE CLOSE by Henning Schulzrinneby Mark Handley and Eve Schooler 1xx 2xx 3xx 4xx 5xx UDP/SDP TCP/SCIP SUCCESS UNSUCCESSFUL BUSY DECLINE UNKNOWN FAILED FORBIDDEN RINGING RINGING TRYING REDIRECT ALTERNATIVE NEGOTIATE
  • 8. Simple Conference Invitation Protocol Session Invitation Protocol SCIP/1.0 302 Callee has moved temporarily Location: jones@salt.lab3.company.com Location: jones@pepper.lab3.company.com CALL hgs@lupus.fokus.gmd.de 1.0 User-Agent: coco/1.3 From: Christian Zahl <cz@cs.tu-berlin.de> To: Henning Schulzrinne <schulzrinne@fokus. gmd.de> Call-Id: 9510021900.AA07734@lion.cs.tu- berlin.de Referer: ceres.fokus.gmd.de Expires: Mon, 02 Oct 1995 18:44:11 GMT Required: fc99cb08 audio/pcmu; port=3456; transport=RTP; rate=16000; channels=1; pt=97; net=224.2.0.1; ttl=128, audio/gsm; port=3456; transport=RTP; rate=8000; channels=1, audio/lpc; port=3456; transport=RTP; rate=8000; channels=1 SIP/1.0 REQ PA=128.16.65.19 16 AU=none ID=128.16.65.19/32492374 FR=M.Handley@cs.ucl.ac.uk TO=J.Crowcroft@cs.ucl.ac.uk v=0 o=van 2353644765 2353687637 IN IP4 128.3.4.5 s=Mbone Audio i=Discussion of Mbone Engineering Issues e=van@ee.lbl.gov (Van Jacobsen c=IN IP4 224.2.0.1/127 t=0 0 m=audio 3456 RTP PCMU
  • 9. Papa SIP “Personal Mobility for Multimedia Services in the Internet” by Henning Schulzrinne, March 1996 http://www.cs.columbia.edu/~hgs/papers/Schu9603_Personal.pdf http://www.cs.columbia.edu/~hgs/ Creator of RTP
  • 10. The Internet Architect http://www.cs.ucl.ac.uk/staff/M.Handley/ SIP (RFC 2543, RFC 3261); SDP (RFC 2327; SAP, RFC 2974); Protocol Independent Multicast-Sparse Mode (PIM-SM, RFC 2362), TCP-Friendly Rate Control (TFRC, RFC 3448), Multicast-Scope Zone Announcement Protocol (MZAP, RFC 2776), Multicast Address Allocation (RFC 2908, RFC 2909), TCP Congestion Window Validation ( RFC 2861), Reliable Multicast ( RFC 3451, RFC 3452, RFC 3453, RFC 3048), Datagram Congestion Control Protocol ( RFC 4340, RFC 4336). Mark Handley Founder of XORP (www.xorp.org) Creator of SDP
  • 11. SIP Drafts http://www.cs.columbia.edu/sip/history.html Date Draft Name December 2, 1996 draft-ietf-mmusic-sip-01 March 27, 1997 draft-ietf-mmusic-sip-02 July 31, 1997 draft-ietf-mmusic-sip-03 November 11, 1997 draft-ietf-mmusic-sip-04 May 14, 1998 draft-ietf-mmusic-sip-05 June 17, 1998 draft-ietf-mmusic-sip-06 July 16, 1998 draft-ietf-mmusic-sip-07 August 7, 1998 draft-ietf-mmusic-sip-08 September 18, 1998 draft-ietf-mmusic-sip-09 September 28, 1998 Last call November 12, 1998 draft-ietf-mmusic-sip-10 December 15, 1998 draft-ietf-mmusic-sip-11 January 16, 1999 draft-ietf-mmusic-sip-12 February 2, 1999 Approved March 17, 1999 RFC 2543
  • 12. SIP Today RFC 3261 (SIP: Session Initiation Protocol) RFC 3263 (Session Initiation Protocol (SIP): Locating SIP Servers) RFC 3264 (An Offer/Answer Model with Session Description Protocol (SDP)) RFC 3265 (Session Initiation Protocol (SIP)-Specific Event Notification) RFC 3325 (Private Extensions to SIP for Asserted Identity within Trusted Networks) RFC 3327 (SIP Extension Header Field for Registering Non-Adjacent Contacts) RFC 3581 (An Extension to SIP for Symmetric Response Routing) RFC 3840 (Indicating User Agent Capabilities in SIP) RFC 4320 (Actions Addressing Issues Identified with the Non-INVITE Transaction in SIP) RFC 4474 (Enhancements for Authenticated Identity Management in SIP) GRUU (Obtaining and Using Globally Routable User Agent Identifiers (GRUU) in SIP) OUTBOUND (Managing Client Initiated Connections through SIP) RFC 4566 (Session Description Protocol) SDP-CAP (SDP Capability Negotiation) ICE (Interactive Connectivity Establishment) RFC 3605 (Real Time Control Protocol (RTCP) Attribute in the Session Description Protocol) RFC 4916 (Connected Identity in the Session Initiation Protocol (SIP)) RFC 3311 (The SIP UPDATE Method) SIPS-URI (The Use of the SIPS URI Scheme in the Session Initiation Protocol (SIP)) RFC 3665 (Session Initiation Protocol (SIP) Basic Call Flow Examples) http://tools.ietf.org/html/rfc5411 Don’t Panic! A Hitchhiker's Guide to the Session Initiation Protocol
  • 13. ● Q.931 (TDM) ● H.323 (IP) Alternative protocols…
  • 14. Why SIP is kind of a big deal
  • 15. It’s all about the decentralization Internet linuxcon.com 20.20.20.20 SIP Proxy DNS SIP DNS atlanta.com SIP Proxy Media bob@linuxcon.com alice@atlanta.com 2. Where is the SIP server for linuxcon.com? 20.20.20.20 and port 5061 1. Alice places call to bob@linuxcon.com. 3. INVITE is sent to 20.20.20.20 addressed to bob@linuxcon.com 4. INVITE is forwarded to the user bob, who answers, and the media is established between Alice and Bob.
  • 16. SIP and DNS (RFC 3263) ● Use DNS SRV records for determining what servers provide SIP services for a domain (internal and external) sipserver A 10.0.0.1 ; SRV’s _sips._tcp IN SRV 50 1 5061 sipserver.yourdomain.com. _sip._tcp IN SRV 90 1 5060 sipserver.yourdomain.com. _sip._udp IN SRV 100 1 5060 sipserver.yourdomain.com. ; NAPTR IN NAPTR 50 50 "s" "SIPS+D2T" "" _sips._tcp.yourdomain.com. IN NAPTR 90 50 "s" "SIP+D2T" "" _sip._tcp.yourdomain.com. IN NAPTR 100 50 "s" "SIP+D2U" "" _sip._udp.yourdomain.com.
  • 17. SIP and DNS (cont.) ● Use ENUM records for determining what URI a full E.164 number should map to ● Politics suck. Screenshot from the ITU website: ; NAPTR for calling +12561234567 $ORIGIN 7.6.5.4.3.2.1.6.5.2.1.e164.arpa. IN NAPTR 100 10 “u" "E2U+sip" “!^.*$!sip:bob@linuxcon.com!” .
  • 19. User Agents Client Server TCP or UDP port 5060 TLS on port 5061
  • 20. SIP Methods METHOD DESCRIPTION INVITE Session setup ACK Acknowledgement of final response to INVITE BYE Session termination CANCEL Pending session cancellation REGISTER Registration of a user’s URI OPTIONS Query of options and capabilities INFO Mid-call signaling transport PRACK Provisional response acknowledgement UPDATE Update session information REFER Transfer user to a URI SUBSCRIBE Request notification of an event NOTIFY Transport of subscribed event notification MESSAGE Transport of an instant message body PUBLISH Upload presence state to a server
  • 21. SIP Responses Status Message 100 Trying 180 Ringing 183 Session Progress 200 OK 300 Multiple Choices 302 Moved Temporarily 305 Use Proxy 400 Bad Request 401 Unauthorized 402 Payment Required 403 Forbidden 404 Not Found 500 Internal Server Error 501 Not Implemented 502 Bad Gateway CLASS DESCRIPTION 1xx Provisional or Informational 2xx Success 3xx Redirection 4xx Client Error 5xx Server Error 6xx Global Failure
  • 22. SIP Roles Element Function Proxy Responsible for routing Registrar Accepts REGISTER request from endpoints Redirect Generates 3xx responses Back to Back User Agent (B2BUA) Terminates SIP dialogs from UAC and creates new dialog to end destination Session Border Controller (SBC) Demarcation between disparate networks Media Gateway Media translation
  • 23. SIP Element Examples SIP Service Provider SBC Proxy Registrar/B2BUA Media Gateway SIP TDM Redirect Clunky Old PBX
  • 24. Basic Call Flow INVITE Phone BPhone A 180 Ringing 200 OK ACK Media BYE 200 OK
  • 25. Call Flow with Proxy INVITE Proxy (Server/Client)Phone (Client) Phone (Server) INVITE 100 Trying 180 Ringing 180 Ringing 200 OK 200 OK ACK Media BYE 200 OK
  • 26. Example SIP INVITE INVITE sip:bob@linuxcon.com SIP/2.0 Via: SIP/2.0/UDP pc33.atlanta.com;branch=z9hG4bK776asdhds Max-Forwards: 70 To: Bob <sip:bob@linuxcon.com> From: Alice <sip:alice@atlanta.com>;tag=1928301774 Call-ID: a84b4c76e66710@pc33.atlanta.com CSeq: 314159 INVITE Contact: <sip:alice@pc33.atlanta.com> Content-Type: application/sdp Content-Length: 142 v=0 o=alice 2890844526 2890844526 IN IP4 linuxcon.com s=SIP Call c=IN IP4 216.81.194.139 t=0 0 m=audio 32894 RTP/AVP 0 101 a=rtpmap: 0 PCMU/8000 a=rtpmap: 101 iLBC/8000
  • 27. Example SIP OK SIP/2.0 200 OK Via: SIP/2.0/UDP server10.linuxcon.com; branch=z9hG4bKnashds8;received= 216.81.194.139 To: Alice <sip:alice@atlanta.com>;tag=1928301774 From: Bob <sip:bob@linuxcon.com>;tag=a6c85cf Call-ID: a84b4c76e66710@pc33.atlanta.com CSeq: 314159 INVITE Contact: <sip:bob@192.0.2.4> Content-Type: application/sdp Content-Length: 131 v=0 o=bob 7844 125 IN IP4 10.0.0.1 s=SIP Call c=IN IP4 10.0.0.1 t=0 0 m=audio 43588 RTP/AVP 0 a=sendrecv a=rtpmap: 0 PCMU/8000
  • 28. Presence ● Real-time indicator of a person’s willingness and availability to communicate ● Blends communication methods together, allows for designating preferred contact method
  • 29. SIMPLE – Powering Presence in SIP ● Session Initiation Protocol for Instant Messaging and Presence Leveraging Extensions ● Uses the SIP methods of PUBLISH, SUBSCRIBE, and NOTIFY, defined in RFC’s 3903, 3265, and 3856 ● http://datatracker.ietf.org/wg/simple/
  • 30. XMPP– Powering Presence via XML ● EXtensible Messaging and Presence Protocol ● Uses XML messages and a Publisher/Subscriber model for messages, defined in RFC’s 6120, 6121, and 6122 ● http://datatracker.ietf.org/wg/XMPP/
  • 31. Which one should I use? ● Externally facing? Both! Run a “dual-stack” for maximum federation flexibility ● Current IETF draft to bring interoperability: http://tools.ietf.org/html/draft-saintandre-sip-xmpp-core-04
  • 32. Open Source (and one proprietary) SIP and XMPP Server Options Knowledge without practice is useless. Practice without knowledge is dangerous. - Confucius
  • 33. Two main types of SIP solution ● Back-to-Back User Agent (B2BUA) ● owns each leg of call as a separate dialog ● Stateful ● inter-work SIP with other protocols, including TDM and analog interfaces ● More like traditional telephony ● Doesn’t scale as well as a Proxy ● Proxy ● Relays messages between UACs and other SIP entities ● Stateless option ● SIP-only (with some exceptions) ● some trouble exists with the way endpoints implement features (like transfers) ● Future-ish proof
  • 34. Asterisk – B2BUA/Media Server ● B2BUA ● Provides ACD, Voicemail, and IVR ● Most popular VoIP project in the world ● Backed by Digium in Huntsville, AL ● Rooted in traditional telephony ● Struggles with NAT traversal
  • 35. FreeSWITCH ● B2BUA ● Provides ACD, Voicemail, and IVR ● Used by other projects for its media processing capabilities ● Geared for replacing a PBX ● Basis of Baracuda’s CudaTel product
  • 36. sipXecs ● Composed of sipX (Proxy), FreeSWITCH (media), OpenFire (IM & Presence) ● Backed by eZuce in Andover, MA; but run by SIPfoundry ● Biggest user is Amazon with 5,000 users ● Marketed as an open source Unified Communications solution
  • 37. Kamailio ● Registrar, Redirect, Proxy ● Fork of “SIP Express Router” ● Frequently used to “front-end” other SIP servers ● Does NOT handle media
  • 38. OpenSIPS ● Registrar, Redirect, Proxy ● Fork of “SIP Express Router” ● Frequently used to “front-end” other SIP servers ● Does NOT handle media
  • 39. reSIProcate ● Proxy and Location (repro), STUN/TURN (reTurn) ● Founded in 2002 ● reSIProcate stacks used by commercial products(through a “BSD-like” license) from Cisco, Avaya, LifeSize, Plantronics, Motorola, Ericsson, and more
  • 40. STUN and TURN and ICE, oh my! ● NAT traversal for endpoints is…troublesome ● Kamailio or OpenSIPS with RTPproxy or MediaProxy ● reSIProcate (repro + reTurn) (STUN and TURN but no RFC ICE support)
  • 41. Proprietary: Cisco UC Manager ● B2BUA for all types of SIP calls (trunk and line) ● Cisco’s implementation is 100% standards compatible SIP…except when it’s not. ● SIP extensions for “feature parity” ● Leads to two modes of SIP support for phones, basic and advanced. Basic is no bueno.
  • 42. Openfire ● XMPP Server ● “Shiny” ● Backed by Jive Software ● Used by sipXecs for XMPP, has plugins galore
  • 43. ejabberd ● XMPP Server ● Config heavy ● Efficient and scalable
  • 44. Open Source SIP Client Options Product Version Linux Win Mac Android iOS SIP XMPP NAT Jitsi 2.2 X X X X X TURN Blink 0.5.0 X X Pro X ICE Empathy 3.8.4 X X X ICE Linphone 3.6.0 X X X X (2.0) X (2.0) X ICE cSipSimple 1.01 X X ICE sipdroid 3.1 X X STUN
  • 45. Future of Communications How does this get me my flying car? - Me, a child of the 80’s
  • 46. SIP-based voice is spreading...
  • 47. P2P SIP ● Decentralized SIP Services ● Uses overlay networks and Distributed Hash Tables ● REsource LOcation And Discovery (RELOAD) ● No RFCs, only drafts C A B http://datatracker.ietf.org/wg/p2psip/
  • 48. WebRTC ● sipml5.org ● HTML5 Web-based SIP clients ● Enables future B2C, B2B, P2P, and any other acronym you can think of ●
  • 49. What do we do now?
  • 50. More Information gplus.to/mbynum linkedin.com/in/mattbynum slideshare.net/mbynum www.voip-info.org www.opentelecoms.org Asterisk, FreeSWITCH, OpenSIPS books This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 Unported License.
  • 52. The End “Due to technological advances, changes in consumer preference, and market forces, the question is when, not if, POTS service and the PSTN over which it is provided will become obsolete.” - AT&T response to FCC on PSTN Evolution, Dec 2009
  • 54. Offer/Answer Model INVITE w/SDP (offer) 200 OK w/SDP (answer) INVITE w/o SDP 200 OK w/SDP (offer) ACK w/SDP (answer)ACK Early Offer Delayed Offer
  • 55. REFER (Transfer) INVITE Phone BPhone A Phone C INVITE 200 OK 200 OK ACK ACK Media Session REFER (Refer-To: C) 202 Accepted 200 OK Media Session NOTIFY 200 OK BYE
  • 56. PRACK (Provisional Acknowledgement) INVITE 100 Trying 183 Session Progress 200 OK ACK PRACK 200 OK (PRACK) PRACK sip:8000@172.16.184.83:5060 SIP/2.0 Via: SIP/2.0/UDP 172.16.13.87:5060 ;branch=z9hG4bKC384 From: <sip:9000@172.16.13.87>;tag=1EDC10-2436 To: <sip:8000@172.16.184.83>;tag=85E9C7C8-A4C Date: Fri, 01 Mar 2002 00:33:42 GMT Call-ID: D110EA36-2BE211D6-801CEF21- DD62106B@172.16.13.87 CSeq: 102 PRACK RAck: 3696 101 INVITE Max-Forwards: 70 Content-Length: 0
  • 57. OPTIONS Ping OPTIONS sip:8000@172.16.184.83:5060 SIP/2.0 Via: SIP/2.0/UDP 172.16.13.87:5060;branch=z9hG4bKC384 From: <sip:9000@172.16.13.87>;tag=1EDC10-2436 To: <sip:8000@172.16.184.83>;tag=85E9C7C8-A4C Call-ID: D110EA36-2BE211D6-801CEF21-DD62106B@172. 16.13.87 CSeq: 100 OPTIONS Contact: <sip:9000@172.16.13.87> Accept: application/sdp Max-Forwards: 70 Content-Length: 0 OPTIONS 200 OK
  • 58. SIMPLE Presence Example IP PBX PUBLISH NOTIFY SUBSCRIBE SIMPLE Server On Hook / Off Hook
  • 59. XMPP Presence Example IP PBX Presence StanzaPresence Stanza XMPP Server On Hook / Off Hook <presence xml:lang="en"> <show>on hook</show> </presence>