SlideShare a Scribd company logo
Interoperable WebRTC… 
… and why it is important 
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
Four kinds of interoperability on two levels 
• Level one (generic) 
– Interoperable media 
• Different devices can understand each other’s media streams 
• This is what the IETF RTCWeb working group is doing 
– Interoperable platforms 
• Applications written for one platform (for example, a browser) can run on another 
platform (for example, another browser) 
• This is what the W3C Web Real-Time Communications working group is doing 
• Level two (use case specific) 
– Interoperable applications 
• For example, a native mobile shopping application that can communicate with a 
web-based CRM platform 
– Interoperable services 
• For example, a web-based CRM platform that can receive calls from the PSTN 
10/3/2014 Title Version No: 0.1/ Status: DRAFT 4
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 5
Real-time communication is hard 
10/3/2014 
Title Version No: 0.1/ Status: DRAFT 
6 
• 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 7
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 8
Interoperable media and platforms are not enough 
• To establish a media session you need to: 
1. Locate the other end-point – it is probably on another network behind a 
NAT device 
2. Negotiate the media connection 
• This means you need some form of signalling 
– Even the simplest, proprietary, exchange between end-points is a form 
of signalling 
– Standardised signalling is required for interoperable applications and 
services 
Not all applications and services need to interoperate 
10/3/2014 Title Version No: 0.1/ Status: DRAFT 9
Many applications don’t need interoperability 
• Online dating – you’d only expect to interact with people on the 
same site 
• Online gambling – you’d only expect to interact with people on the 
same site 
• Online gaming – you’d only expect to interact with people in the 
same game 
• Collaboration within Google Docs or Office 365 
Most interactive, browser-only, applications don’t 
need to interoperate 
10/3/2014 Title Version No: 0.1/ Status: DRAFT 10
Many applications do need interoperability 
• Conferencing – do you really want to exclude the guy travelling who 
can’t get (or afford) a mobile data connection? 
• Online education – why shouldn’t I be able to listen to lectures 
through other routes? 
• Telemedicine – a huge boon for people living in remote areas (aren’t 
those the ones who struggle to get online?) 
• Call centres – can I afford to exclude customers who can’t (or don’t 
want to) use WebRTC? 
Many of the applications that need to interoperate 
are high-value 
10/3/2014 Title Version No: 0.1/ Status: DRAFT 11
Interoperability example: Call Centres 
• WebRTC can make call centres run more efficiently 
– No need for separate computers and hard-phones 
– No need for complex soft-phone and web-UI integration 
– Give everyone an inexpensive computer that boots into the browser and 
have a fully integrated web-app 
• WebRTC can make calling a call centre less unpleasant 
– Web-form or mobile app instead of IVR 
– Context based calling 
• No need to re-identify yourself 
• No need to explain why you are calling 
– Callers can be entertained while in the queue 
• Let them play games and watch YouTube videos 
• Recommend games and videos based on information from social networks 
10/3/2014 Title Version No: 0.1/ Status: DRAFT 12
The signalling triangle (non-interoperable) 
Server 
UA Media 
UA 
10/3/2014 Title Version No: 0.1/ Status: DRAFT 13
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 14
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 15
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 16
There are many interoperable signalling options 
• SIP 
– Widely used today 
– If you have to connect to legacy networks and 
equipment this is probably what you need 
• XMPP jingle over WebSockets 
– It’s a standard but it isn’t as widely used as SIP 
• OpenPeer 
– This is great for interoperable WebRTC, but has little 
to no support in existing devices. 
10/3/2014 Title Version No: 0.1/ Status: DRAFT 17
Using SIP with WebRTC 
• You have two choices 
– Use SIP end-to-end (SIP over WebSockets) 
– Use a REST (or another protocol) to SIP gateway 
• It is better if you do not need gateways 
– Gateways are expensive 
• You typically have to deploy more equipment 
• Resilience and scaling is harder 
10/3/2014 Title Version No: 0.1/ Status: DRAFT 18
With a gateway 
REST 
and RTP 
SIP and 
RTP 
Browser Gateway UA 
Single point of failure 
(unless complex and 
expensive dialog 
replication is used) 
10/3/2014 Title Version No: 0.1/ Status: DRAFT 19
Without a gateway 
SIP Proxy 
Resilience without 
replication (transaction 
stateful proxy as per 
RFC 3261) 
UA RTP 
UA 
10/3/2014 Title Version No: 0.1/ Status: DRAFT 20
SIP gives you the widest choice today 
• There are many open-source server implementations of 
SIP over WebSockets 
– Asterisk, FreeSwitch, Kamailio, OverSIP, reSIProcate 
• There are many open-source client (JavaScript) 
implementations of SIP over WebSockets 
– JAIN-SIP-Javascript, JsSIP, QoffessSIP, sipml5 
• There are SDK and network vendors who are packaging 
this stuff to make it easy for you to use 
It’s the API, stupid 
10/3/2014 Title Version No: 0.1/ Status: DRAFT 21
Interoperable WebRTC Demos… 
10/3/2014 Title Version No: 0.1/ Status: DRAFT 22
Questions? 
Email: peter.dunkley@acision.com 
Twitter: @pdunkley 
10/3/2014 Title Version No: 0.1/ Status: DRAFT 23

More Related Content

PPTX
DevCon5 (July 2014) - Intro to WebRTC
PDF
Asterisk World (January 2014) - Taking Enterprise Telephony into the Web World
PPTX
DevCon5 (July 2014) - Acision SDK
PPTX
Kamailio World 2014 - Kamailio - The Platform for Interoperable WebRTC
PPTX
WebRTC
PDF
WebRTC DataChannels demystified
PDF
WebRTC - On Standards, Identity and Telco Strategy
PDF
WebRTC on Mobile Devices: Challenges and Opportunities
DevCon5 (July 2014) - Intro to WebRTC
Asterisk World (January 2014) - Taking Enterprise Telephony into the Web World
DevCon5 (July 2014) - Acision SDK
Kamailio World 2014 - Kamailio - The Platform for Interoperable WebRTC
WebRTC
WebRTC DataChannels demystified
WebRTC - On Standards, Identity and Telco Strategy
WebRTC on Mobile Devices: Challenges and Opportunities

What's hot (20)

PDF
A jQuery for WebRTC
PPTX
WebRTC presentation
PDF
WebRTC for Telco: Informa's WebRTC Global Summit Preconference
PDF
WebRTC Business Use Cases | WebRTC Conference & Expo III
PDF
WebRTC Tutorial by Dean Bubley of Disruptive Analysis & Tim Panton of Westhaw...
PDF
WebRTC: A front-end perspective
PDF
Baby Steps: A WebRTC Tutorial
PPTX
WebRTC overview
PDF
WebRTC and VoIP: bridging the gap (Kamailio world conference 2013)
PDF
WebRTC in the Real World
PPTX
WebRTC: Business models and implications for mobile
PPTX
WebRTC: players, business models and implications for telecommunication carriers
PDF
WebRTC on Mobile
PPTX
WebRTC for Mobile
PDF
8 pre launch steps to go with the web rtc based application development
PDF
WebRTC - a quick introduction
PDF
WebRTC. Yet Another Overview, for IT Technicians.
PDF
WebRTC Check-in (from WebRTC Boston 6)
PDF
WebRTC - a History Lesson
A jQuery for WebRTC
WebRTC presentation
WebRTC for Telco: Informa's WebRTC Global Summit Preconference
WebRTC Business Use Cases | WebRTC Conference & Expo III
WebRTC Tutorial by Dean Bubley of Disruptive Analysis & Tim Panton of Westhaw...
WebRTC: A front-end perspective
Baby Steps: A WebRTC Tutorial
WebRTC overview
WebRTC and VoIP: bridging the gap (Kamailio world conference 2013)
WebRTC in the Real World
WebRTC: Business models and implications for mobile
WebRTC: players, business models and implications for telecommunication carriers
WebRTC on Mobile
WebRTC for Mobile
8 pre launch steps to go with the web rtc based application development
WebRTC - a quick introduction
WebRTC. Yet Another Overview, for IT Technicians.
WebRTC Check-in (from WebRTC Boston 6)
WebRTC - a History Lesson
Ad

Similar to WebRTC Summit (June 2014) - WebRTC Interoperability (and why it is important) (20)

PDF
DevCon 5 (December 2013) - WebRTC & WebSockets
PDF
WebRTC standards update (13 Nov 2013)
PDF
WebRTC Summit November 2013 - WebRTC Interoperability (and why it is important)
PDF
Status of WebRTC across Asia by Alan Quayle +++
PDF
Webinar WebRTC HTML5 (english)
PDF
WebRTC standards update - November 2014
PDF
Pkewebrtc
PPTX
Real-time Communications at Internet Speed
PPTX
WebRTC and Web Design
PDF
Upperside Webinar- WebRTC from the service provider prism-final
PDF
WebRTC - Is it ready? 2013
PDF
WebRTC Media Challenges
PDF
WebRTC And FreeSWITCH – What This Combination Means?
PPT
minor-project-1.ppt
PDF
Telcos, RCS & WebRTC - "democratisation" of voice and video
PDF
WebRTC Standards Update (October 2014)
PPTX
WebRTC Seminar Report
PPTX
The Enterprise wants WebRTC -- and it needs Middleware to get it! (IIT RTC Co...
PDF
WebRTC Overview by Dan Burnett
PDF
web-rtc presentation on TNC 2013, Technical Advisory Committee meeting
DevCon 5 (December 2013) - WebRTC & WebSockets
WebRTC standards update (13 Nov 2013)
WebRTC Summit November 2013 - WebRTC Interoperability (and why it is important)
Status of WebRTC across Asia by Alan Quayle +++
Webinar WebRTC HTML5 (english)
WebRTC standards update - November 2014
Pkewebrtc
Real-time Communications at Internet Speed
WebRTC and Web Design
Upperside Webinar- WebRTC from the service provider prism-final
WebRTC - Is it ready? 2013
WebRTC Media Challenges
WebRTC And FreeSWITCH – What This Combination Means?
minor-project-1.ppt
Telcos, RCS & WebRTC - "democratisation" of voice and video
WebRTC Standards Update (October 2014)
WebRTC Seminar Report
The Enterprise wants WebRTC -- and it needs Middleware to get it! (IIT RTC Co...
WebRTC Overview by Dan Burnett
web-rtc presentation on TNC 2013, Technical Advisory Committee meeting
Ad

More from Crocodile WebRTC SDK and Cloud Signalling Network (8)

PPTX
WebRTC Conference and Expo (November 2013) - Signalling Workshop
PDF
Astricon 10 (October 2013) - SIP over WebSocket on Kamailio
PDF
DevCon 5 (July 2013) - WebSockets
PDF
ITSPA May 2013 - WebRTC, TURN, and WebSocket
PDF
Kamailio World 2013 - SIP and MSRP over WebSocket
ODP
FOSDEM 2013 - SIP and MSRP over WebSocket in Kamailio
PDF
Crocodile RTC Launch (Google Campus) - 1: Introduction
WebRTC Conference and Expo (November 2013) - Signalling Workshop
Astricon 10 (October 2013) - SIP over WebSocket on Kamailio
DevCon 5 (July 2013) - WebSockets
ITSPA May 2013 - WebRTC, TURN, and WebSocket
Kamailio World 2013 - SIP and MSRP over WebSocket
FOSDEM 2013 - SIP and MSRP over WebSocket in Kamailio
Crocodile RTC Launch (Google Campus) - 1: Introduction

Recently uploaded (20)

PDF
Reach Out and Touch Someone: Haptics and Empathic Computing
PDF
Encapsulation_ Review paper, used for researhc scholars
PPTX
20250228 LYD VKU AI Blended-Learning.pptx
PDF
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
PDF
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
PPTX
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
PDF
KodekX | Application Modernization Development
PPT
Teaching material agriculture food technology
PDF
Dropbox Q2 2025 Financial Results & Investor Presentation
PPTX
Spectroscopy.pptx food analysis technology
PPTX
ACSFv1EN-58255 AWS Academy Cloud Security Foundations.pptx
PDF
Review of recent advances in non-invasive hemoglobin estimation
PDF
NewMind AI Weekly Chronicles - August'25 Week I
PDF
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
PDF
Building Integrated photovoltaic BIPV_UPV.pdf
PPTX
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
PDF
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
PPT
“AI and Expert System Decision Support & Business Intelligence Systems”
PDF
Chapter 3 Spatial Domain Image Processing.pdf
PPTX
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
Reach Out and Touch Someone: Haptics and Empathic Computing
Encapsulation_ Review paper, used for researhc scholars
20250228 LYD VKU AI Blended-Learning.pptx
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
KodekX | Application Modernization Development
Teaching material agriculture food technology
Dropbox Q2 2025 Financial Results & Investor Presentation
Spectroscopy.pptx food analysis technology
ACSFv1EN-58255 AWS Academy Cloud Security Foundations.pptx
Review of recent advances in non-invasive hemoglobin estimation
NewMind AI Weekly Chronicles - August'25 Week I
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
Building Integrated photovoltaic BIPV_UPV.pdf
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
“AI and Expert System Decision Support & Business Intelligence Systems”
Chapter 3 Spatial Domain Image Processing.pdf
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx

WebRTC Summit (June 2014) - WebRTC Interoperability (and why it is important)

  • 1. Interoperable WebRTC… … and why it is important Email: peter.dunkley@acision.com Twitter: @pdunkley 10/3/2014 Title Version No: 0.1/ Status: DRAFT 1
  • 2. 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
  • 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. Four kinds of interoperability on two levels • Level one (generic) – Interoperable media • Different devices can understand each other’s media streams • This is what the IETF RTCWeb working group is doing – Interoperable platforms • Applications written for one platform (for example, a browser) can run on another platform (for example, another browser) • This is what the W3C Web Real-Time Communications working group is doing • Level two (use case specific) – Interoperable applications • For example, a native mobile shopping application that can communicate with a web-based CRM platform – Interoperable services • For example, a web-based CRM platform that can receive calls from the PSTN 10/3/2014 Title Version No: 0.1/ Status: DRAFT 4
  • 5. 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 5
  • 6. Real-time communication is hard 10/3/2014 Title Version No: 0.1/ Status: DRAFT 6 • 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
  • 7. 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 7
  • 8. 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 8
  • 9. Interoperable media and platforms are not enough • To establish a media session you need to: 1. Locate the other end-point – it is probably on another network behind a NAT device 2. Negotiate the media connection • This means you need some form of signalling – Even the simplest, proprietary, exchange between end-points is a form of signalling – Standardised signalling is required for interoperable applications and services Not all applications and services need to interoperate 10/3/2014 Title Version No: 0.1/ Status: DRAFT 9
  • 10. Many applications don’t need interoperability • Online dating – you’d only expect to interact with people on the same site • Online gambling – you’d only expect to interact with people on the same site • Online gaming – you’d only expect to interact with people in the same game • Collaboration within Google Docs or Office 365 Most interactive, browser-only, applications don’t need to interoperate 10/3/2014 Title Version No: 0.1/ Status: DRAFT 10
  • 11. Many applications do need interoperability • Conferencing – do you really want to exclude the guy travelling who can’t get (or afford) a mobile data connection? • Online education – why shouldn’t I be able to listen to lectures through other routes? • Telemedicine – a huge boon for people living in remote areas (aren’t those the ones who struggle to get online?) • Call centres – can I afford to exclude customers who can’t (or don’t want to) use WebRTC? Many of the applications that need to interoperate are high-value 10/3/2014 Title Version No: 0.1/ Status: DRAFT 11
  • 12. Interoperability example: Call Centres • WebRTC can make call centres run more efficiently – No need for separate computers and hard-phones – No need for complex soft-phone and web-UI integration – Give everyone an inexpensive computer that boots into the browser and have a fully integrated web-app • WebRTC can make calling a call centre less unpleasant – Web-form or mobile app instead of IVR – Context based calling • No need to re-identify yourself • No need to explain why you are calling – Callers can be entertained while in the queue • Let them play games and watch YouTube videos • Recommend games and videos based on information from social networks 10/3/2014 Title Version No: 0.1/ Status: DRAFT 12
  • 13. The signalling triangle (non-interoperable) Server UA Media UA 10/3/2014 Title Version No: 0.1/ Status: DRAFT 13
  • 14. 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 14
  • 15. 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 15
  • 16. 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 16
  • 17. There are many interoperable signalling options • SIP – Widely used today – If you have to connect to legacy networks and equipment this is probably what you need • XMPP jingle over WebSockets – It’s a standard but it isn’t as widely used as SIP • OpenPeer – This is great for interoperable WebRTC, but has little to no support in existing devices. 10/3/2014 Title Version No: 0.1/ Status: DRAFT 17
  • 18. Using SIP with WebRTC • You have two choices – Use SIP end-to-end (SIP over WebSockets) – Use a REST (or another protocol) to SIP gateway • It is better if you do not need gateways – Gateways are expensive • You typically have to deploy more equipment • Resilience and scaling is harder 10/3/2014 Title Version No: 0.1/ Status: DRAFT 18
  • 19. With a gateway REST and RTP SIP and RTP Browser Gateway UA Single point of failure (unless complex and expensive dialog replication is used) 10/3/2014 Title Version No: 0.1/ Status: DRAFT 19
  • 20. Without a gateway SIP Proxy Resilience without replication (transaction stateful proxy as per RFC 3261) UA RTP UA 10/3/2014 Title Version No: 0.1/ Status: DRAFT 20
  • 21. SIP gives you the widest choice today • There are many open-source server implementations of SIP over WebSockets – Asterisk, FreeSwitch, Kamailio, OverSIP, reSIProcate • There are many open-source client (JavaScript) implementations of SIP over WebSockets – JAIN-SIP-Javascript, JsSIP, QoffessSIP, sipml5 • There are SDK and network vendors who are packaging this stuff to make it easy for you to use It’s the API, stupid 10/3/2014 Title Version No: 0.1/ Status: DRAFT 21
  • 22. Interoperable WebRTC Demos… 10/3/2014 Title Version No: 0.1/ Status: DRAFT 22
  • 23. Questions? Email: peter.dunkley@acision.com Twitter: @pdunkley 10/3/2014 Title Version No: 0.1/ Status: DRAFT 23