Astricon WebRTC Update

Post on 13-Jan-2017

154 views 0 download

Transcript of Astricon WebRTC Update

WebRTCAstricon 2016

AboutMe

1October2016 ChadWallaceHart 2

HeadofStrategicProductshttps://www.voxbone.comcwhart@voxbone.com

AblogforWebRTCdevelopershttps://webrtcHacks.com@webrtcHacks

WebRTCevents&videoshttps://www.krankygeek.com/@webrtclive

@chadwallacehartchad@chadwallacehart.com

3

A recap of the past 5 years…

4

World Class VoIP Engine for Free

media engine

video codec

audio codec

5

Internet & Web Standard

6

3(ish) Web-friendly(+native) API’s

Peer-to-peerRTCconnectivity

peerConnection

StreamCapture

getUserMedia

Arbitraryp2pdatatransmission

dataChannel

Camera,Microphone,Screen

7

State of the art technology

Medianegotiation

Firewall/NATTraversal

Audiocodecs

Videocodecs

Flowcontrols

Encryption

8

Massive community

.org

Toomanyprojectstoputonaslide

9

This is awesome!

10

Who uses WebRTC?

WebRTCdetails:https://webrtchacks.com/facebook-webrtc/Imagesource:http://www.nerddict.com/2016/06/download-facebook-messenger-for-windows.html

300 million monthly active usersLess than 3 years since launch

11

Who uses WebRTC?

12

Who uses WebRTC?

13

Who uses WebRTC?

14

Who uses WebRTC?Old school telephony people

15

Who uses WebRTC?New school telephony people

16

WebRTC After 5 years: Google’s stats

• 2 Billion+ WebRTC Browsers• 1 Billion+ minutes/week• 950+ companies & projects• 5 Billion+ WebRTC app downloads

https://groups.google.com/forum/#!topic/discuss-webrtc/I0GqzwfKJfQhttps://docs.google.com/presentation/d/1JwnW6v3OM0RfoDYrPPTJrDNeIpidgh7hF_k5E1j2oKM/edit?usp=sharing

1717Image source: http://www.digitaldealer.com/how-to-handle-recalls-and-other-bad-news/

18

WebRTC is not available everywhere

19

3 ways Apple hurts WebRTC

Safari OtherBrowserAppsoniOS

WebViewforiOS

Nosupportfordesktopormobile

70%ofusageoniOS

Nosupportforeasynativeapps

20%oftimesharevs.Browser,Android,Desktop

NooneelseisallowedtomakeaWebRTCBrowser

30%ofbrowsershareoniOS

❌ ❌ ❌

20

Apple Challenge: who do you care about?

©2016ChadWallaceHartConsulting

WebRTCSupport

WithinOSShare

AllBrowserShare*

AllTimeShare*

Desktop

brow

ser SafarionOSX x ~50% ~2% ~1%

Chrome/FirefoxonOSX ~50% ~2% ~1%

iOS

Brow

ser SafarioniOS ~70% ~20% ~2%

Chrome/Firefox oniOS ~30% ~10% ~1%

Mob

ileiOSap

p Webview oniOS- - ~20%

BringyourownRTConiOS x

SharefiguresareroughestimatesfromChadWallaceHartconsultingandstatcounter.com*Desktop&mobile

21

How Facebook handles browsers without WebRTC

22

Not completely lost on the Safari…

23

24

Edge is making steady progress

https://developer.microsoft.com/en-us/microsoft-edge/platform/status/screencapture/?q=category%3Arealtimecommunication

25

Edgeisgrowing,butstilltiny

http://gs.statcounter.com/#desktop-browser-ww-monthly-201606-201606-bar

26

IEwillcontinuetohavemoreshareforsometime

http://gs.statcounter.com/#desktop-browser-ww-monthly-201606-201606-bar

27

No IE, but lots of Microsoft

OldBrowser NewBrowser Comms App NativeApp

❌ ✔ ✔ ✔>500Musers >100M users >300MMAU >350MWin10users

+8.1 installbaseNosupportplanned ORTC+WebRTCsupport SkypeforWebmovingto

WebRTCAddingVisualStudiotoolingthat

includesWebRTC

WebRTC at Microsoft

28

29

Learning WebRTC can be hard

30

WebRTC requires you learn (or pay)WebTechnology PopularOpenSource Framework

WebCMS WordPress,Joomla,Drupal…

Front-End Development jQuery,Ember.js, Angular.js,React..

Front-endDesign Bootstrap, MaterialDesign,…

WebGL Babylon,three.js,…

WebSockets Socket.io

WebRTC

31

SignalingSTUN/TURNMedia server Photo by Flickr user Alex (CC BY-2.0)

https://flic.kr/p/9v7Kgx

32

Don’t forget TURN servers

14%

6%

The biggest issue in new WebRTC deployments is often the lack of a TURN servers.The rule of thumb is TURN is needed by about 20% of users, but this can very a lot depending on your user base. Tokbox’s figures from earlier this year are above.

33

Chrome requires SSL

getUserMedia() no longer works on insecure origins. To use this feature, you should consider switching your application to a secure origin, such as HTTPS. See https://goo.gl/rStTGz for more details.

34ChadWallaceHart 34

Codecs were a major point of contention in WebRTC.

That was resolved in the standards in late 2014.

There was a still a question when Google would join Firefox and support H.264 in Chrome.

EveryonedoesH.264/AVCnow..mostly

1October2016 ChadWallaceHart 35

https://groups.google.com/forum/#!topic/discuss-webrtc/bDfxOA8XiJI https://blogs.windows.com/msedgedev/2016/05/27/previewing-h-264avc-for-ortc/

36

About standards…

1October2016

37

NV

Standards converge

ThenextversionofWebRTCincorporateswhat’snewinORTCwhilemaintainingbackwardcompatibilitywithtoday’sWebRTC

ManyORTCobjectsarealreadyinWebRTC1.0PeerConnection

.getSenders()

.getReceivers()// Name TBD.addTransceiver(kind).sctp...

RtpSender.track.transport.getCapabilities().getParameters().setParameters(params).replaceTrack(track)...

RtpReceiver.track.transport.getCapabilities()

.getContributingSources()...

DtlsTransport.transport.state.getRemoteCertificates() .onstatechange...

IceTransport.state.getLocalParameters(), .getRemoteParameters(), .getLocalCandidates().getRemoteCandidates().getSelectedCandidatePair().onstatechange...

SctpTransport.transport

DataChannel.transport

RtpParameters.codecs.encodings...

RtpCodecParameters(read only).mimeType.payloadType...

RtpEncodingParameters.active.maxBandwidth(read only).ssrc...

IceParameters(read only).usernameFragment.password

DtlsParameters...

Source:https://docs.google.com/presentation/d/1oDVgPQtYpQNRkgiP51OQJS1sOW6mjWcGvp129Bovd28

WhatyoucandowithWebRTC1.0objects

• "Warmup"mediapathwhilethegettingatrackandringing

• Changethesendcodec(withoutSDPmunging)• Changethecamerasourceinstantly(fronttoback)• Enable/disablesendingofmediainstantly(withoutsignalling)

• Setamaxbandwidth• ObtaindetailedstatusofindividualICEandDTLStransports

Source:https://docs.google.com/presentation/d/1oDVgPQtYpQNRkgiP51OQJS1sOW6mjWcGvp129Bovd28

40

🙂

1October2016

https://www.w3.org/TR/mediacapture-streams/

Readytogo!

41

Still not done…

1October2016

https://www.w3.org/TR/webrtc/

🙁

4242

43

WebRTC is crushing it!

13M 15M185M

405M500M+users

2B+devices

0

500

1000

1500

2000

2500

3000

IMS RCS VoLTE Skype WebRTC

MillionsofU

sers

VoIPTechnologyUsersafter5years

“Users” of various VoIP technologies roughly 5 years after their were introduced. Note “user” often means installs or supported devices.

44

The community is still growing..

0

50

100

150

200

250

300

350

Mar Jul Sep Nov Jan Mar May Jul Sep Nov Jan Mar May Jul Sep Nov Jan Mar May Jul Sep Nov Jan Mar May Jul Sep Nov Jan Mar May Jul

2011 2012 2013 2014 2015 2016

NewWebRTCcodecontributors/monthonGitHub

4545

46

47

Be adaptive

YourJavaScriptcode

adapter.js

Adapter.js helps your code interoperate with various browser implementation differences and standard changes. Use it!

48

Be early

InsiderPreview(slow)

InsiderPreview(fast)

Browser vendors have many pre-release channels to help you test your code before an auto-update breaks something.

49

Be continuous

ContinuousIntegration/Deployment

No one has time for formal a full stop-QA process anymore. Get over it and leverage modern approaches of continuous integration and deployment to ensure quality.

BeintegratedTelcoNetworks

Client Vendor1

Telco1

Telco2

ClientVendor2

EnterpriseNetworks WebComms Networks

Handset1

Telco

UCvendorPBX

SBC

app web

Webco

Webco

Webco

app web

app web

©2016ChadWallaceHartConsulting

The WebRTC provider needs to also provide the user interface and experience. There is no phone/client vendor to deal with these aspects – it is your problem but also an opportunity for you to really learn what matters to your end users and differentiate your offering.

51

Be at the front-end

WebRTC is just as much or more about the front-end than it is the back-end. Become an expert in web development and don’t forget about front-end technologies.

52

Be mobile

Image source: https://www.mobilesmith.com/html5-vs-native-debate-is-over/

Native mobile app development is one of the hardest aspects of WebRTC. Fortunately there are more options than ever for mobile app development.

53

Be part of the community

.org

++waymorethanyoucanstickonaslide…

AboutMe

1October2016 ChadWallaceHart 54

HeadofStrategicProductshttps://www.voxbone.comcwhart@voxbone.com

AblogforWebRTCdevelopershttps://webrtcHacks.com@webrtcHacks

WebRTCevents&videoshttps://www.krankygeek.com/@webrtclive

@chadwallacehartchad@chadwallacehart.com