webrtc plugins for desktop browsers

12
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.

Upload: alexandre-gouaillard

Post on 14-Apr-2017

1.364 views

Category:

Technology


1 download

TRANSCRIPT

Page 1: Webrtc plugins for Desktop Browsers

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.

Page 2: Webrtc plugins for Desktop Browsers

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

Page 3: Webrtc plugins for Desktop Browsers

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

Page 4: Webrtc plugins for Desktop Browsers

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.

Page 5: Webrtc plugins for Desktop Browsers

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).

Page 6: Webrtc plugins for Desktop Browsers

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

Page 7: Webrtc plugins for Desktop Browsers

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.

Page 8: Webrtc plugins for Desktop Browsers

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

Page 9: Webrtc plugins for Desktop Browsers

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

Page 10: Webrtc plugins for Desktop Browsers

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.

Page 11: Webrtc plugins for Desktop Browsers

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

Page 12: Webrtc plugins for Desktop Browsers

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.