DevCon5 (July 2014): Intro to WebRTC 
Peter Dunkley, Technical Director, Acision 
Email: peter.dunkley@acision.com 
Twitter: @pdunkley 
10/3/2014 Title Version No: 0.1/ Status: DRAFT 1
Evolution on the Web 
Sir Tim Berners-Lee 
creates HTML. Web 
-pages are static 
W3C produces the 
DOM1 specification 
1990 1996 1998 2004 2011 
Microsoft and Netscape 
introduce different 
mechanisms for DHTML 
Google uses Ajax 
in Gmail (W3C 
releases 1st draft in 
2006) – the dawn 
of web-apps 
WebSocket and 
WebRTC 
implementations 
become available 
10/3/2014 Title Version No: 0.1/ Status: DRAFT 2
Revolution in Telecoms 
The revolution 
Before today the operators (big and small) 
had full control over real-time 
communications because it was hard to do 
and substantial infrastructure investment 
Claude Chappe was required. 
invented the optical 
telegraph 
Alexander 
Graham 
Bell patents 
the telephone 
From the 1960s 
onwards digital 
exchanges start to 
appear 
From the 1990s onwards 
voice started to be carried 
on technologies developed 
for data networks such as 
ATM and IP 
1792 1837 1876 1919 1960s > 1990s > 2011 
WebSocket and 
WebRTC 
implementations 
become 
available 
Rotary dial 
enters 
service 
First commercial 
electrical telegraph 
created by 
Cooke and 
Wheatstone 
1963: DTMF 
enters service 
10/3/2014 Title Version No: 0.1/ Status: DRAFT 3
RTCWeb 
There are a number of proprietary implementations that 
provide direct interactive rich communication using audio, 
video, collaboration, games, etc. between two peers' web-browsers. 
These are not interoperable, as they require 
non-standard extensions or plugins to work. There is a 
desire to standardize the basis for such communication so 
that interoperable communication can be established 
between any compatible browsers. 
Real-Time Communication in WEB-Browsers 
(rtcweb) 2013-03-13 charter 
10/3/2014 Title Version No: 0.1/ Status: DRAFT 4
Real-time communication is hard 
10/3/2014 
Title Version No: 0.1/ Status: DRAFT 
5 
• VoIP has always suffered from a lack of standard profile 
– What QoS/feedback mechanisms should be supported 
– What codecs should be supported 
– What security mechanisms should be supported 
• This means that VoIP end-point vendors can all follow the 
specifications to the letter and still produce devices that do not 
interoperate 
• This makes the job of developing a VoIP end-point far harder than it 
should be 
• This makes large scale consumer use of VoIP difficult 
– You can’t just add real-time communications to your service - you have 
to really, really, need it for it to be worth doing 
RTCWeb provides this standard profile
WebRTC 
The mission of the Web Real-Time Communications 
Working Group, part of the Ubiquitous Web Applications 
Activity, is to define client-side APIs to enable Real-Time 
Communications in Web browsers. 
These APIs should enable building applications that can be 
run inside a browser, requiring no extra downloads or 
plugins, that allow communication between parties using 
audio, video and supplementary real-time communication, 
without having to use intervening servers (unless needed for 
firewall traversal, or for providing intermediary services). 
Web Real-Time Communications 
Working Group Charter 
10/3/2014 Title Version No: 0.1/ Status: DRAFT 6
RTCWeb/WebRTC Architecture 
Your web 
app #1 
RTCWeb 
Voice Engine 
. . . 
WebRTC API 
Your web 
app #2 
WebRTC C++ API (PeerConnection) 
Session management / Abstract signalling (Session) 
G.711/OPUS Codec 
NetEQ for Voice 
Echo Canceller / 
Noise Reduction 
Video Engine 
H.264/VP8 Codec 
Video Jitter Buffer 
Image enhancements 
Transport 
Your web 
app #3 
SRTP 
Multiplexing 
P2P 
STUN + TURN + ICE 
Audio Capture/Render Video Capture Network I/O 
The web 
Your browser 
Based on the diagram from http://www.webrtc.org/reference/architecture 
10/3/2014 Title Version No: 0.1/ Status: DRAFT 7
The signalling triangle (non-interoperable) 
Server 
UA Media 
UA 
10/3/2014 Title Version No: 0.1/ Status: DRAFT 8
The signalling trapezoid (interoperable) 
Server 
Signalling Server 
UA Media 
UA 
The fact that something can interoperate does 
not mean it must, or will, interoperate 
10/3/2014 Title Version No: 0.1/ Status: DRAFT 9
Interoperability could be bad for business 
• Good for consumers doesn’t always mean good 
for business 
– Why would, for example, Microsoft want Office 365 
users to easily collaborate with Google Docs users? 
• In other situations… 
It’s the API, stupid… 
10/3/2014 Title Version No: 0.1/ Status: DRAFT 10
Picking the right API is the most important thing 
Personally, I’ve come around (the hard way) to a fairly pragmatic stance 
on this point, and I hesitate from declaring “it has to be” one approach 
for signaling protocol, or another. Let me explain: Initially, I must admit I 
used to obsess about what protocol the library was doing under the 
hood. In fact, full disclosure: when I first started looking into JavaScript 
WebRTC signaling, I thought SIP over WebSockets was a bad idea… 
However, after I did a few projects… I started to have a change of heart. 
I found that in using the library, I was able to accomplish the goals of my 
projects, and the JavaScript interface to the library could be just as 
simple and powerful as all the others. I couldn’t find the fatal flaw I was 
expecting, and it just worked. In all this I started to care less and less 
about what was happening on the wire between the library and the 
service, and more about what features of the service I could access 
through the API. 
… Most importantly, the best one for you is flexible enough to meet your 
security, architecture, and functional requirements (no matter what 
protocol it uses). 
webrtcH4cKS: What’s in a WebRTC JavaScript Library, 
Reid Stidolph 
10/3/2014 Title Version No: 0.1/ Status: DRAFT 11
Thank you 
Email: peter.dunkley@acision.com 
Twitter: @pdunkley 
10/3/2014 Title Version No: 0.1/ Status: DRAFT 12

DevCon5 (July 2014) - Intro to WebRTC

  • 1.
    DevCon5 (July 2014):Intro to WebRTC Peter Dunkley, Technical Director, Acision Email: peter.dunkley@acision.com Twitter: @pdunkley 10/3/2014 Title Version No: 0.1/ Status: DRAFT 1
  • 2.
    Evolution on theWeb Sir Tim Berners-Lee creates HTML. Web -pages are static W3C produces the DOM1 specification 1990 1996 1998 2004 2011 Microsoft and Netscape introduce different mechanisms for DHTML Google uses Ajax in Gmail (W3C releases 1st draft in 2006) – the dawn of web-apps WebSocket and WebRTC implementations become available 10/3/2014 Title Version No: 0.1/ Status: DRAFT 2
  • 3.
    Revolution in Telecoms The revolution Before today the operators (big and small) had full control over real-time communications because it was hard to do and substantial infrastructure investment Claude Chappe was required. invented the optical telegraph Alexander Graham Bell patents the telephone From the 1960s onwards digital exchanges start to appear From the 1990s onwards voice started to be carried on technologies developed for data networks such as ATM and IP 1792 1837 1876 1919 1960s > 1990s > 2011 WebSocket and WebRTC implementations become available Rotary dial enters service First commercial electrical telegraph created by Cooke and Wheatstone 1963: DTMF enters service 10/3/2014 Title Version No: 0.1/ Status: DRAFT 3
  • 4.
    RTCWeb There area number of proprietary implementations that provide direct interactive rich communication using audio, video, collaboration, games, etc. between two peers' web-browsers. These are not interoperable, as they require non-standard extensions or plugins to work. There is a desire to standardize the basis for such communication so that interoperable communication can be established between any compatible browsers. Real-Time Communication in WEB-Browsers (rtcweb) 2013-03-13 charter 10/3/2014 Title Version No: 0.1/ Status: DRAFT 4
  • 5.
    Real-time communication ishard 10/3/2014 Title Version No: 0.1/ Status: DRAFT 5 • VoIP has always suffered from a lack of standard profile – What QoS/feedback mechanisms should be supported – What codecs should be supported – What security mechanisms should be supported • This means that VoIP end-point vendors can all follow the specifications to the letter and still produce devices that do not interoperate • This makes the job of developing a VoIP end-point far harder than it should be • This makes large scale consumer use of VoIP difficult – You can’t just add real-time communications to your service - you have to really, really, need it for it to be worth doing RTCWeb provides this standard profile
  • 6.
    WebRTC The missionof the Web Real-Time Communications Working Group, part of the Ubiquitous Web Applications Activity, is to define client-side APIs to enable Real-Time Communications in Web browsers. These APIs should enable building applications that can be run inside a browser, requiring no extra downloads or plugins, that allow communication between parties using audio, video and supplementary real-time communication, without having to use intervening servers (unless needed for firewall traversal, or for providing intermediary services). Web Real-Time Communications Working Group Charter 10/3/2014 Title Version No: 0.1/ Status: DRAFT 6
  • 7.
    RTCWeb/WebRTC Architecture Yourweb app #1 RTCWeb Voice Engine . . . WebRTC API Your web app #2 WebRTC C++ API (PeerConnection) Session management / Abstract signalling (Session) G.711/OPUS Codec NetEQ for Voice Echo Canceller / Noise Reduction Video Engine H.264/VP8 Codec Video Jitter Buffer Image enhancements Transport Your web app #3 SRTP Multiplexing P2P STUN + TURN + ICE Audio Capture/Render Video Capture Network I/O The web Your browser Based on the diagram from http://www.webrtc.org/reference/architecture 10/3/2014 Title Version No: 0.1/ Status: DRAFT 7
  • 8.
    The signalling triangle(non-interoperable) Server UA Media UA 10/3/2014 Title Version No: 0.1/ Status: DRAFT 8
  • 9.
    The signalling trapezoid(interoperable) Server Signalling Server UA Media UA The fact that something can interoperate does not mean it must, or will, interoperate 10/3/2014 Title Version No: 0.1/ Status: DRAFT 9
  • 10.
    Interoperability could bebad for business • Good for consumers doesn’t always mean good for business – Why would, for example, Microsoft want Office 365 users to easily collaborate with Google Docs users? • In other situations… It’s the API, stupid… 10/3/2014 Title Version No: 0.1/ Status: DRAFT 10
  • 11.
    Picking the rightAPI is the most important thing Personally, I’ve come around (the hard way) to a fairly pragmatic stance on this point, and I hesitate from declaring “it has to be” one approach for signaling protocol, or another. Let me explain: Initially, I must admit I used to obsess about what protocol the library was doing under the hood. In fact, full disclosure: when I first started looking into JavaScript WebRTC signaling, I thought SIP over WebSockets was a bad idea… However, after I did a few projects… I started to have a change of heart. I found that in using the library, I was able to accomplish the goals of my projects, and the JavaScript interface to the library could be just as simple and powerful as all the others. I couldn’t find the fatal flaw I was expecting, and it just worked. In all this I started to care less and less about what was happening on the wire between the library and the service, and more about what features of the service I could access through the API. … Most importantly, the best one for you is flexible enough to meet your security, architecture, and functional requirements (no matter what protocol it uses). webrtcH4cKS: What’s in a WebRTC JavaScript Library, Reid Stidolph 10/3/2014 Title Version No: 0.1/ Status: DRAFT 11
  • 12.
    Thank you Email:peter.dunkley@acision.com Twitter: @pdunkley 10/3/2014 Title Version No: 0.1/ Status: DRAFT 12