21
Starting your webRTC project Dr Alex Gouaillard Citrix, IMTC, W3C, IETF

DYI - Starting your own webrtc project

Embed Size (px)

Citation preview

Page 1: DYI - Starting your own webrtc project

Starting your webRTC project

Dr Alex Gouaillard

Citrix,IMTC, W3C, IETF

Page 2: DYI - Starting your own webrtc project

The big picture

Page 3: DYI - Starting your own webrtc project

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

Page 4: DYI - Starting your own webrtc project

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

Page 5: DYI - Starting your own webrtc project

Web App

Client API BE API

WebRTC Browsers

other Browser

webRTC plugin

internet

The big picture

Native App Android

Android

APIBE 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

ServerBilling

ServerStore

Server

Media

Server

Intero

p

ServerStats

C F O

Load

Test

Page 6: DYI - Starting your own webrtc project

main feature

client scalability

client types

server scalability

testing / QoS /Analytics

IE / Safarisupport

interop

Back EndTechnology

Web App

Client API BE API

WebRTC Browsers

other Browser

webRTC plugin

internet

The big picture : appRTC(GAE back-end)

Native App Android

Android

APIBE 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

ServerBilling

ServerStore

Server

Media

Server

Intero

p

ServerStats

C F O

Load

Test

9

Page 7: DYI - Starting your own webrtc project

Client API BE API

WebRTC Browsers

other Browser

webRTC plugin

internet

The big picture : PeerJS / NTT Communications’ SkyWay

Native App Android

Android

APIBE 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

ServerBilling

ServerStore

Server

Media

Server

Intero

p

ServerStats

C F O

Load

Test

Web App

Page 8: DYI - Starting your own webrtc project

main feature

client scalability

client types

server scalability

testing / QoS /Analytics

IE / Safarisupport

interop

Back EndTechnology

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

APIBE 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

ServerBilling

ServerStore

Server

Media

Server

Intero

p

ServerStats

C F O

Load

Test

10

Page 9: DYI - Starting your own webrtc project

Manual Single page testsweb-platform, adapter.js, whatever

50

Dev Nightly

50 50 49 49 - 47 0 4

htt

ps:

//g

ith

ub

.co

m/w

3c/

web

-pla

tfo

rm-t

ests

htt

ps:

//g

ith

ub

.co

m/w

ebrt

c/a

da

pte

r

© Dr. Alex Gouaillard @ Citrix Systems, 2016. Document provided under CC BY-NC 4.0

Page 10: DYI - Starting your own webrtc project

Automated Single page testsweb-platform, adapter.js, whatever

?

Dev Nightly

50 49 ?? ? ? ? ?

htt

ps:

//g

ith

ub

.co

m/w

ebrt

c/a

da

pte

r/tr

ee/m

ast

er/t

est

© Dr. Alex Gouaillard @ Citrix Systems, 2016. Document provided under CC BY-NC 4.0

Page 11: DYI - Starting your own webrtc project

Automated Single page testsWIP (AFAIK)

?

Dev Nightly

50 49 ?? ? ? ? ?

Nils IMTC Alex

© Dr. Alex Gouaillard @ Citrix Systems, 2016. Document provided under CC BY-NC 4.0

Page 12: DYI - Starting your own webrtc project

Interop Tests (Debian)©

Dr.

Ale

x G

ou

aill

ard

@ C

itri

x Sy

stem

s, 2

01

6. D

ocu

men

t p

rovi

ded

un

der

CC

BY

-NC

4.0

Page 13: DYI - Starting your own webrtc project

Interop Tests (Win10)

IMTC

IMTC

IMTC

© D

r. A

lex

Go

ua

illa

rd @

Cit

rix

Syst

ems,

20

16

. Do

cum

ent

pro

vid

ed u

nd

er C

C B

Y-N

C 4

.0

Page 14: DYI - Starting your own webrtc project

Wh

at w

e A

CTU

ALL

Yte

st t

od

ay

© Dr. Alex Gouaillard @ Citrix Systems, 2016. Document provided under CC BY-NC 4.0

Page 15: DYI - Starting your own webrtc project

WebRTC Pluginsfor safari and IE

Page 16: DYI - Starting your own webrtc project

The data from the field

Page 17: DYI - Starting your own webrtc project

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+

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/

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

We

bR

TC in

We

bki

t

Page 18: DYI - Starting your own webrtc project

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 19: DYI - Starting your own webrtc project

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

Page 20: DYI - Starting your own webrtc project

Wrap up and Take Home

Page 21: DYI - Starting your own webrtc project

Web App

Client API BE API

WebRTC Browsers

other Browser

webRTC plugin

internet

The big pictureDIY – Cheat Sheet

Native App Android

Android

APIBE 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

ServerStore

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)