• No results found

SIPping from the Open Source Well. Matthew Bynum UC Architect

N/A
N/A
Protected

Academic year: 2021

Share "SIPping from the Open Source Well. Matthew Bynum UC Architect"

Copied!
56
0
0

Loading.... (view fulltext now)

Full text

(1)

SIPping from the

Open Source Well

Matthew Bynum

(2)

A little about me

• Dabbler in Unified

Communications for 12 years

• CCIE Voice #21753

• Installed my first Linux distro at

age 17 (RedHat 5.0)

• Open Source lover, amateur

maker, forestry nerd Matthew Bynum

http://gplus.to/mbynum

(3)

Agenda

• SIP History

• Why SIP matters (SIP and DNS)

• Inside the SIP spec

• Open Source (and one proprietary) SIP options

(4)

SIP is a protocol for establishing

sessions in an IP network.

(5)

SIP History

Glory is fleeting, but obscurity is forever.

(6)

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

dhcp TCP UDP

TELNET IGMP ICMP FTP ECHO

(7)

IETF Meetings

The First IETF Audiocast occurred in 1992. A method was needed to disseminate the meeting invites.

Create

1

Descr.: DNS Discussion San Fran Orig.: John Doe [email protected]

Info: http://www.com.com Start: 04.04.2001 / 09.30 End: 04.20.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

(8)

Simple Conference Invitation Protocol Session Invitation Protocol CALL CHANGE CLOSE by Henning Schulzrinne by 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

(9)

Simple Conference Invitation Protocol

Session Invitation Protocol

SCIP/1.0 302 Callee has moved temporarily Location: [email protected] Location: [email protected] CALL [email protected] 1.0

User-Agent: coco/1.3

From: Christian Zahl <[email protected]> To: Henning Schulzrinne

<[email protected]>

Call-Id: [email protected]

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 [email protected] [email protected] v=0 o=van 2353644765 2353687637 IN IP4 128.3.4.5 s=Mbone Audio

i=Discussion of Mbone Engineering Issues [email protected] (Van Jacobsen

c=IN IP4 224.2.0.1/127 t=0 0

(10)

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/

(11)

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)

(12)

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

(13)

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

!

(14)

• Q.931 (TDM)

• H.323 (IP)

(15)
(16)

It’s all about the decentralization Internet linuxcon.com 20.20.20.20 SIP Proxy DNS SIP DNS atlanta.com SIP Proxy Media [email protected] [email protected] 2.

Where is the SIP server for linuxcon.com? 20.20.20.20 and port 5061

1.

Alice places call to [email protected]. 3. INVITE is sent to 20.20.20.20 addressed to [email protected] 4. INVITE is forwarded to the user bob, who answers, and the media is established between Alice and Bob.

(17)

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.

(18)

SIP and DNS (cont.)

• Use ENUM records for determining what URI

a full E.164 number should map to

• Politics restrict this from being a viable

option. Screenshot from the ITU website:

; NAPTR for calling +12561234567

$ORIGIN 7.6.5.4.3.2.1.6.5.2.1.e164.arpa.

(19)
(20)

User Agents

Client Server

TCP or UDP port 5060 TLS on port 5061

(21)

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

(22)

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

(23)

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

(24)

SIP Element Examples Service Provider SBC Proxy Registrar/B2BUA Media Gateway SIP TDM Redirect

(25)

Basic Call Flow INVITE Phone B Phone A 180 Ringing 200 OK ACK Media BYE 200 OK

(26)

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

(27)

Example SIP INVITE

INVITE <sip:[email protected]> SIP/2.0

Via: SIP/2.0/UDP pc33.atlanta.com;branch=z9hG4bK776asdhds Max-Forwards: 70

To: Bob <sip:[email protected]>

From: Alice <sip:[email protected]>;tag=1928301774 Call-ID: [email protected] CSeq: 314159 INVITE Contact: <sip:[email protected]> 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

(28)

Example SIP OK

SIP/2.0 200 OK

Via: SIP/2.0/UDP server10.linuxcon.com

;branch=z9hG4bKnashds8;received= 216.81.194.139 To: Bob <sip:[email protected]>;tag=a6c85cf

From: Alice <sip:[email protected]>;tag=1928301774 Call-ID: [email protected]

CSeq: 314159 INVITE

Contact: <sip:[email protected]>

Content-Type: application/sdp Content-Length: 131 v=0 o=alice 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

(29)

Presence

• Real-time indicator of a

person’s willingness and

availability to communicate

• Blends communication

methods together, allows for designating preferred contact method

(30)

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

(31)

XMPP– Powering Presence in SIP

EXtensible Messaging and Presence Protocol

• Uses XML messages and a

Publisher/Subscriber model for messages, defined in RFC’s 6120, 6121, and 6122

(32)

Open Source (and one proprietary) SIP Server Options

Knowledge without practice is useless. Practice without knowledge is dangerous.

(33)

Two main types of SIP servers • 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 some features (like transfers)

(34)

Asterisk – B2BUA/Media Server

• B2BUA…so it stays in the signaling (and media)

path

• Provides ACD, Voicemail, and IVR functionality

• Most popular VoIP project in the world

• Backed by Digium in Huntsville, AL

• Rooted in traditional telephony

(35)

FreeSWITCH

• B2BUA, stays in the signaling (and media) path

• Provides ACD, Voicemail, and IVR functionality

• Used by other projects for its media

processing capabilities

(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

(37)

Kamailio

• Registrar, Redirect, Proxy

• 1&1 uses Kamailio and has 1 billion minutes

per month of usage through the platform

• Frequently used to “front-end” other SIP

servers such as Asterisk or FreeSWITCH

• Kamailio does NOT handle media (relies on

(38)

OpenSIPS

• Registrar, Redirect, Proxy

• Fork of what Kamailio came from (SIP Express

Router or SER)

• Frequently used to “front-end” other SIP

servers such as Asterisk or FreeSWITCH

• OpenSIPS does NOT handle media (relies on

(39)

reSIProcate

• Proxy, Location, STUN/TURN

• Initial VOCAL stack started by Vovida Networks

“back in the day”, then was acquired by Cisco

• reSIProcate founded in 2002, moved to

SIPfoundry, then went independent in 2006

• 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

(41)

Proprietary: Cisco CallManager (CUCM)

• B2BUA for all types of SIP calls (trunk and line)

• Cisco’s implementation is 100% standards

compatible SIP…except when it’s not.

• There are “extensions” to SIP implemented in

CUCM for Cisco’s SCCP protocol feature parity to handsets

• Leads to two modes of SIP support for phones,

(42)

Open Source SIP Client Options

Product Version Linux Win Mac Android iOS SIP XMPP NAT Traversal 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

(43)

Future of SIP

How does this get me my flying car?

(44)
(45)

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/

(46)

WebRTC

• sipml5.org

• HTML5 Web-based SIP clients

• Enables future B2C, B2B, P2P, and any other

acronym you can think of

(47)
(48)

Q&A

(49)

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.”

(50)

Appendix

(51)

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

(52)

REFER (Transfer) INVITE Phone B Phone 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

(53)

PRACK (Provisional Acknowledgement) INVITE 100 Trying 183 Session Progress 200 OK ACK PRACK 200 OK (PRACK)

PRACK sip:[email protected]:5060 SIP/2.0 Via: SIP/2.0/UDP 172.16.13.87:5060

;branch=z9hG4bKC384

From: <sip:[email protected]>;tag=1EDC10-2436 To: <sip:[email protected]>;tag=85E9C7C8-A4C Date: Fri, 01 Mar 2002 00:33:42 GMT

Call-ID: [email protected] CSeq: 102 PRACK RAck: 3696 101 INVITE Max-Forwards: 70 Content-Length: 0

(54)

OPTIONS Ping

OPTIONS sip:[email protected]:5060 SIP/2.0

Via: SIP/2.0/UDP 172.16.13.87:5060;branch=z9hG4bKC384 From: <sip:[email protected]>;tag=1EDC10-2436 To: <sip:[email protected]>;tag=85E9C7C8-A4C Call-ID: [email protected] CSeq: 100 OPTIONS Contact: <sip:[email protected]> Accept: application/sdp Max-Forwards: 70 Content-Length: 0 OPTIONS 200 OK

(55)

SIMPLE Presence Example IP PBX PUBLISH NOTIFY SUBSCRIBE SIMPLE Server

(56)

XMPP Presence Example

IP PBX Presence Stanza

Presence Stanza

XMPP Server

On Hook / Off Hook

<presence xml:lang="en"> <show>on hook</show>

References

Related documents

Extending from the same Session Initiation Protocol (SIP) and SIP for Instant Messaging and Presence Leveraging Extensions (SIMPLE)-based indus- try standard platform as

RFC 3587 IPv6 Global Unicast Address Format RFC 3596 DNS Extensions to Support IP Version 6 RFC 4113 Management Information Base for the User Datagram Protocol (UDP). RFC 4213

O RFC 3824 Using E.164 numbers with the Session Initiation Protocol (SIP) O RFC 3891 The Session Initiation Protocol (SIP) &#34;Replaces&#34; Header O RFC 3892 The Session

(a) It is the duty of the representative to publish once each week for 3 successive weeks, and to mail or deliver to each creditor of the decedent whose name and post office

piu qoc2 uo dnsjrsiicjA SU.CC IJJC COIJCJII2IOU2 H0MCACL IJJOLC UULSCfi/C LGWSIG SIIOLIJC?2 !ACLC 5J20 WOLC JIJCCJA qqru wsuIsJ arsrn2 suq rpc bLc2cucc °L cpqqcu Sr luG 1!UJC

Free promo codes and game passes don’t work anymore so instead try some of the above methods to earn a nice amount of FREE ROBUX and make your gaming even..

Hyperparameters were found by performing a grid search over 2, 3, 5 shapelets per class, with a maximum total number of shapelets of 30, and shapelets being set to (classical

Previous research of online gaming is briefly covered, along with literature that helps frame the virtual physical environment people experience when playing Runescape, and