WebRTC is an exciting new technology, perhaps the most exciting thing to happen to voice communication since the invention of Voice over IP. With WebRTC, we are no longer limited to a disjointed communication experience with poor quality audio on antiquated networks. Now we have the ability to put high-definition audio and video where it will have the most impact: right in line with the business processes that benefit the most from it.
This session will present an overview of how WebRTC works, reviewing both the network services that support it and the user-facing software that delivers it. We will look at how Asterisk can be used to give WebRTC additional capabilities that aren’t possible with browsers alone, and how to deploy Asterisk to get the most out of this powerful combination.
As with all new technology, however, there are rough edges. In the final part of this presentation, we will look at the common ways that WebRTC can break down, from technical deployment problems to user interface and design issues. These lessons are drawn from real-world experience deploying WebRTC over the last 3 years and multiple applications that are in production today.
11. CAN YOU SPEAK MAGIC?
WHAT WEBRTC IS
•Javascript access to Camera and Mic
4
12. CAN YOU SPEAK MAGIC?
WHAT WEBRTC IS
•Javascript access to Camera and Mic
•High Quality Video & Audio Codecs
4
13. CAN YOU SPEAK MAGIC?
WHAT WEBRTC IS
•Javascript access to Camera and Mic
•High Quality Video & Audio Codecs
•Techniques for traversing NAT
4
14. 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
15. 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
16. 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
18. CAN YOU SPEAK MAGIC?
WHAT WEBRTC IS NOT
•…a Polished End-User Product
5
19. CAN YOU SPEAK MAGIC?
WHAT WEBRTC IS NOT
•…a Polished End-User Product
•…required to interop…but may
5
20. 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
21. 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
22. 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
39. CAN YOU SPEAK MAGIC?
WEBRTC SIGNALING
•Can be anything you like
12
40. CAN YOU SPEAK MAGIC?
WEBRTC SIGNALING
•Can be anything you like
12
http://
41. CAN YOU SPEAK MAGIC?
WEBRTC SIGNALING
•Can be anything you like
12
http://
42. CAN YOU SPEAK MAGIC?
WEBRTC SIGNALING
•Can be anything you like
12
http://
43. CAN YOU SPEAK MAGIC?
WEBRTC SIGNALING
•Can be anything you like
12
http://
44. CAN YOU SPEAK MAGIC?
WEBRTC SIGNALING
•Can be anything you like
•Select based on application
requirements
12
http://
45. CAN YOU SPEAK MAGIC?
WEBRTC SIGNALING
•Can be anything you like
•Select based on application
requirements
•Integrate with existing or greenfield?
12
http://
46. 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://
47. 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://
48. CAN YOU SPEAK MAGIC?CAN YOU SPEAK MAGIC?CAN YOU SPEAK MAGIC?
13
http://
49. CAN YOU SPEAK MAGIC?CAN YOU SPEAK MAGIC?CAN YOU SPEAK MAGIC?
13
Alice
http://
50. CAN YOU SPEAK MAGIC?CAN YOU SPEAK MAGIC?CAN YOU SPEAK MAGIC?
13
Alice Bob
http://
51. CAN YOU SPEAK MAGIC?CAN YOU SPEAK MAGIC?CAN YOU SPEAK MAGIC?
13
H
aveBob
callm
ehere!
SDP:
v=0o=alice20518
0
IN
IP4
0.0.0.0
s=-t=0
0m
=audio54609
RTP/SAVPF
109
Alice Bob
http://
52. CAN YOU SPEAK MAGIC?CAN YOU SPEAK MAGIC?CAN YOU SPEAK MAGIC?
13
H
aveBob
callm
ehere!
SDP:
v=0o=alice20518
0
IN
IP4
0.0.0.0
s=-t=0
0m
=audio54609
RTP/SAVPF
109
Alice Bob
http://
53. CAN YOU SPEAK MAGIC?CAN YOU SPEAK MAGIC?CAN YOU SPEAK MAGIC?
13
H
aveBob
callm
ehere!
SDP:
v=0o=alice20518
0
IN
IP4
0.0.0.0
s=-t=0
0m
=audio54609
RTP/SAVPF
109
Bob
is
at:
SDP:
v=0o=bob
19915
0
IN
IP4
0.0.0.0
s=-t=0
0m
=audio
61001
RTP/SAV
PF
109
Alice Bob
http://
54. CAN YOU SPEAK MAGIC?CAN YOU SPEAK MAGIC?CAN YOU SPEAK MAGIC?
13
H
aveBob
callm
ehere!
SDP:
v=0o=alice20518
0
IN
IP4
0.0.0.0
s=-t=0
0m
=audio54609
RTP/SAVPF
109
Bob
is
at:
SDP:
v=0o=bob
19915
0
IN
IP4
0.0.0.0
s=-t=0
0m
=audio
61001
RTP/SAV
PF
109
Alice Bob
http://
55. CAN YOU SPEAK MAGIC?CAN YOU SPEAK MAGIC?CAN YOU SPEAK MAGIC?
13
H
aveBob
callm
ehere!
SDP:
v=0o=alice20518
0
IN
IP4
0.0.0.0
s=-t=0
0m
=audio54609
RTP/SAVPF
109
Bob
is
at:
SDP:
v=0o=bob
19915
0
IN
IP4
0.0.0.0
s=-t=0
0m
=audio
61001
RTP/SAV
PF
109
Alice Bob
http://
56. CAN YOU SPEAK MAGIC?CAN YOU SPEAK MAGIC?CAN YOU SPEAK MAGIC?
13
H
aveBob
callm
ehere!
SDP:
v=0o=alice20518
0
IN
IP4
0.0.0.0
s=-t=0
0m
=audio54609
RTP/SAVPF
109
Bob
is
at:
SDP:
v=0o=bob
19915
0
IN
IP4
0.0.0.0
s=-t=0
0m
=audio
61001
RTP/SAV
PF
109
Alice Bob
http://
59. CAN YOU SPEAK MAGIC?CAN YOU SPEAK MAGIC?CAN YOU SPEAK MAGIC?
16
H
aveBob
callm
ehere!
SDP:
v=0o=alice20518
0
IN
IP4
0.0.0.0
s=-t=0
0m
=audio54609
RTP/SAVPF
109
Bob
is
at:
SDP:
v=0o=bob
19915
0
IN
IP4
0.0.0.0
s=-t=0
0m
=audio
61001
RTP/SAV
PF
109
Alice Bob
http://
60. CAN YOU SPEAK MAGIC?CAN YOU SPEAK MAGIC?CAN YOU SPEAK MAGIC?
16
H
aveBob
callm
ehere!
SDP:
v=0o=alice20518
0
IN
IP4
0.0.0.0
s=-t=0
0m
=audio54609
RTP/SAVPF
109
Bob
is
at:
SDP:
v=0o=bob
19915
0
IN
IP4
0.0.0.0
s=-t=0
0m
=audio
61001
RTP/SAV
PF
109
Alice Bob
SRTP
SRTP
http://
61. CAN YOU SPEAK MAGIC?CAN YOU SPEAK MAGIC?CAN YOU SPEAK MAGIC?
16
H
aveBob
callm
ehere!
SDP:
v=0o=alice20518
0
IN
IP4
0.0.0.0
s=-t=0
0m
=audio54609
RTP/SAVPF
109
Bob
is
at:
SDP:
v=0o=bob
19915
0
IN
IP4
0.0.0.0
s=-t=0
0m
=audio
61001
RTP/SAV
PF
109
Alice Bob
SRTP
SRTP
http://
62. CAN YOU SPEAK MAGIC?CAN YOU SPEAK MAGIC?CAN YOU SPEAK MAGIC?
16
H
aveBob
callm
ehere!
SDP:
v=0o=alice20518
0
IN
IP4
0.0.0.0
s=-t=0
0m
=audio54609
RTP/SAVPF
109
Bob
is
at:
SDP:
v=0o=bob
19915
0
IN
IP4
0.0.0.0
s=-t=0
0m
=audio
61001
RTP/SAV
PF
109
Alice Bob
SRTP
SRTP
X
http://
66. CAN YOU SPEAK MAGIC?
ENVIRONMENTAL PROBLEMS
19
•Microphone or Speakers Muted
67. CAN YOU SPEAK MAGIC?
ENVIRONMENTAL PROBLEMS
19
•Microphone or Speakers Muted
68. CAN YOU SPEAK MAGIC?
ENVIRONMENTAL PROBLEMS
19
•Microphone or Speakers Muted
•Too Dark or Too Backlit
69. CAN YOU SPEAK MAGIC?
ENVIRONMENTAL PROBLEMS
19
•Microphone or Speakers Muted
•Too Dark or Too Backlit
•HW or Driver Issues
70. CAN YOU SPEAK MAGIC?
ENVIRONMENTAL PROBLEMS
19
•Microphone or Speakers Muted
•Too Dark or Too Backlit
•HW or Driver Issues
•USB Headsets
71. 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
72. 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/
79. CAN YOU SPEAK MAGIC?
BROWSER PROBLEMS
•Spec still evolving
21
80. CAN YOU SPEAK MAGIC?
BROWSER PROBLEMS
•Spec still evolving
•…though 1.0 is on the horizon
21
81. CAN YOU SPEAK MAGIC?
BROWSER PROBLEMS
•Spec still evolving
•…though 1.0 is on the horizon
•Still no native IE or Safari :(
21
82. 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
83. 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
84. 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
85. 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
86. 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 Better
Restart Their Chrome
21
88. CAN YOU SPEAK MAGIC?
SOLVING BROWSER INCOMPAT
•Use a “polyfill” - Adapter.js
22
89. CAN YOU SPEAK MAGIC?
SOLVING BROWSER INCOMPAT
•Use a “polyfill” - Adapter.js
•https://github.com/webrtc/adapter
22
90. CAN YOU SPEAK MAGIC?
SOLVING BROWSER INCOMPAT
•Use a “polyfill” - Adapter.js
•https://github.com/webrtc/adapter
•IE & Safari: deploy Temasys
22
91. 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
92. 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
93. 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
95. CAN YOU SPEAK MAGIC?
WEBRTC PROBLEMS & SOLUTIONS
•Environmental Problems
23
96. CAN YOU SPEAK MAGIC?
WEBRTC PROBLEMS & SOLUTIONS
•Environmental Problems
•Change the environment
23
97. CAN YOU SPEAK MAGIC?
WEBRTC PROBLEMS & SOLUTIONS
•Environmental Problems
•Change the environment
•Teach the user
23
98. CAN YOU SPEAK MAGIC?
WEBRTC PROBLEMS & SOLUTIONS
•Environmental Problems
•Change the environment
•Teach the user
•Usability Problems
23
99. CAN YOU SPEAK MAGIC?
WEBRTC PROBLEMS & SOLUTIONS
•Environmental Problems
•Change the environment
•Teach the user
•Usability Problems
•Deploy TLS Certs!!!
23
100. CAN YOU SPEAK MAGIC?
WEBRTC PROBLEMS & SOLUTIONS
•Environmental Problems
•Change the environment
•Teach the user
•Usability Problems
•Deploy TLS Certs!!!
•Test, test, test
23
101. 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
102. 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
103. 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/