Making the Right Signalling Choice

Session: D1-3 Erik Linask Group Editorial Director TMC [email protected] Session Presenters • Peter Dunkley

– Technical Director

– Crocodile RCS Ltd • Steven Northridge

– Director SDP Product Marketing Oracle • Erik Lagerway

– Co-founder

– Hookflash

Peter Dunkley Technical Director Crocodile RCS Ltd [email protected] Signalling Options

• Signalling is required to discover endpoints to communicate with • There are many options • Proprietary

– RESTful

– BOSH

• Standards based

– XMPP over BOSH/WebSockets

– SIP over WebSockets Open standards are usually best • Promotes interoperability • Many years of development have solved most resilience and scaling problems

– SIP: ~17 years of development

– XMPP: ~14 years of development • Stand on the shoulders of giants • Existing server infrastructure can be reused with little or no modification • Usually many open-source options to get started with SIP has many advantages • Less complicated than most people think • The widest used, standard, session initiation protocol in the world • Many open-source SIP over WebSocket implementations, including

– Servers: Asterisk, Kamailio, OverSIP, reSIProcate

– Clients: jain-sip., JsSIP, QoffeeSIP, sipml5 • SDP and SIP work well together Steve Northridge Director SDP Product Marketing Oracle [email protected]

WebRTC Landscape

RTC becomes part of Existing communications the Web experience extended to the Web

Interoperate Communications islands interoperate Signaling Options • REST API • Client/Server not Bidirectional • XMPP/Websockets • XMPP – IETF standard INTEROPERATE • Jingle SIGNALING • Draft extension to XMPP WEB SERVER WEB SERVER • Variation used by GoogleTalk BROWSER (WEBRTC CONTROL) (WEBRTC CONTROL) • SIP SIGNALING • SIP – IETF standard • Used by SIP phones

• JSON/Websockets PEER CONNECTION • Applications can define their own (AUDIO, VIDEO, DATA) communications between the broswer and server Striking the Balance

• Server to Server Innovation • SIP Interoperability • Standards based • Widely accepted / used INTEROPERATE • Enables Interoperability SIGNALING • Server to Browser WEB SERVER WEB SERVER • JSON/Websockets BROWSER (WEBRTC CONTROL) (WEBRTC CONTROL) • Allows Application Flexibility SIGNALING • Promotes Innovations • SIP/Websockets

• Allow existing SIP applications to PEER CONNECTION seamlessly extend to the Web (AUDIO, VIDEO, DATA) Erik Lagerway Co-founder Hookflash [email protected] | @hookflash

Problem How does Bob communicate with Alice when they are on different networks?

Alice: Bob: facebook.com/alice.alberts linkedin.com/in/bob.burns Bob’s logged in via . linkedin.com/in/alice.alberts phone:1-905-555-1111 twitter.com/alice email:[email protected] domain.com/alice Alice is logged in via 1-604-555-1212 phone:1 . -604-555-1212 email:[email protected]

Bob is connected with Alice via 1-604-555-1212

12 Solution Federated Identities P2P Signaling Social, Local, or even 3rd party identities are mapped via Open Peer, allowing disparate users to locate each other no - Initiating matter what Identity they are currently using. - Ringing - Connecting - In Progress Finder Finder - Disconnect - Transfer - Hold Identity Identity - Conference Lookup Lookup - Join 1-604-555-1212 - Split - Hand-off - Send file - Poke Peer Peer - Kick Signaling & Media - Ban Add yours here ^^ Open Peer OTT (Over The Top) has already won • Open Peer = P2P, no server for signaling (unlike SIP, XMPP, Jingle, etc) • Open Peer is a complete solution purpose-built for real-time p2p communications • Open Peer will soon be WebRTC Interoperable (eg. http://webrtc.hookflash.me) Security • All communication (signaling and media) is encrypted P2P • Servers do not know encryption keys • No man-in-the-middle attacks • Identity Assertion/Validation Open • Open Specification: OpenPeer.org • Open Source (iOS, BB10, JS / Browsers, android): Github.com/OpenPeer/ Supported by premium cloud service providers (eg. Hookflash) • Identity Lookups & Mapping, Presence, STUN/TURN, Enterprise Analytics Questions

1. What are the critical factors to consider when choosing a signalling protocol? 2. What are the relative capabilities of each signalling choice? 3. Should you consider changing the signalling you use based on circumstances? 4. Are there any issues with specific signalling choices? 5. Why shouldn't we all just use SIP? 6. If I am just doing a triangle and not interfacing to other servers is the choice easier?