Astricon WebRTC Update

54
WebRTC Astricon 2016

Transcript of Astricon WebRTC Update

Page 1: Astricon WebRTC Update

WebRTCAstricon 2016

Page 2: Astricon WebRTC Update

AboutMe

1October2016 ChadWallaceHart 2

HeadofStrategicProductshttps://[email protected]

AblogforWebRTCdevelopershttps://webrtcHacks.com@webrtcHacks

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

@[email protected]

Page 3: Astricon WebRTC Update

3

A recap of the past 5 years…

Page 4: Astricon WebRTC Update

4

World Class VoIP Engine for Free

media engine

video codec

audio codec

Page 5: Astricon WebRTC Update

5

Internet & Web Standard

Page 6: Astricon WebRTC Update

6

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

Peer-to-peerRTCconnectivity

peerConnection

StreamCapture

getUserMedia

Arbitraryp2pdatatransmission

dataChannel

Camera,Microphone,Screen

Page 7: Astricon WebRTC Update

7

State of the art technology

Medianegotiation

Firewall/NATTraversal

Audiocodecs

Videocodecs

Flowcontrols

Encryption

Page 8: Astricon WebRTC Update

8

Massive community

.org

Toomanyprojectstoputonaslide

Page 9: Astricon WebRTC Update

9

This is awesome!

Page 10: Astricon WebRTC Update

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

Page 11: Astricon WebRTC Update

11

Who uses WebRTC?

Page 12: Astricon WebRTC Update

12

Who uses WebRTC?

Page 13: Astricon WebRTC Update

13

Who uses WebRTC?

Page 14: Astricon WebRTC Update

14

Who uses WebRTC?Old school telephony people

Page 15: Astricon WebRTC Update

15

Who uses WebRTC?New school telephony people

Page 16: Astricon WebRTC Update

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

Page 17: Astricon WebRTC Update

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

Page 18: Astricon WebRTC Update

18

WebRTC is not available everywhere

Page 19: Astricon WebRTC Update

19

3 ways Apple hurts WebRTC

Safari OtherBrowserAppsoniOS

WebViewforiOS

Nosupportfordesktopormobile

70%ofusageoniOS

Nosupportforeasynativeapps

20%oftimesharevs.Browser,Android,Desktop

NooneelseisallowedtomakeaWebRTCBrowser

30%ofbrowsershareoniOS

❌ ❌ ❌

Page 20: Astricon WebRTC Update

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

Page 21: Astricon WebRTC Update

21

How Facebook handles browsers without WebRTC

Page 22: Astricon WebRTC Update

22

Not completely lost on the Safari…

Page 23: Astricon WebRTC Update

23

Page 24: Astricon WebRTC Update

24

Edge is making steady progress

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

Page 25: Astricon WebRTC Update

25

Edgeisgrowing,butstilltiny

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

Page 26: Astricon WebRTC Update

26

IEwillcontinuetohavemoreshareforsometime

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

Page 27: Astricon WebRTC Update

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

Page 28: Astricon WebRTC Update

28

Page 29: Astricon WebRTC Update

29

Learning WebRTC can be hard

Page 30: Astricon WebRTC Update

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

Page 31: Astricon WebRTC Update

31

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

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

Page 32: Astricon WebRTC Update

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.

Page 33: Astricon WebRTC Update

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.

Page 34: Astricon WebRTC Update

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.

Page 35: Astricon WebRTC Update

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/

Page 36: Astricon WebRTC Update

36

About standards…

1October2016

Page 37: Astricon WebRTC Update

37

NV

Standards converge

ThenextversionofWebRTCincorporateswhat’snewinORTCwhilemaintainingbackwardcompatibilitywithtoday’sWebRTC

Page 38: Astricon WebRTC Update

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

Page 39: Astricon WebRTC Update

WhatyoucandowithWebRTC1.0objects

• "Warmup"mediapathwhilethegettingatrackandringing

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

• Setamaxbandwidth• ObtaindetailedstatusofindividualICEandDTLStransports

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

Page 40: Astricon WebRTC Update

40

🙂

1October2016

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

Readytogo!

Page 41: Astricon WebRTC Update

41

Still not done…

1October2016

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

🙁

Page 42: Astricon WebRTC Update

4242

Page 43: Astricon WebRTC Update

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.

Page 44: Astricon WebRTC Update

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

Page 45: Astricon WebRTC Update

4545

Page 46: Astricon WebRTC Update

46

Page 47: Astricon WebRTC Update

47

Be adaptive

YourJavaScriptcode

adapter.js

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

Page 48: Astricon WebRTC Update

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.

Page 49: Astricon WebRTC Update

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.

Page 50: Astricon WebRTC Update

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.

Page 51: Astricon WebRTC Update

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.

Page 52: Astricon WebRTC Update

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.

Page 53: Astricon WebRTC Update

53

Be part of the community

.org

++waymorethanyoucanstickonaslide…

Page 54: Astricon WebRTC Update

AboutMe

1October2016 ChadWallaceHart 54

HeadofStrategicProductshttps://[email protected]

AblogforWebRTCdevelopershttps://webrtcHacks.com@webrtcHacks

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

@[email protected]