My talk on webRTC from June 2013
Demo application using XMPP for signalling
open source webRTC using websockets is here: implenentationhttps://github.com/pizuricv/webRTC-over-websockets
2. WebRTC technology
• WebRTC is an industry and standards effort to put real-time
communications capabilities into all browsers and
make these capabilities accessible to web developers via
standard [HTML5] tags and JavaScript APIs (Application
Programming Interfaces).
• The underlying standards of WebRTC are being
developed by the World Wide Web Consortium (W3C)
and the Internet Engineering Task Force (IETF)
• Current WebRTC initiative is supported by Google,
Mozilla and Opera.
3. WebRTC model
Necessary steps for browser to browser communication:
• Access to real time streaming data (audio, video) part
of HTML5 API : getUserMedia()
• Signaling protocol: exchange information about media
and client capabilities on both endpoints, such as
resolution and codecs (aka ‘SDP’) . Not part of the
WebRTC spec!
• Peer to peer streaming part of HTML5 API:
RTCPeerConnection
• Video/audio encoding/decoding in browser, echo
cancelation etc… implemented in browsers
5. Comparison to VoIP
Classic VoIP WebRTC
Signaling SIP or H.323 in most cases Undefined
Media transport RTP/RTCP RTP/RTCP
Security SRTP in SIP,H.235 in H.323 SRTP
NAT traversal
STUN/TURN/ICE in SIP,H.450.x
in H.323
STUN/TURN/ICE
Video codecs H.263, H.264 VP8
Voice codecs G.7xx series of codecs, .. G.711, iLBC, iSAC
6. E2E architecture – basic model
• The offer/answer architecture described above is
called Javascript Session Establishment Protocol (JSEP)
7. Integration in Cloud Desktop
Signaling is the mechanism by which peers send control
messages to each other for the purpose of establishing the
communication protocol, channel, and method.
Signaling implementation requirements:
– Discovery (who I have in my address book)
– Presence (who from my circles is currently on line)
– Placing a call
In our real communication solution, signaling is based on XMPP(jabber)
protocol. XMPP provides all these capabilities out of the box. XMPP
database (list of users) is integrated with AD server – which is also used
for authentication and authorization for Cloud Desktop – no duplicate
data, stateless server.
8. Cloud Desktop WebRTC architecture
Browser Browser
BOSH wrapper
XMPP
AD
server
Signaling path
Signaling path:
• ICE candidates
• SDP information
• Address book
• Presence information
Peer2peer channel
Signaling path
9. NAT/firewall traversal
• STUN protocol and its extension TURN are used by
the ICE framework to enable RTCPeerConnection to cope with NAT
traversal and other network vagaries.
• ICE is a framework for connecting peers, such as two video chat
clients. Initially, ICE tries to connect peers directly, with the lowest
possible latency, via UDP. In this process, STUN servers have a
single task: to enable a peer behind a NAT to find out its public
address and port.
• If UDP fails, ICE tries TCP: first HTTP, then HTTPS. If direct
connection fails—in particular, because of enterprise NAT traversal
and firewalls—ICE uses an intermediary (relay) TURN server.
In other words, ICE will first use STUN with UDP to directly connect
peers and, if that fails, will fall back to a TURN relay server. The
expression 'finding candidates' refers to the process of finding
network interfaces and ports.
12. From service to function
• Voice/video moving from service to function
Shift from “standalone” to “contextualized” communications
13. VoIP vs. WebRTC
• Most VoIP apps are standalone “calling” tools
• Contextual / in-app opportunity slow & fragmented
• Complexity for developers
– X number of platform
– Rocket-science for SIP, acoustics etc.
– Immaturity of voice/telephony APIs
– “Telephony” model inflexible
WebRTC fit with HTML5/apps should enable “beyond the call”
voice & video with less heavy lifting
• HTML5 also comes with new features like realtime data
channel
• Mashups + communication – new opportunity and threat for
many
14. WebRTC use cases
Plus: M2M, gaming, TV-based, data-centric & various others
Don’t just think about WebRTC in terms of today’s telephony.
Think more adding communications to any company website or app
15. Enterprise benefits of WebRTC as platform
• Website becomes the call center
• New models for customer interaction (eg contextual
support via video)
• Browser becomes flexible/updateable softphone
• Easier federation / interconnect between companies
• Slick web-based conferencing, inc. easier integration
with web tools like LinkedIn & DropBox
• Easier 2-way comms within mobile apps
• Various new possibilities with realtime data sharing