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 is required to discover endpoints to
communicate with • There are many options • Proprietary
– RESTful – BOSH – WebSockets
• Standards based – XMPP over BOSH/WebSockets – SIP over WebSockets
Signalling Options
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.javascript, JsSIP, QoffeeSIP, sipml5
• SDP and SIP work well together
Steve Northridge Director SDP Product Marketing Oracle [email protected]
WebRTC Landscape
Interoperate
RTC becomes part of the Web experience
Existing communications extended to the Web
Communications islands interoperate
Signaling Options • REST API
• Client/Server not Bidirectional • XMPP/Websockets
• XMPP – IETF standard • Jingle
• Draft extension to XMPP • Variation used by GoogleTalk
• SIP • SIP – IETF standard • Used by SIP phones
• JSON/Websockets • Applications can define their own
communications between the broswer and server
WEB SERVER
(WEBRTC CONTROL)
PEER CONNECTION
(AUDIO, VIDEO, DATA)
WEB SERVER
(WEBRTC CONTROL)
INTEROPERATE
SIGNALING
BROWSER
SIGNALING
Striking the Balance • Server to Server
• SIP • Standards based • Widely accepted / used • Enables Interoperability
• Server to Browser • JSON/Websockets
• Allows Application Flexibility • Promotes Innovations
• SIP/Websockets • Allow existing SIP applications to
seamlessly extend to the Web
WEB SERVER
(WEBRTC CONTROL)
PEER CONNECTION
(AUDIO, VIDEO, DATA)
WEB SERVER
(WEBRTC CONTROL)
INTEROPERATE
SIGNALING
BROWSER
SIGNALING
Innovation Interoperability
Erik Lagerway Co-founder Hookflash [email protected] | @hookflash
Problem How does Bob communicate with Alice when they are on different networks?
12
Bob’s logged in via .
Alice is logged in via 1-604-555-1212 .
Bob is connected with Alice via
1-604-555-1212
Alice: facebook.com/alice.alberts
linkedin.com/in/alice.alberts twitter.com/alice domain.com/alice
phone:1-604-555-1212 email:[email protected]
Bob: linkedin.com/in/bob.burns
phone:1-905-555-1111 email:[email protected]
Solution Federated Identities Social, Local, or even 3rd party identities are mapped via Open Peer, allowing disparate users to locate each other no matter what Identity they are currently using.
Peer Peer
Identity Lookup
Identity Lookup
Finder Finder
P2P Signaling - Initiating - Ringing - Connecting - In Progress - Disconnect - Transfer - Hold - Conference - Join - Split - Hand-off - Send file - Poke - Kick - Ban Add yours here ^^
1-604-555-1212
Signaling & Media
Open Peer
Security • All communication (signaling and media) is encrypted P2P • Servers do not know encryption keys • No man-in-the-middle attacks • Identity Assertion/Validation
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)
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?