webrtc plugins for desktop browsers
TRANSCRIPT
Status of WebRTC plugins for Desktop Browsers
Dr. Alex GouaillardCosmo Software Consulting
Updated from the public Version from 2014’s webRTC conf and Expo talk.
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)
Androidfirefox chrome Opera ref client
24+ 29+ 18+
appRTCDEMO24+ 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/
iOSsafari 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 clientGUM 18+ 17+ 15-May Code Done 12+ appRTCDesk
PC 20+ 22+ ? ? 18+ macDC 26+ 22+ ? Code Done 18+ win
GAE N/A linux
Web
RTC
in W
ebki
t
Nov 11, 2011GoCast.it
2012 2013 2014
Sun, 22 Jul 2012webrtc4all
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
2ndOpen Source
plugin to support IE
3rd
Open Source plugin to
support IE
2012 2013 2014
History of webRTC plugins for desktop browsers (not exhaustive, not flash)AUGUST 2015
Nov 11, 2011GoCast.it
Sun, 22 Jul 2012Doubango: webrtc4all
2015
15 Jan 2014Temasys
05 Feb 2014Priologic
16 Mar 2014 - FrozenMountain
04 Apr 2014 - Tokbox
XX Nov 2014 - CafeX
2016
23 July 2014Doubango: 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.
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).
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
Extra FeaturesFeature 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.
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
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
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
NPAPIIE and Safari win, mac YES YES
ActiveXDoubango:
YES latest, no promises YES NO
NPAPIIE and Safari win, mac YES YES
everywhere ActiveX
GoCast YES 2013 (03) YES YESNPAPI 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 ActiveXTokbox 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.
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
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.