1. Status of WebRTC plugins for
Desktop Browsers
Dr. Alex Gouaillard
Cosmo Software Consulting
Updated from the public Version from 2014’s webRTC conf and Expo talk.
2. 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
3. Nov 11, 2011
GoCast.it
2012 2013 2014
Sun, 22 Jul 2012
webrtc4all
June
16 Mar 2014 - FrozenMountain
04 Apr 2014 - Tokbox
15 Jan 2014 -
Temasys
05 Feb 2014 - Priologic
History of webRTC plugins for desktop browsers (not exhaustive, not flash)
JUNE 2014
1st
Open Source
plugin to
support IE
2nd
Open Source
plugin to
support IE
3rd
Open Source
plugin to
support IE
4. 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.
5. Which WebRTC Stack
Actually, it’s pretty simple:
- stacks: webrtc.org or OWR(*)
- stack that compiles under windows (IE):
webrtc.org
Note: Doubango originally used their own stack
in webrtc4all, but moved to webrtc.org for its
replacement webrtc-everywhere.
(*) working on it (bug #2).
6. APIs – webRTC is a moving target
- Doubango webrtc4all: complete up to JSEP-02 (2012)
- GoCast.it: complete up to JSEP-03 (2013)
- Doubango webrtc-everywhere: JSEP-11, webRTC 1.0
- Temasys: JSEP-11, webRTC 1.0
No plugin implement the specs, since they do not support promises.
- Doubango will have to implement it manually
- Temasys depends on FireBreath which version 2.0 supports promises …
- Maybe … it’s not finalized (*)
(*) working on
7. Extra Features
Feature Comparison
Feature Temasys Doubango
Type Free Commercial same code
Open source NO YES
Source code licence N/A GPL Commercial
Full WebRTC specifications support for Internet Explorer & Safari YES YES YES
Regularly scheduled updates YES Not Really ?
Custom branded plugin binary NO YES YES
Control over auto-update NO YES doesn't have
Control over the distribution of binary/installer NO YES YES
Plugin binary audited / certified by 3rd party NO YES YES
Plugin binary and/or installer signing NO YES YES
Screen Sharing NO YES YES
Code Escrow (3rd party charges apply) NO YES YES
Embed plugin binary in custom installer / user flow NO YES YES
HTTP Proxy NO YES YES
H.264 (3rd party charges apply) NO YES not yet
Support for integration & ongoing issue resolution best effort SLA best effort SLA
Price free x0,000/y free ?
NOTE: support for H264 is coming within a month, as of september 2015.
8. Test suite
- Test Suite: “if it ain’t tested, it’s broken.”
- webRTC is a moving target,
you have to test with the same standards as the browsers
You have to test against the browsers
Temasys Test suite leveraging Karma, mocha, chai and jenkins is much more
advanced and open source (as in BSD). Anyone developping a plugin should
inspire him/herself:
https://github.com/Temasys/AdapterJS
9. JS Integration
- Everybody modifies Adapter.js.
- Temasys and webrtc-everywhere are quite different still
While most of the code of the webrtc-everywhere project is GPL, and you might
want to stay away from it unless your lawyer told you it s safe, their adapter.js is
BSD, feel free to take a look:
https://github.com/sarandogou/webrtc/blob/master/samples/web/js/adapter.js
10. Comparison: Overview
provider webRTC API API version Security middleware plugin type Browser support OS Support Test Suite Integration
Temasys YES
latest, no
promises
YES YES
NPAPI
IE and Safari win, mac YES YES
ActiveX
Doubango:
YES
latest, no
promises
YES NO
NPAPI
IE and Safari win, mac YES YES
everywhere ActiveX
GoCast YES 2013 (03) YES YES
NPAPI IE and Safari win, mac
YES YES
ActiveX not complete not complete
Doubango:
YES 2012 (02) YES NO
NPAPI
IE and Safari win NO YES
4all ActiveX
Tokbox
NO - YES YES ActiveX IE win N/A YES
Priologic
NO - NO NO ActiveX IE win NO NO
NOTES:
- gocast, doubango’s webrtc4all and priologic plugins project are no longer active.
- Interestingly, tokbox is based on FireBreath but does not support Safari. They
mentionned that their Safari users had no problem using Chrome, while their
entreprise windows clients are stuck with IE.
- While Doubango handwrite each version of their webrtc-everywhere plugin (win,
mac), the overhead does not seem to be too high, as the webrtc.org stack is
already cross platform.
11. Libwebrtc is a great asset, …
and a great pain
• Thankfully, separate projects provide
automation and trusted binaries to shield
developers from possible problems:
Webrtcbydralex.com
12. Future Difficulties: ORTC
• It’s the right API, however it s a bigger API
– The amount of work to support what s coming in
Q4 in the browser will leave 25% of the vendors
on the side.
Editor's Notes
Sun, 22 Jul 2012
Add sarandogou and the failure of priologic
Sun, 22 Jul 2012
Add sarandogou and the failure of priologic
JO 744
Alex 86
XR 26
Fr. 23
Yin 13