AstriCon 2015: WebRTC: How it Works, and How it Breaks

Preview:

Citation preview

WebRTC How it works How it breaks How we fixed it

CAN YOU SPEAK MAGIC?

2

Ben Klang

CAN YOU SPEAK MAGIC?

2

Ben Klang

CAN YOU SPEAK MAGIC?

2

Ben Klang

CAN YOU SPEAK MAGIC?

3

CAN YOU SPEAK MAGIC?

3

WebRTC

CAN YOU SPEAK MAGIC?

3

WebRTCHow it works

CAN YOU SPEAK MAGIC?

3

WebRTCHow it worksHow it breaks

CAN YOU SPEAK MAGIC?

3

WebRTCHow it worksHow it breaksHow we fixed it

CAN YOU SPEAK MAGIC?

WHAT WEBRTC IS

4

CAN YOU SPEAK MAGIC?

WHAT WEBRTC IS•Javascript access to Camera and Mic

4

CAN YOU SPEAK MAGIC?

WHAT WEBRTC IS•Javascript access to Camera and Mic•High Quality Video & Audio Codecs

4

CAN YOU SPEAK MAGIC?

WHAT WEBRTC IS•Javascript access to Camera and Mic•High Quality Video & Audio Codecs•Techniques for traversing NAT

4

CAN YOU SPEAK MAGIC?

WHAT WEBRTC IS•Javascript access to Camera and Mic•High Quality Video & Audio Codecs•Techniques for traversing NAT•Peer-to-Peer

4

CAN YOU SPEAK MAGIC?

WHAT WEBRTC IS•Javascript access to Camera and Mic•High Quality Video & Audio Codecs•Techniques for traversing NAT•Peer-to-Peer•A Data Channel

4

CAN YOU SPEAK MAGIC?

WHAT WEBRTC IS•Javascript access to Camera and Mic•High Quality Video & Audio Codecs•Techniques for traversing NAT•Peer-to-Peer•A Data Channel•A Tool for Developers

4

CAN YOU SPEAK MAGIC?

WHAT WEBRTC IS NOT

5

CAN YOU SPEAK MAGIC?

WHAT WEBRTC IS NOT•…a Polished End-User Product

5

CAN YOU SPEAK MAGIC?

WHAT WEBRTC IS NOT•…a Polished End-User Product•…required to interop…but may

5

CAN YOU SPEAK MAGIC?

WHAT WEBRTC IS NOT•…a Polished End-User Product•…required to interop…but may•…the same thing to every application

5

CAN YOU SPEAK MAGIC?

WHAT WEBRTC IS NOT•…a Polished End-User Product•…required to interop…but may•…the same thing to every application•…finished.

5

CAN YOU SPEAK MAGIC?

WHAT WEBRTC IS NOT•…a Polished End-User Product•…required to interop…but may•…the same thing to every application•…finished.

5

But don’t sweat it

CAN YOU SPEAK MAGIC?

Communication Topology

6

CAN YOU SPEAK MAGIC?

7

Alice BobThe Trapezoid

CAN YOU SPEAK MAGIC?

8

Alice BobThe Triangle

CAN YOU SPEAK MAGIC?

9

The WebRTC TriangleAlice Bob

Signaling

Media

CAN YOU SPEAK MAGIC?

9

The WebRTC TriangleAlice Bob

Signaling

Media

CAN YOU SPEAK MAGIC?

WebRTC Infrastructure

10

CAN YOU SPEAK MAGIC?

11

CAN YOU SPEAK MAGIC?

11

CAN YOU SPEAK MAGIC?

11

CAN YOU SPEAK MAGIC?

11

http://

Signaling

CAN YOU SPEAK MAGIC?

11

http://

Signaling

CAN YOU SPEAK MAGIC?

11

http://

Signaling

CAN YOU SPEAK MAGIC?

11

http://

Signaling

STUN & TURNNAT Traversal

CAN YOU SPEAK MAGIC?

11

http://

Signaling

STUN & TURN

SFU or MCU

NAT Traversal

Larger Multiparty Video Conferences

CAN YOU SPEAK MAGIC?

11

http://

Signaling

Recording Conferencing PSTN Gateway

STUN & TURN

SFU or MCU

NAT Traversal

Larger Multiparty Video Conferences

CAN YOU SPEAK MAGIC?

WEBRTC SIGNALING

12

CAN YOU SPEAK MAGIC?

WEBRTC SIGNALING•Can be anything you like

12

CAN YOU SPEAK MAGIC?

WEBRTC SIGNALING•Can be anything you like

12

http://

CAN YOU SPEAK MAGIC?

WEBRTC SIGNALING•Can be anything you like

12

http://

CAN YOU SPEAK MAGIC?

WEBRTC SIGNALING•Can be anything you like

12

http://

CAN YOU SPEAK MAGIC?

WEBRTC SIGNALING•Can be anything you like

12

http://

CAN YOU SPEAK MAGIC?

WEBRTC SIGNALING•Can be anything you like•Select based on application requirements

12

http://

CAN YOU SPEAK MAGIC?

WEBRTC SIGNALING•Can be anything you like•Select based on application requirements•Integrate with existing or greenfield?

12

http://

CAN YOU SPEAK MAGIC?

WEBRTC SIGNALING•Can be anything you like•Select based on application requirements•Integrate with existing or greenfield?•Federate? Or Not?

12

http://

CAN YOU SPEAK MAGIC?

WEBRTC SIGNALING•Can be anything you like•Select based on application requirements•Integrate with existing or greenfield?•Federate? Or Not?•Anonymous or Real Names?

12

http://

CAN YOU SPEAK MAGIC?CAN YOU SPEAK MAGIC?CAN YOU SPEAK MAGIC?

13

http://

CAN YOU SPEAK MAGIC?CAN YOU SPEAK MAGIC?CAN YOU SPEAK MAGIC?

13

Alice

http://

CAN YOU SPEAK MAGIC?CAN YOU SPEAK MAGIC?CAN YOU SPEAK MAGIC?

13

Alice Bob

http://

CAN YOU SPEAK MAGIC?CAN YOU SPEAK MAGIC?CAN YOU SPEAK MAGIC?

13

Hav

e Bob

call

me h

ere!

SDP:

v=0

o=al

ice 2

0518 0

IN IP

4 0.0

.0.0

s=-

t=0 0

m

=audio

54609 R

TP/SAVPF 1

09

Alice Bob

http://

CAN YOU SPEAK MAGIC?CAN YOU SPEAK MAGIC?CAN YOU SPEAK MAGIC?

13

Hav

e Bob

call

me h

ere!

SDP:

v=0

o=al

ice 2

0518 0

IN IP

4 0.0

.0.0

s=-

t=0 0

m

=audio

54609 R

TP/SAVPF 1

09

Alice Bob

http://

CAN YOU SPEAK MAGIC?CAN YOU SPEAK MAGIC?CAN YOU SPEAK MAGIC?

13

Hav

e Bob

call

me h

ere!

SDP:

v=0

o=al

ice 2

0518 0

IN IP

4 0.0

.0.0

s=-

t=0 0

m

=audio

54609 R

TP/SAVPF 1

09

Bob is at:

SDP:

v=0 o=bob 19915 0 IN IP4 0.0.0.0

s=- t=0 0 m=audio 61001 RTP/SAVPF 109

Alice Bob

http://

CAN YOU SPEAK MAGIC?CAN YOU SPEAK MAGIC?CAN YOU SPEAK MAGIC?

13

Hav

e Bob

call

me h

ere!

SDP:

v=0

o=al

ice 2

0518 0

IN IP

4 0.0

.0.0

s=-

t=0 0

m

=audio

54609 R

TP/SAVPF 1

09

Bob is at:

SDP:

v=0 o=bob 19915 0 IN IP4 0.0.0.0

s=- t=0 0 m=audio 61001 RTP/SAVPF 109

Alice Bob

http://

CAN YOU SPEAK MAGIC?CAN YOU SPEAK MAGIC?CAN YOU SPEAK MAGIC?

13

Hav

e Bob

call

me h

ere!

SDP:

v=0

o=al

ice 2

0518 0

IN IP

4 0.0

.0.0

s=-

t=0 0

m

=audio

54609 R

TP/SAVPF 1

09

Bob is at:

SDP:

v=0 o=bob 19915 0 IN IP4 0.0.0.0

s=- t=0 0 m=audio 61001 RTP/SAVPF 109

Alice Bob

http://

CAN YOU SPEAK MAGIC?CAN YOU SPEAK MAGIC?CAN YOU SPEAK MAGIC?

13

Hav

e Bob

call

me h

ere!

SDP:

v=0

o=al

ice 2

0518 0

IN IP

4 0.0

.0.0

s=-

t=0 0

m

=audio

54609 R

TP/SAVPF 1

09

Bob is at:

SDP:

v=0 o=bob 19915 0 IN IP4 0.0.0.0

s=- t=0 0 m=audio 61001 RTP/SAVPF 109

Alice Bob

http://

CAN YOU SPEAK MAGIC?

ICE/STUN/TURN

14

CAN YOU SPEAK MAGIC?

15

ICE/STUN/TURN

CAN YOU SPEAK MAGIC?CAN YOU SPEAK MAGIC?CAN YOU SPEAK MAGIC?

16

Hav

e Bob

call

me h

ere!

SDP:

v=0

o=al

ice 2

0518 0

IN IP

4 0.0

.0.0

s=-

t=0 0

m

=audio

54609 R

TP/SAVPF 1

09

Bob is at:

SDP:

v=0 o=bob 19915 0 IN IP4 0.0.0.0

s=- t=0 0 m=audio 61001 RTP/SAVPF 109

Alice Bob

http://

CAN YOU SPEAK MAGIC?CAN YOU SPEAK MAGIC?CAN YOU SPEAK MAGIC?

16

Hav

e Bob

call

me h

ere!

SDP:

v=0

o=al

ice 2

0518 0

IN IP

4 0.0

.0.0

s=-

t=0 0

m

=audio

54609 R

TP/SAVPF 1

09

Bob is at:

SDP:

v=0 o=bob 19915 0 IN IP4 0.0.0.0

s=- t=0 0 m=audio 61001 RTP/SAVPF 109

Alice Bob

SRTP

SRTP

http://

CAN YOU SPEAK MAGIC?CAN YOU SPEAK MAGIC?CAN YOU SPEAK MAGIC?

16

Hav

e Bob

call

me h

ere!

SDP:

v=0

o=al

ice 2

0518 0

IN IP

4 0.0

.0.0

s=-

t=0 0

m

=audio

54609 R

TP/SAVPF 1

09

Bob is at:

SDP:

v=0 o=bob 19915 0 IN IP4 0.0.0.0

s=- t=0 0 m=audio 61001 RTP/SAVPF 109

Alice Bob

SRTP

SRTP

http://

CAN YOU SPEAK MAGIC?CAN YOU SPEAK MAGIC?CAN YOU SPEAK MAGIC?

16

Hav

e Bob

call

me h

ere!

SDP:

v=0

o=al

ice 2

0518 0

IN IP

4 0.0

.0.0

s=-

t=0 0

m

=audio

54609 R

TP/SAVPF 1

09

Bob is at:

SDP:

v=0 o=bob 19915 0 IN IP4 0.0.0.0

s=- t=0 0 m=audio 61001 RTP/SAVPF 109

Alice Bob

SRTP

SRTP

Xhttp://

CAN YOU SPEAK MAGIC?

That’s how it works

17

CAN YOU SPEAK MAGIC?

Here’s how it breaks

18

CAN YOU SPEAK MAGIC?

ENVIRONMENTAL PROBLEMS

19

CAN YOU SPEAK MAGIC?

ENVIRONMENTAL PROBLEMS

19

•Microphone or Speakers Muted

CAN YOU SPEAK MAGIC?

ENVIRONMENTAL PROBLEMS

19

•Microphone or Speakers Muted

CAN YOU SPEAK MAGIC?

ENVIRONMENTAL PROBLEMS

19

•Microphone or Speakers Muted•Too Dark or Too Backlit

CAN YOU SPEAK MAGIC?

ENVIRONMENTAL PROBLEMS

19

•Microphone or Speakers Muted•Too Dark or Too Backlit•HW or Driver Issues

CAN YOU SPEAK MAGIC?

ENVIRONMENTAL PROBLEMS

19

•Microphone or Speakers Muted•Too Dark or Too Backlit•HW or Driver Issues•USB Headsets

CAN YOU SPEAK MAGIC?

ENVIRONMENTAL PROBLEMS

19

•Microphone or Speakers Muted•Too Dark or Too Backlit•HW or Driver Issues•USB Headsets•I’m looking at you, Windows

CAN YOU SPEAK MAGIC?

ENVIRONMENTAL PROBLEMS

19

•Microphone or Speakers Muted•Too Dark or Too Backlit•HW or Driver Issues•USB Headsets•I’m looking at you, Windows•https://test.webrtc.org/

CAN YOU SPEAK MAGIC?

USABILITY PROBLEMS

20

CAN YOU SPEAK MAGIC?

USABILITY PROBLEMS•Failing to deploy TLS Cert

20

CAN YOU SPEAK MAGIC?

USABILITY PROBLEMS•Failing to deploy TLS Cert•Not allowing user-chosen device selection

20

CAN YOU SPEAK MAGIC?

USABILITY PROBLEMS•Failing to deploy TLS Cert•Not allowing user-chosen device selection•Video element rendered off-screen

20

CAN YOU SPEAK MAGIC?

USABILITY PROBLEMS•Failing to deploy TLS Cert•Not allowing user-chosen device selection•Video element rendered off-screen•<video> or <audio> paused

20

CAN YOU SPEAK MAGIC?

BROWSER PROBLEMS

21

CAN YOU SPEAK MAGIC?

BROWSER PROBLEMS•Spec still evolving

21

CAN YOU SPEAK MAGIC?

BROWSER PROBLEMS•Spec still evolving•…though 1.0 is on the horizon

21

CAN YOU SPEAK MAGIC?

BROWSER PROBLEMS•Spec still evolving•…though 1.0 is on the horizon•Still no native IE or Safari :(

21

CAN YOU SPEAK MAGIC?

BROWSER PROBLEMS•Spec still evolving•…though 1.0 is on the horizon•Still no native IE or Safari :(•MUCH more stable than 1 year ago

21

CAN YOU SPEAK MAGIC?

BROWSER PROBLEMS•Spec still evolving•…though 1.0 is on the horizon•Still no native IE or Safari :(•MUCH more stable than 1 year ago•Chrome dropping non-TLS HTTP

21

CAN YOU SPEAK MAGIC?

BROWSER PROBLEMS•Spec still evolving•…though 1.0 is on the horizon•Still no native IE or Safari :(•MUCH more stable than 1 year ago•Chrome dropping non-TLS HTTP

21

CAN YOU SPEAK MAGIC?

BROWSER PROBLEMS•Spec still evolving•…though 1.0 is on the horizon•Still no native IE or Safari :(•MUCH more stable than 1 year ago•Chrome dropping non-TLS HTTP• https://webrtcstandards.info/

21

CAN YOU SPEAK MAGIC?

BROWSER PROBLEMS•Spec still evolving•…though 1.0 is on the horizon•Still no native IE or Safari :(•MUCH more stable than 1 year ago•Chrome dropping non-TLS HTTP• https://webrtcstandards.info/•Well, Everybody BetterRestart Their Chrome

21

CAN YOU SPEAK MAGIC?

SOLVING BROWSER INCOMPAT

22

CAN YOU SPEAK MAGIC?

SOLVING BROWSER INCOMPAT•Use a “polyfill” - Adapter.js

22

CAN YOU SPEAK MAGIC?

SOLVING BROWSER INCOMPAT•Use a “polyfill” - Adapter.js•https://github.com/webrtc/adapter

22

CAN YOU SPEAK MAGIC?

SOLVING BROWSER INCOMPAT•Use a “polyfill” - Adapter.js•https://github.com/webrtc/adapter•IE & Safari: deploy Temasys

22

CAN YOU SPEAK MAGIC?

SOLVING BROWSER INCOMPAT•Use a “polyfill” - Adapter.js•https://github.com/webrtc/adapter•IE & Safari: deploy Temasys•http://skylink.io/plugin/

22

CAN YOU SPEAK MAGIC?

SOLVING BROWSER INCOMPAT•Use a “polyfill” - Adapter.js•https://github.com/webrtc/adapter•IE & Safari: deploy Temasys•http://skylink.io/plugin/•Pick a great WebRTC service provider

22

CAN YOU SPEAK MAGIC?

SOLVING BROWSER INCOMPAT•Use a “polyfill” - Adapter.js•https://github.com/webrtc/adapter•IE & Safari: deploy Temasys•http://skylink.io/plugin/•Pick a great WebRTC service provider

22

CAN YOU SPEAK MAGIC?

WEBRTC PROBLEMS & SOLUTIONS

23

CAN YOU SPEAK MAGIC?

WEBRTC PROBLEMS & SOLUTIONS•Environmental Problems

23

CAN YOU SPEAK MAGIC?

WEBRTC PROBLEMS & SOLUTIONS•Environmental Problems•Change the environment

23

CAN YOU SPEAK MAGIC?

WEBRTC PROBLEMS & SOLUTIONS•Environmental Problems•Change the environment•Teach the user

23

CAN YOU SPEAK MAGIC?

WEBRTC PROBLEMS & SOLUTIONS•Environmental Problems•Change the environment•Teach the user•Usability Problems

23

CAN YOU SPEAK MAGIC?

WEBRTC PROBLEMS & SOLUTIONS•Environmental Problems•Change the environment•Teach the user•Usability Problems•Deploy TLS Certs!!!

23

CAN YOU SPEAK MAGIC?

WEBRTC PROBLEMS & SOLUTIONS•Environmental Problems•Change the environment•Teach the user•Usability Problems•Deploy TLS Certs!!!•Test, test, test

23

CAN YOU SPEAK MAGIC?

WEBRTC PROBLEMS & SOLUTIONS•Environmental Problems•Change the environment•Teach the user•Usability Problems•Deploy TLS Certs!!!•Test, test, test•Browser Compat & Infrastructure Problems

23

CAN YOU SPEAK MAGIC?

WEBRTC PROBLEMS & SOLUTIONS•Environmental Problems•Change the environment•Teach the user•Usability Problems•Deploy TLS Certs!!!•Test, test, test•Browser Compat & Infrastructure Problems•Lean on someone who has already fixed it

23

CAN YOU SPEAK MAGIC?

24

http://mojolingo.com @MojoLingo

@bklang bklang@mojolingo.com

http://adhearsion.com @Adhearsion

LINKS & QUESTIONS•https://test.webrtc.org/

•https://webrtcstandards.info/

•https://github.com/webrtc/adapter

•http://skylink.io/plugin/

Recommended