Post on 13-Apr-2017
transcript
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•…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/