WebRTC presentation

Preview:

DESCRIPTION

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

Citation preview

WebRTC/Cloud Desktop/integration

Suggestin for Light C3Veselin Pizurica

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.

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

WebRTC architecture

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 traversalSTUN/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

E2E architecture – basic model

• The offer/answer architecture described above is called Javascript Session Establishment Protocol (JSEP)

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.

Cloud Desktop WebRTC architecture

AD server

Browser Browser

XMPP

BOSH wrapper

Signaling path:• ICE candidates• SDP information• Address book• Presence information

Signaling path

Peer2peer channel

Signaling path

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.

WebRTC: ICE with STUN setup

Future of communication

From service to function

• Voice/video moving from service to function

Shift from “standalone” to “contextualized” communications

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

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

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

Telcos?

Downsides• Voice & SMS saturation & cannibalisation• Regulation & competitive impacts• Weak content & VAS propositions• Economic pressures• Ecosystem competition

Upsides • Connecting the last unconnected • Smartphones & data growth • Better segmentation, pricing & promotion • Innovative services & enablers • Embracing & exploiting fragmentation

For telcos WebRTC is a catalyst

NOW

With WebRTC• Bigger opportunities • Worse threats • Faster speed of change

Examples

Deployment models

The WebRTC Triangle

The WebRTC Trapezoid [draft-ietf-rtcweb-overview]

WebRTC with SIP

WebRTC and Jingle

WebRTC and PSTN

Multi-Party Sessions in WebRTC

Single Peer Connection with Media Server

References

• [HTML5] http://www.w3.org/TR/html5

• [draft-ietf-rtcweb-overview] http://tools.ietf.org/html/draft-ietf-rtcweboverview

• [RFC3261] http://tools.ietf.org/html/rfc3261

• [XEP-0166] http://xmpp.org/extensions/xep-0166.html

• [RFC6120] http://tools.ietf.org/html/rfc6120

• [W3C] http://www.w3c.org

• [IETF] http://www.ietf.org

• [WEBRTC.ORG] http://www.webrtc.org

• [WEBRTC 1.0] http://www.w3.org/TR/webrtc