This document provides an overview of starting a webRTC project, including the different layers involved on both the client and server side. On the client side, it discusses web versus native applications and the APIs and browsers/plugins involved. On the server side, it outlines common components for signaling, ICE, media servers, load balancing, and back-end technologies. It also provides examples of popular webRTC solutions and frameworks that simplify building the different layers.
3. The layers: Client side (Web)
Web App
Client JS API BE API
WebRTC Browser ORTC Browser
webRTC shim
other Browser
webRTC plugin
W3C’s webRTC JS API
internet
( Back – End Media OR p2p ) && ( Back – End ICE OR nothing ) Back – End Signaling
IETF’s rtcweb
4. The layers: Client side (Native)
Native App
Client native API BE API
Client native SDK
internet
( Back – End Media OR p2p ) && ( Back – End ICE OR nothing ) Back – End Signaling
IETF’s rtcweb
5. Web App
Client API BE API
WebRTC Browsers
other Browser
webRTC plugin
internet
The big picture
Native App Android
Android
API
BE API
Android
SDK
Native App iOS
iOS API BE API
iOS
SDK
Native Desktop App
Desk. API BE API
Desktop
SDK
Load Balancing,, Sessions and Security
Sig
Server
ICE
Server
API
Server
Billing
Server
Store
Server
Media
Server
Intero
p
Server
Stats
C F O
Load
Test
6. main feature
client scalability
client types
server scalability
testing / QoS /
Analytics
IE / Safari
support
interop
Back End
Technology
Web App
Client API BE API
WebRTC Browsers
other Browser
webRTC plugin
internet
The big picture : appRTC
(GAE back-end)
Native App Android
Android
API
BE API
Android
SDK
Native App iOS
iOS API BE API
iOS
SDK
Native Desktop App
Desk. API BE API
Desktop
SDK
Load Balancing,, Sessions and Security
Sig
Server
ICE
Server
API
Server
Billing
Server
Store
Server
Media
Server
Intero
p
Server
Stats
C F O
Load
Test
9
7. Client API BE API
WebRTC Browsers
other Browser
webRTC plugin
internet
The big picture :
PeerJS / NTT Communications’ SkyWay
Native App Android
Android
API
BE API
Android
SDK
Native App iOS
iOS API BE API
iOS
SDK
Native Desktop App
Desk. API BE API
Desktop
SDK
Load Balancing,, Sessions and Security
Sig
Server
ICE
Server
API
Server
Billing
Server
Store
Server
Media
Server
Intero
p
Server
Stats
C F O
Load
Test
Web App
8. main feature
client scalability
client types
server scalability
testing / QoS /
Analytics
IE / Safari
support
interop
Back End
Technology
Web App (tawk.com)
Client API BE API
WebRTC Browsers
other Browser
webRTC plugin
internet
The big picture : priologic
(tawk, easyrtc)
Native App Android ?
Android
API
BE API
Android
SDK
Native App iOS ?
iOS API BE API
iOS
SDK
Native Desktop App
Desk. API BE API
Desktop
SDK
Load Balancing,, Sessions and Security
Sig
Server
ICE
Server
API
Server
Billing
Server
Store
Server
Media
Server
Intero
p
Server
Stats
C F O
Load
Test
10
17. State of the technology
A. Gouaillard and F. Regnoux:
appRTCDesk
(github.com/agouaillard/appRTCDesk)
A. Gouaillard and S. Hussain:
Video Support for iOS
(svn commits #5671, #5518)
Android
firefox chrome Opera ref client
24+ 29+ 18+
appRTCDEMO
24+ 29+ 18+
24+ 29+ 18+
N/A
https://blogs.windows.com/msedgedev/2015/05/13/announcing-media-capture-functionality-in-microsoft-edge/
http://webrtcbydralex.com/index.php/2015/08/29/webrtc-in-safari/
iOS
safari firefox chrome Opera ref client
against apple policy (2.17)
appRTCDEMO
N/A
A. Gouaillard and A. Tiamou:
Webrtc.org back end for webkit
(github.com/WebRTCinWebKit/webkit/tree/webkit-libwebrtc)
A. Gouaillard and Y. Liu:
datachannel for webkit
(github.com/WebRTCinWebKit/webkit/tree/datachannel)
Desktop
chrome firefox IE Safari Opera ref client
GUM 18+ 17+ 15-May Code Done 12+ appRTCDesk
PC 20+ 22+ ? ? 18+ mac
DC 26+ 22+ ? Code Done 18+ win
GAE N/A linux
WebRTCinWebkit
18. 2012 2013 2014
History of webRTC plugins for desktop browsers (not exhaustive, not flash)
AUGUST 2015
Nov 11, 2011
GoCast.it
Sun, 22 Jul 2012
Doubango: webrtc4all
2015
15 Jan 2014
Temasys
05 Feb 2014
Priologic
16 Mar 2014 - FrozenMountain
04 Apr 2014 - Tokbox
XX Nov 2014 - CafeX
2016
23 July 2014
Doubango: webrtc-
everywhere
- Top lines are non generic plugins, that require that you use the plugin vendor Back end.
- Bottom graph is about generic plugins, that can be used with any back-end.
- Lines that merge back into the X axis are dead products.
- webrtc4all last commit was in jan 2015, and doubango stated its intention to replace it with
webrtc-everywhere on the corresponding mailing list.
19. Extra Features
Feature Comparison
Feature Temasys Doubango Dr Alex
Type Free Commercial same code Free
Open source NO YES YES
Source code licence N/A GPL Commercial Apache
Full WebRTC specifications support for Internet Explorer & Safari YES YES YES YES
Regularly scheduled updates YES Not Really ? TBD
Custom branded plugin binary NO YES YES YES
Control over auto-update NO YES doesn't have YES
Control over the distribution of binary/installer NO YES YES YES
Plugin binary audited / certified by 3rd party NO YES No need No need
Plugin binary and/or installer signing NO YES YES YES
Screen Sharing NO YES YES YES
Code Escrow (3rd party charges apply) NO YES No Need No Need
Embed plugin binary in custom installer / user flow NO YES YES YES
HTTP Proxy NO YES YES YES
H.264 (3rd party charges may apply) NO YES not yet YES
Support for integration & ongoing issue resolution best effort SLA best effort SLA best effort
Price free x0,000/y free ? free
NOTE: MS support for IE, and Cisco support for H264. Vidyo plans to add VP9 SVC ahead, for tests.
Full integration in Chrome, Firefox and IE/Edge test suites, adapter.js, etc ….
21. Web App
Client API BE API
WebRTC Browsers
other Browser
webRTC plugin
internet
The big picture
DIY – Cheat Sheet
Native App Android
Android
API
BE API
Android
SDK
Native App iOS
iOS API BE API
iOS
SDK
Native Desktop App
Desk. API BE API
Desktop
SDK
Load Balancing,, Sessions and Security
Sig
Server ICE
Server
API
Server
Billing
Server
Store
Server
Media
Server
Intero
p
Server
Stats
C F O
Load
Test
• easyrtc,
• signalmaster / simplertc,
• peerjs-server / peerjs
• rtc.io
Signaling
• holla
• openPeer
• Matrix
• XMPP (jabber)
• lynckia/licode
• Intel CS for WebRTC
• meetecho (janus)
• Kurento
• jitsi (meetme)
• Meedoze
• Kamailio
• FreeSwitch
• Asterisk
• Turn-rfc5766
• Coturn
• Resiprocate
• Return
• Google appRTC
• Ericsson OWR
• Intel CS
• Google appRTC
• Ericsson OWRIMTC
Doubango
webRTCinWebKit
(not mature)
Editor's Notes
Sun, 22 Jul 2012
Add sarandogou and the failure of priologic
JO 744
Alex 86
XR 26
Fr. 23
Yin 13