SlideShare a Scribd company logo
What is WebRTC?
What can I do with it?
Dan Jenkins
Founder of Nimble Ape Ltd
Developer at Respoke
1
Who am I?
2
/ Who am I?
Dan Jenkins
Node.js Developer
Love Lego & Technic
General Geek
Founder of Nimble Ape Ltd
❤️ open source
3
/ Who am I?
github.com/danjenkins
4
/ Who am I?
@dan_jenkins
5
/ Who am I?
nimblea.pe | @nimbleapeltd
6
/
7
Who am I?
/ Who am I?
Got into VoIP years ago
VoIP is difficult
Spent the past year working on a platform called Respoke
Respoke makes WebRTC easier
8
WebRTC & I
WebRTC
9
/ WebRTC
10
Who’s heard of WebRTC?
/ WebRTC
Who’s developed something
with WebRTC?
11
/ WebRTC
12
Who’s used WebRTC?
/ WebRTC
13
Talky.io
Appear.inScreenhero
Hangouts
/ WebRTC
14
Sharefest
Amazon
Mayday
PeerCDN
/ WebRTC
15
Enabled on over 6.2 Billion
Devices By 2018
What is WebRTC?
16
/ What is WebRTC?
17
Web Real Time Communication
/ What is WebRTC?
18
Disrupt!
/ What is WebRTC?
19
It’s a technology!
/ What is WebRTC?
20
It’s classed as “Experimental”
/ What is WebRTC?
21
It’s encrypted
/ What is WebRTC?
22
Defined by W3C & IETF, just like HTTP
/ What is WebRTC?
“WebRTC (Web Real-Time Communication) is an API definition
drafted by the World Wide Web Consortium (W3C) that supports
browser-to-browser applications for voice calling, video chat, and P2P
file sharing without the need of either internal or external plugins.”
23
According to wikipedia:
OK, but what is it?
24
/ Ok, but what is it?
25
Enables Video, Audio and
Data Sharing in your browser,
peer to peer, with no plugins
/ Ok, but what is it?
26
What?! Wait!
Too many words!
/ Ok, but what is it?
27
Video
/ Ok, but what is it? / Video
28
A browser friendly camera…
/ Ok, but what is it? / Video
But you need a “plugin” for this… shhh!
Don’t tell anyone… It’s for security
29
Your screen…
/ Ok, but what is it?
30
Audio
/ Ok, but what is it? / Audio
31
A Mic
/ Ok, but what is it? / Audio
Audio APIs
32
An audio stream from an in
browser source
Data Sharing
33
/ Ok, but what is it? / Data Sharing
34
This can be pretty
much anything…
/ Ok, but what is it? / Data Sharing
35
An image from canvas…
/ Ok, but what is it? / Data Sharing
36
A file
/ Ok, but what is it? / Data Sharing
37
Web-torrents
/ Ok, but what is it? / Data Sharing
38
Anything!
Peer to Peer
39
/ Peer to Peer
40
2 peers
/ Peer to Peer
41
3 peers
/ Peer to Peer
42
*n peers
/ Peer to Peer
43
Peers don’t have to
be browsers!
/ Peer to Peer
44
But we’ve had peer to
peer technology before,
what’s different?
/ Peer to Peer
Direct in your modern browser/app!
45
No plugins!
Awesome!
So it’s easy to implement?
46
/ Awesome!
It’s primarily a web technology
aimed at web developers
47
/ Awesome!
But unfortunately it’s not simple
to implement
48
/ Awesome!
You’ll need a signalling server
49
/ Awesome! / Signalling
And signalling isn’t
a standard
50
/ Awesome! / Signalling
It might not be very real time
though…
51
You could use
carrier pigeons!
/ Awesome! / Signalling
But seriously, there are open
source ones…
52
/ Awesome! / Signalling
And many providers!
53
/ Awesome!
They’re evolving all the time…
and they’re all different…
54
Browser APIs
/ Awesome! / Browser APIs
There’s a few to choose from…
55
Adapter.js
/ Awesome! / Browser APIs
They normalise the browsers
56
/
var RTCPeerConnection = null;
var getUserMedia = null;
var attachMediaStream = null;
var reattachMediaStream = null;
var webrtcDetectedBrowser = null;
function trace(text) {
// This function is used for logging.
if (text[text.length - 1] == 'n') {
text = text.substring(0, text.length - 1);
}
console.log((performance.now() / 1000).toFixed(3) + ": " + text);
}
if (navigator.mozGetUserMedia) {
console.log("This appears to be Firefox");
webrtcDetectedBrowser = "firefox";
// The RTCPeerConnection object.
RTCPeerConnection = mozRTCPeerConnection;
// The RTCSessionDescription object.
RTCSessionDescription = mozRTCSessionDescription;
// The RTCIceCandidate object.
RTCIceCandidate = mozRTCIceCandidate;
// Get UserMedia (only difference is the prefix).
// Code from Adam Barth.
getUserMedia = navigator.mozGetUserMedia.bind(navigator);
// Attach a media stream to an element.
attachMediaStream = function(element, stream) {
console.log("Attaching media stream");
element.mozSrcObject = stream;
element.play();
};
reattachMediaStream = function(to, from) {
console.log("Reattaching media stream");
to.mozSrcObject = from.mozSrcObject;
to.play();
};
Awesome! / Browser APIs
Google has one
57
/ Awesome! / Browser APIs
Plus many others…
58
/ Awesome! / Browser APIs
getUserMedia
RTCPeerConnection
RTCDataChannel
59
/ Awesome! / Browser APIs
Used to ask your user
whether the website can
use your media,
among other things
60
getUserMedia
/ Awesome! / Browser APIs
Handles the
underlying technology
to stream media
between 2 peers
61
RTCPeerConnection
/ Awesome! / Browser APIs
Transfer arbitrary data
between peers.
This is what’s really exciting
about WebRTC.
It makes WebRTC use
cases expand infinitely
62
RTCDataChannel
/ Awesome! / Browser APIs
63
(1) getUserMedia
(2) send offer
(3) receive Offer
(4) getUserMedia
(5) send answer
(5) receive answer
(6) media starts streaming
A Simple Diagram…
But what about
firewalls?
64
/ Firewalls
Built in mechanisms to help
65
/ Firewalls
A method to go off to a server and get your IP as seen by the world
66
STUN
/ Firewalls
A server to relay your media through, if a peer to peer connection can’t be established
Generally, you need to run one (or more) of these yourself to get good quality
67
TURN
OK, I get it…
Where can I use it?
68
/ Where can I use it?
69
/ Where can I use it?
70
/ Where can I use it?
PeerConnection API ✔ ✔ ✔ ✔ ✗ ✗ ✔
ORTC API ✗ ✗ ✗ ✗ ✗ ✗
getUserMedia ✔ ✔ ✔ ✔ ✗ ✔
simulcast ✔ ✗ ✗ ✗ ✗ ✗
mediaConstraints ✗ ✗ ✗
TURN support ✔ ✔ ✔ ✔ ✗ ✗ ✔
MediaStream API ✔ ✔ ✗ ✗ ✔
WebAudio Integration ✔ ✔ ✔ ✔ ✗ ✗ ✔
dataChannels ✔ ✔ ✔ ✔ ✗ ✗ ✔
Screen Sharing ✗ ✗ ✗ ✗
Stream re-broadcasting ✗ ✗ ✗ ✗ ✗
Multiple Streams ✔ ✔ ✗ ✗ ✗ ✗ ✔
Solid Interop ✗ ✗
Echo cancellation ✔ ✔ ✗ ✗
It’s complicated
71
/ Where can I use it?
With a plugin…
72
LOL…
What can I do with it?
73
/ What can I do with it?
Easy answer,
use your imagination
74
/ What can I do with it?
Customer Support
75
/ What can I do with it?
Enable easier remote
working in Contact Centres
76
/ What can I do with it?
Peer to Peer
data transfers in games
77
/ What can I do with it?
Sales
78
Look at products in real time
/ What can I do with it?
And many, many more, you
just need imagination
79
/ What can I do with it?
None of these ideas are new
But they’re being enabled by the open standard
They’ve also got a higher possibility of success
as it’s now cheaper to run the service
80
Security
Concerns?
81
/ Security Concerns?
Of course there are!
82
/
https://www.browserleaks.com/webrtc
Security Concerns?
You can obtain a user’s real IP
using WebRTC technology
83
/ Security Concerns?
Without the user ever knowing
84
You can transfer ∞ data
Things I haven’t even
talked about…
85
/ Not talked about
ICE Candidates
86
/ Not talked about
Including Mesh, SFUs and MCUs
87
Network layouts
/ Not talked about
Encryption
88
/ Not talked about
using canvas for example
89
Playing with the streams
in your browser
/ Not talked about / Canvas
90
/ Not talked about
91
Codecs
Opus, G.711, G.722, iLBC, and iSAC
VP8 and H264
/ Not talked about
And probably a
whole lot more…
92
/ Not talked about
It’s a complex topic
93
/ Not talked about
But it’s not as complicated as VoIP
Everyone can get into it
94
Want to get started with
WebRTC without having to
deal with signalling and
browser differences?
95
/ Getting started
96
Check out Respoke, it’s free!
www.respoke.io
Thanks!
Dan Jenkins
@dan_jenkins
97

More Related Content

What's hot

Web technology is getting physical, join the journey
Web technology is getting physical, join the journeyWeb technology is getting physical, join the journey
Web technology is getting physical, join the journey
Dan Jenkins
 
WebRTC beyond Audio and Video
WebRTC beyond Audio and Video  WebRTC beyond Audio and Video
WebRTC beyond Audio and Video
Silvia Pfeiffer
 
Presentation at JSConf.be 2019 - Alessandro Polidori
Presentation at JSConf.be 2019 - Alessandro PolidoriPresentation at JSConf.be 2019 - Alessandro Polidori
Presentation at JSConf.be 2019 - Alessandro Polidori
Alessandro Polidori
 
Presentation at ClueCon 2019 - Chicago, IL, USA 🇺🇸
Presentation at ClueCon 2019 - Chicago, IL, USA 🇺🇸Presentation at ClueCon 2019 - Chicago, IL, USA 🇺🇸
Presentation at ClueCon 2019 - Chicago, IL, USA 🇺🇸
Alessandro Polidori
 
Designing & Building Secure Web APIs
Designing & Building Secure Web APIsDesigning & Building Secure Web APIs
Designing & Building Secure Web APIs
CodeOps Technologies LLP
 
Astricon 2016 - Scaling ARI and Production
Astricon 2016 - Scaling ARI and ProductionAstricon 2016 - Scaling ARI and Production
Astricon 2016 - Scaling ARI and Production
Dan Jenkins
 
WebRTC 101 - How to get started building your first WebRTC application
WebRTC 101 - How to get started building your first WebRTC applicationWebRTC 101 - How to get started building your first WebRTC application
WebRTC 101 - How to get started building your first WebRTC application
Dan Jenkins
 
WebRTC Live Q&A and Screen Capture session 3
WebRTC Live Q&A and Screen Capture session 3WebRTC Live Q&A and Screen Capture session 3
WebRTC Live Q&A and Screen Capture session 3
Amir Zmora
 
DYI - Starting your own webrtc project
DYI - Starting your own webrtc projectDYI - Starting your own webrtc project
DYI - Starting your own webrtc project
Alexandre Gouaillard
 
Quality Assurance for WebRTC Services
Quality Assurance for WebRTC ServicesQuality Assurance for WebRTC Services
Quality Assurance for WebRTC Services
Tsahi Levent-levi
 
Programming for the Internet of Things
Programming for the Internet of ThingsProgramming for the Internet of Things
Programming for the Internet of Things
Kinoma
 
Language Matters: JavaScript 
from IoT Product Concept 
to Production
Language Matters: JavaScript 
from IoT Product Concept 
to ProductionLanguage Matters: JavaScript 
from IoT Product Concept 
to Production
Language Matters: JavaScript 
from IoT Product Concept 
to Production
Kinoma
 
12 tricks to avoid hackers breaks your CI / CD
12 tricks to avoid hackers breaks your  CI / CD12 tricks to avoid hackers breaks your  CI / CD
12 tricks to avoid hackers breaks your CI / CD
Daniel Garcia (a.k.a cr0hn)
 
Rooted con 2020 - from the heaven to hell in the CI - CD
Rooted con 2020 - from the heaven to hell in the CI - CDRooted con 2020 - from the heaven to hell in the CI - CD
Rooted con 2020 - from the heaven to hell in the CI - CD
Daniel Garcia (a.k.a cr0hn)
 
Sonatype DevSecOps Leadership forum 2020
Sonatype DevSecOps Leadership forum 2020Sonatype DevSecOps Leadership forum 2020
Sonatype DevSecOps Leadership forum 2020
Daniel Garcia (a.k.a cr0hn)
 
WebRTC Overview by Dan Burnett
WebRTC Overview by Dan BurnettWebRTC Overview by Dan Burnett
WebRTC Overview by Dan Burnett
Mojo Lingo
 
AstriCon 2015: WebRTC: How it Works, and How it Breaks
AstriCon 2015: WebRTC: How it Works, and How it BreaksAstriCon 2015: WebRTC: How it Works, and How it Breaks
AstriCon 2015: WebRTC: How it Works, and How it Breaks
Mojo Lingo
 
EDT-IOT September 2015 Meetup - IOT+Node-RED
EDT-IOT September 2015 Meetup - IOT+Node-REDEDT-IOT September 2015 Meetup - IOT+Node-RED
EDT-IOT September 2015 Meetup - IOT+Node-RED
ibhi
 
Reactive web
Reactive webReactive web
Reactive web
dega1999
 
DevSecCon Boston 2018: My rage quit journey: configuring Netflix tools by Sar...
DevSecCon Boston 2018: My rage quit journey: configuring Netflix tools by Sar...DevSecCon Boston 2018: My rage quit journey: configuring Netflix tools by Sar...
DevSecCon Boston 2018: My rage quit journey: configuring Netflix tools by Sar...
DevSecCon
 

What's hot (20)

Web technology is getting physical, join the journey
Web technology is getting physical, join the journeyWeb technology is getting physical, join the journey
Web technology is getting physical, join the journey
 
WebRTC beyond Audio and Video
WebRTC beyond Audio and Video  WebRTC beyond Audio and Video
WebRTC beyond Audio and Video
 
Presentation at JSConf.be 2019 - Alessandro Polidori
Presentation at JSConf.be 2019 - Alessandro PolidoriPresentation at JSConf.be 2019 - Alessandro Polidori
Presentation at JSConf.be 2019 - Alessandro Polidori
 
Presentation at ClueCon 2019 - Chicago, IL, USA 🇺🇸
Presentation at ClueCon 2019 - Chicago, IL, USA 🇺🇸Presentation at ClueCon 2019 - Chicago, IL, USA 🇺🇸
Presentation at ClueCon 2019 - Chicago, IL, USA 🇺🇸
 
Designing & Building Secure Web APIs
Designing & Building Secure Web APIsDesigning & Building Secure Web APIs
Designing & Building Secure Web APIs
 
Astricon 2016 - Scaling ARI and Production
Astricon 2016 - Scaling ARI and ProductionAstricon 2016 - Scaling ARI and Production
Astricon 2016 - Scaling ARI and Production
 
WebRTC 101 - How to get started building your first WebRTC application
WebRTC 101 - How to get started building your first WebRTC applicationWebRTC 101 - How to get started building your first WebRTC application
WebRTC 101 - How to get started building your first WebRTC application
 
WebRTC Live Q&A and Screen Capture session 3
WebRTC Live Q&A and Screen Capture session 3WebRTC Live Q&A and Screen Capture session 3
WebRTC Live Q&A and Screen Capture session 3
 
DYI - Starting your own webrtc project
DYI - Starting your own webrtc projectDYI - Starting your own webrtc project
DYI - Starting your own webrtc project
 
Quality Assurance for WebRTC Services
Quality Assurance for WebRTC ServicesQuality Assurance for WebRTC Services
Quality Assurance for WebRTC Services
 
Programming for the Internet of Things
Programming for the Internet of ThingsProgramming for the Internet of Things
Programming for the Internet of Things
 
Language Matters: JavaScript 
from IoT Product Concept 
to Production
Language Matters: JavaScript 
from IoT Product Concept 
to ProductionLanguage Matters: JavaScript 
from IoT Product Concept 
to Production
Language Matters: JavaScript 
from IoT Product Concept 
to Production
 
12 tricks to avoid hackers breaks your CI / CD
12 tricks to avoid hackers breaks your  CI / CD12 tricks to avoid hackers breaks your  CI / CD
12 tricks to avoid hackers breaks your CI / CD
 
Rooted con 2020 - from the heaven to hell in the CI - CD
Rooted con 2020 - from the heaven to hell in the CI - CDRooted con 2020 - from the heaven to hell in the CI - CD
Rooted con 2020 - from the heaven to hell in the CI - CD
 
Sonatype DevSecOps Leadership forum 2020
Sonatype DevSecOps Leadership forum 2020Sonatype DevSecOps Leadership forum 2020
Sonatype DevSecOps Leadership forum 2020
 
WebRTC Overview by Dan Burnett
WebRTC Overview by Dan BurnettWebRTC Overview by Dan Burnett
WebRTC Overview by Dan Burnett
 
AstriCon 2015: WebRTC: How it Works, and How it Breaks
AstriCon 2015: WebRTC: How it Works, and How it BreaksAstriCon 2015: WebRTC: How it Works, and How it Breaks
AstriCon 2015: WebRTC: How it Works, and How it Breaks
 
EDT-IOT September 2015 Meetup - IOT+Node-RED
EDT-IOT September 2015 Meetup - IOT+Node-REDEDT-IOT September 2015 Meetup - IOT+Node-RED
EDT-IOT September 2015 Meetup - IOT+Node-RED
 
Reactive web
Reactive webReactive web
Reactive web
 
DevSecCon Boston 2018: My rage quit journey: configuring Netflix tools by Sar...
DevSecCon Boston 2018: My rage quit journey: configuring Netflix tools by Sar...DevSecCon Boston 2018: My rage quit journey: configuring Netflix tools by Sar...
DevSecCon Boston 2018: My rage quit journey: configuring Netflix tools by Sar...
 

Similar to What is WebRTC? What can I do with it?

Twilio Signal 2016 WebRTC Reborn
Twilio Signal 2016 WebRTC RebornTwilio Signal 2016 WebRTC Reborn
Twilio Signal 2016 WebRTC Reborn
Twilio Inc
 
WebRTC Reborn Hackference
WebRTC Reborn HackferenceWebRTC Reborn Hackference
WebRTC Reborn Hackference
Dan Jenkins
 
WebRTC Reborn - Full Stack
WebRTC Reborn  - Full StackWebRTC Reborn  - Full Stack
WebRTC Reborn - Full Stack
Dan Jenkins
 
WebRTC Reborn - Cloud Expo / WebRTC Summit
WebRTC Reborn - Cloud Expo / WebRTC SummitWebRTC Reborn - Cloud Expo / WebRTC Summit
WebRTC Reborn - Cloud Expo / WebRTC Summit
Dan Jenkins
 
WebRTC: A front-end perspective
WebRTC: A front-end perspectiveWebRTC: A front-end perspective
WebRTC: A front-end perspective
shwetank
 
Kamailio World 2017: Getting Real with WebRTC
Kamailio World 2017: Getting Real with WebRTCKamailio World 2017: Getting Real with WebRTC
Kamailio World 2017: Getting Real with WebRTC
Chad Hart
 
WebRTC for Telco: Informa's WebRTC Global Summit Preconference
WebRTC for Telco: Informa's WebRTC Global Summit PreconferenceWebRTC for Telco: Informa's WebRTC Global Summit Preconference
WebRTC for Telco: Informa's WebRTC Global Summit Preconference
Tsahi Levent-levi
 
Things I wished I knew before building my first WebRTC app - RTE2020
Things I wished I knew before building my first WebRTC app - RTE2020Things I wished I knew before building my first WebRTC app - RTE2020
Things I wished I knew before building my first WebRTC app - RTE2020
Alberto González Trastoy
 
From Mediasoup WebRTC to Livekit Self-Hosted .pdf
From Mediasoup WebRTC to  Livekit Self-Hosted .pdfFrom Mediasoup WebRTC to  Livekit Self-Hosted .pdf
From Mediasoup WebRTC to Livekit Self-Hosted .pdf
atyenoria
 
Status of WebRTC across Asia by Alan Quayle +++
Status of WebRTC across Asia by Alan Quayle +++Status of WebRTC across Asia by Alan Quayle +++
Status of WebRTC across Asia by Alan Quayle +++
Alan Quayle
 
Baby Steps: A WebRTC Tutorial
Baby Steps: A WebRTC TutorialBaby Steps: A WebRTC Tutorial
Baby Steps: A WebRTC Tutorial
Tsahi Levent-levi
 
Websocket 101 in Python
Websocket 101 in PythonWebsocket 101 in Python
Websocket 101 in Python
Juti Noppornpitak
 
The State of WebRTC
The State of WebRTCThe State of WebRTC
The State of WebRTC
Robin Hawkes
 
Decentralising data distribution
Decentralising data distributionDecentralising data distribution
Decentralising data distribution
dennis_martensson
 
Dipping Your Toes Into Cloud Native Application Development
Dipping Your Toes Into Cloud Native Application DevelopmentDipping Your Toes Into Cloud Native Application Development
Dipping Your Toes Into Cloud Native Application Development
Matthew Farina
 
WebRTC: The Big Debate, Shut Up and Build Something
WebRTC: The Big Debate, Shut Up and Build SomethingWebRTC: The Big Debate, Shut Up and Build Something
WebRTC: The Big Debate, Shut Up and Build Something
Digium
 
Astricon 2014 - WebRTC - The Big Debate, I Say Shut Up and Build Something - ...
Astricon 2014 - WebRTC - The Big Debate, I Say Shut Up and Build Something - ...Astricon 2014 - WebRTC - The Big Debate, I Say Shut Up and Build Something - ...
Astricon 2014 - WebRTC - The Big Debate, I Say Shut Up and Build Something - ...
Blacc Spot Media, Inc.
 
WebRTC And FreeSWITCH – What This Combination Means?
WebRTC And FreeSWITCH – What This Combination Means?WebRTC And FreeSWITCH – What This Combination Means?
WebRTC And FreeSWITCH – What This Combination Means?
MoonTechnolabsPvtLtd
 
Interconnection Automation For All - Extended - MPS 2023
Interconnection Automation For All - Extended - MPS 2023Interconnection Automation For All - Extended - MPS 2023
Interconnection Automation For All - Extended - MPS 2023
Chris Grundemann
 
KITE Network Instrumentation: Advanced WebRTC Testing
KITE Network Instrumentation: Advanced WebRTC TestingKITE Network Instrumentation: Advanced WebRTC Testing
KITE Network Instrumentation: Advanced WebRTC Testing
Alexandre Gouaillard
 

Similar to What is WebRTC? What can I do with it? (20)

Twilio Signal 2016 WebRTC Reborn
Twilio Signal 2016 WebRTC RebornTwilio Signal 2016 WebRTC Reborn
Twilio Signal 2016 WebRTC Reborn
 
WebRTC Reborn Hackference
WebRTC Reborn HackferenceWebRTC Reborn Hackference
WebRTC Reborn Hackference
 
WebRTC Reborn - Full Stack
WebRTC Reborn  - Full StackWebRTC Reborn  - Full Stack
WebRTC Reborn - Full Stack
 
WebRTC Reborn - Cloud Expo / WebRTC Summit
WebRTC Reborn - Cloud Expo / WebRTC SummitWebRTC Reborn - Cloud Expo / WebRTC Summit
WebRTC Reborn - Cloud Expo / WebRTC Summit
 
WebRTC: A front-end perspective
WebRTC: A front-end perspectiveWebRTC: A front-end perspective
WebRTC: A front-end perspective
 
Kamailio World 2017: Getting Real with WebRTC
Kamailio World 2017: Getting Real with WebRTCKamailio World 2017: Getting Real with WebRTC
Kamailio World 2017: Getting Real with WebRTC
 
WebRTC for Telco: Informa's WebRTC Global Summit Preconference
WebRTC for Telco: Informa's WebRTC Global Summit PreconferenceWebRTC for Telco: Informa's WebRTC Global Summit Preconference
WebRTC for Telco: Informa's WebRTC Global Summit Preconference
 
Things I wished I knew before building my first WebRTC app - RTE2020
Things I wished I knew before building my first WebRTC app - RTE2020Things I wished I knew before building my first WebRTC app - RTE2020
Things I wished I knew before building my first WebRTC app - RTE2020
 
From Mediasoup WebRTC to Livekit Self-Hosted .pdf
From Mediasoup WebRTC to  Livekit Self-Hosted .pdfFrom Mediasoup WebRTC to  Livekit Self-Hosted .pdf
From Mediasoup WebRTC to Livekit Self-Hosted .pdf
 
Status of WebRTC across Asia by Alan Quayle +++
Status of WebRTC across Asia by Alan Quayle +++Status of WebRTC across Asia by Alan Quayle +++
Status of WebRTC across Asia by Alan Quayle +++
 
Baby Steps: A WebRTC Tutorial
Baby Steps: A WebRTC TutorialBaby Steps: A WebRTC Tutorial
Baby Steps: A WebRTC Tutorial
 
Websocket 101 in Python
Websocket 101 in PythonWebsocket 101 in Python
Websocket 101 in Python
 
The State of WebRTC
The State of WebRTCThe State of WebRTC
The State of WebRTC
 
Decentralising data distribution
Decentralising data distributionDecentralising data distribution
Decentralising data distribution
 
Dipping Your Toes Into Cloud Native Application Development
Dipping Your Toes Into Cloud Native Application DevelopmentDipping Your Toes Into Cloud Native Application Development
Dipping Your Toes Into Cloud Native Application Development
 
WebRTC: The Big Debate, Shut Up and Build Something
WebRTC: The Big Debate, Shut Up and Build SomethingWebRTC: The Big Debate, Shut Up and Build Something
WebRTC: The Big Debate, Shut Up and Build Something
 
Astricon 2014 - WebRTC - The Big Debate, I Say Shut Up and Build Something - ...
Astricon 2014 - WebRTC - The Big Debate, I Say Shut Up and Build Something - ...Astricon 2014 - WebRTC - The Big Debate, I Say Shut Up and Build Something - ...
Astricon 2014 - WebRTC - The Big Debate, I Say Shut Up and Build Something - ...
 
WebRTC And FreeSWITCH – What This Combination Means?
WebRTC And FreeSWITCH – What This Combination Means?WebRTC And FreeSWITCH – What This Combination Means?
WebRTC And FreeSWITCH – What This Combination Means?
 
Interconnection Automation For All - Extended - MPS 2023
Interconnection Automation For All - Extended - MPS 2023Interconnection Automation For All - Extended - MPS 2023
Interconnection Automation For All - Extended - MPS 2023
 
KITE Network Instrumentation: Advanced WebRTC Testing
KITE Network Instrumentation: Advanced WebRTC TestingKITE Network Instrumentation: Advanced WebRTC Testing
KITE Network Instrumentation: Advanced WebRTC Testing
 

More from Dan Jenkins

Yup... WebRTC Still Sucks
Yup... WebRTC Still SucksYup... WebRTC Still Sucks
Yup... WebRTC Still Sucks
Dan Jenkins
 
Professional AV with WebRTC
Professional AV with WebRTCProfessional AV with WebRTC
Professional AV with WebRTC
Dan Jenkins
 
SIMCON 3
SIMCON 3SIMCON 3
SIMCON 3
Dan Jenkins
 
Getting started with WebRTC
Getting started with WebRTCGetting started with WebRTC
Getting started with WebRTC
Dan Jenkins
 
JanusCon - Building Native Mobile Apps with WebRTC
JanusCon - Building Native Mobile Apps with WebRTCJanusCon - Building Native Mobile Apps with WebRTC
JanusCon - Building Native Mobile Apps with WebRTC
Dan Jenkins
 
Getting physical with web bluetooth in the browser hackference
Getting physical with web bluetooth in the browser hackferenceGetting physical with web bluetooth in the browser hackference
Getting physical with web bluetooth in the browser hackference
Dan Jenkins
 
Getting Physical with Web Bluetooth in the Browser Full Stack Toronto
Getting Physical with Web Bluetooth in the Browser Full Stack TorontoGetting Physical with Web Bluetooth in the Browser Full Stack Toronto
Getting Physical with Web Bluetooth in the Browser Full Stack Toronto
Dan Jenkins
 
Getting physical with web bluetooth in the browser
Getting physical with web bluetooth in the browserGetting physical with web bluetooth in the browser
Getting physical with web bluetooth in the browser
Dan Jenkins
 
Getting physical with web bluetooth in the browser
Getting physical with web bluetooth in the browserGetting physical with web bluetooth in the browser
Getting physical with web bluetooth in the browser
Dan Jenkins
 
Building the Best Experience for Your Customers and Your Business
Building the Best Experience for Your Customers and Your BusinessBuilding the Best Experience for Your Customers and Your Business
Building the Best Experience for Your Customers and Your Business
Dan Jenkins
 
Developing Yourself for Industry - University of Kent EDA MTD DA
Developing Yourself for Industry - University of Kent EDA MTD DADeveloping Yourself for Industry - University of Kent EDA MTD DA
Developing Yourself for Industry - University of Kent EDA MTD DA
Dan Jenkins
 
Building 21st Century Contact Centre Applications
Building 21st Century Contact Centre ApplicationsBuilding 21st Century Contact Centre Applications
Building 21st Century Contact Centre Applications
Dan Jenkins
 
Bringing Real-time VoIP metrics to 2013
Bringing Real-time VoIP metrics to 2013Bringing Real-time VoIP metrics to 2013
Bringing Real-time VoIP metrics to 2013
Dan Jenkins
 
Asterisk, HTML5 and NodeJS; a world of endless possibilities
Asterisk, HTML5 and NodeJS; a world of endless possibilitiesAsterisk, HTML5 and NodeJS; a world of endless possibilities
Asterisk, HTML5 and NodeJS; a world of endless possibilitiesDan Jenkins
 

More from Dan Jenkins (14)

Yup... WebRTC Still Sucks
Yup... WebRTC Still SucksYup... WebRTC Still Sucks
Yup... WebRTC Still Sucks
 
Professional AV with WebRTC
Professional AV with WebRTCProfessional AV with WebRTC
Professional AV with WebRTC
 
SIMCON 3
SIMCON 3SIMCON 3
SIMCON 3
 
Getting started with WebRTC
Getting started with WebRTCGetting started with WebRTC
Getting started with WebRTC
 
JanusCon - Building Native Mobile Apps with WebRTC
JanusCon - Building Native Mobile Apps with WebRTCJanusCon - Building Native Mobile Apps with WebRTC
JanusCon - Building Native Mobile Apps with WebRTC
 
Getting physical with web bluetooth in the browser hackference
Getting physical with web bluetooth in the browser hackferenceGetting physical with web bluetooth in the browser hackference
Getting physical with web bluetooth in the browser hackference
 
Getting Physical with Web Bluetooth in the Browser Full Stack Toronto
Getting Physical with Web Bluetooth in the Browser Full Stack TorontoGetting Physical with Web Bluetooth in the Browser Full Stack Toronto
Getting Physical with Web Bluetooth in the Browser Full Stack Toronto
 
Getting physical with web bluetooth in the browser
Getting physical with web bluetooth in the browserGetting physical with web bluetooth in the browser
Getting physical with web bluetooth in the browser
 
Getting physical with web bluetooth in the browser
Getting physical with web bluetooth in the browserGetting physical with web bluetooth in the browser
Getting physical with web bluetooth in the browser
 
Building the Best Experience for Your Customers and Your Business
Building the Best Experience for Your Customers and Your BusinessBuilding the Best Experience for Your Customers and Your Business
Building the Best Experience for Your Customers and Your Business
 
Developing Yourself for Industry - University of Kent EDA MTD DA
Developing Yourself for Industry - University of Kent EDA MTD DADeveloping Yourself for Industry - University of Kent EDA MTD DA
Developing Yourself for Industry - University of Kent EDA MTD DA
 
Building 21st Century Contact Centre Applications
Building 21st Century Contact Centre ApplicationsBuilding 21st Century Contact Centre Applications
Building 21st Century Contact Centre Applications
 
Bringing Real-time VoIP metrics to 2013
Bringing Real-time VoIP metrics to 2013Bringing Real-time VoIP metrics to 2013
Bringing Real-time VoIP metrics to 2013
 
Asterisk, HTML5 and NodeJS; a world of endless possibilities
Asterisk, HTML5 and NodeJS; a world of endless possibilitiesAsterisk, HTML5 and NodeJS; a world of endless possibilities
Asterisk, HTML5 and NodeJS; a world of endless possibilities
 

Recently uploaded

This 7-second Brain Wave Ritual Attracts Money To You.!
This 7-second Brain Wave Ritual Attracts Money To You.!This 7-second Brain Wave Ritual Attracts Money To You.!
This 7-second Brain Wave Ritual Attracts Money To You.!
nirahealhty
 
APNIC Foundation, presented by Ellisha Heppner at the PNG DNS Forum 2024
APNIC Foundation, presented by Ellisha Heppner at the PNG DNS Forum 2024APNIC Foundation, presented by Ellisha Heppner at the PNG DNS Forum 2024
APNIC Foundation, presented by Ellisha Heppner at the PNG DNS Forum 2024
APNIC
 
BASIC C++ lecture NOTE C++ lecture 3.pptx
BASIC C++ lecture NOTE C++ lecture 3.pptxBASIC C++ lecture NOTE C++ lecture 3.pptx
BASIC C++ lecture NOTE C++ lecture 3.pptx
natyesu
 
test test test test testtest test testtest test testtest test testtest test ...
test test  test test testtest test testtest test testtest test testtest test ...test test  test test testtest test testtest test testtest test testtest test ...
test test test test testtest test testtest test testtest test testtest test ...
Arif0071
 
guildmasters guide to ravnica Dungeons & Dragons 5...
guildmasters guide to ravnica Dungeons & Dragons 5...guildmasters guide to ravnica Dungeons & Dragons 5...
guildmasters guide to ravnica Dungeons & Dragons 5...
Rogerio Filho
 
Comptia N+ Standard Networking lesson guide
Comptia N+ Standard Networking lesson guideComptia N+ Standard Networking lesson guide
Comptia N+ Standard Networking lesson guide
GTProductions1
 
一比一原版(SLU毕业证)圣路易斯大学毕业证成绩单专业办理
一比一原版(SLU毕业证)圣路易斯大学毕业证成绩单专业办理一比一原版(SLU毕业证)圣路易斯大学毕业证成绩单专业办理
一比一原版(SLU毕业证)圣路易斯大学毕业证成绩单专业办理
keoku
 
History+of+E-commerce+Development+in+China-www.cfye-commerce.shop
History+of+E-commerce+Development+in+China-www.cfye-commerce.shopHistory+of+E-commerce+Development+in+China-www.cfye-commerce.shop
History+of+E-commerce+Development+in+China-www.cfye-commerce.shop
laozhuseo02
 
1.Wireless Communication System_Wireless communication is a broad term that i...
1.Wireless Communication System_Wireless communication is a broad term that i...1.Wireless Communication System_Wireless communication is a broad term that i...
1.Wireless Communication System_Wireless communication is a broad term that i...
JeyaPerumal1
 
Latest trends in computer networking.pptx
Latest trends in computer networking.pptxLatest trends in computer networking.pptx
Latest trends in computer networking.pptx
JungkooksNonexistent
 
Multi-cluster Kubernetes Networking- Patterns, Projects and Guidelines
Multi-cluster Kubernetes Networking- Patterns, Projects and GuidelinesMulti-cluster Kubernetes Networking- Patterns, Projects and Guidelines
Multi-cluster Kubernetes Networking- Patterns, Projects and Guidelines
Sanjeev Rampal
 
一比一原版(LBS毕业证)伦敦商学院毕业证成绩单专业办理
一比一原版(LBS毕业证)伦敦商学院毕业证成绩单专业办理一比一原版(LBS毕业证)伦敦商学院毕业证成绩单专业办理
一比一原版(LBS毕业证)伦敦商学院毕业证成绩单专业办理
eutxy
 
How to Use Contact Form 7 Like a Pro.pptx
How to Use Contact Form 7 Like a Pro.pptxHow to Use Contact Form 7 Like a Pro.pptx
How to Use Contact Form 7 Like a Pro.pptx
Gal Baras
 
The+Prospects+of+E-Commerce+in+China.pptx
The+Prospects+of+E-Commerce+in+China.pptxThe+Prospects+of+E-Commerce+in+China.pptx
The+Prospects+of+E-Commerce+in+China.pptx
laozhuseo02
 
Bridging the Digital Gap Brad Spiegel Macon, GA Initiative.pptx
Bridging the Digital Gap Brad Spiegel Macon, GA Initiative.pptxBridging the Digital Gap Brad Spiegel Macon, GA Initiative.pptx
Bridging the Digital Gap Brad Spiegel Macon, GA Initiative.pptx
Brad Spiegel Macon GA
 
急速办(bedfordhire毕业证书)英国贝德福特大学毕业证成绩单原版一模一样
急速办(bedfordhire毕业证书)英国贝德福特大学毕业证成绩单原版一模一样急速办(bedfordhire毕业证书)英国贝德福特大学毕业证成绩单原版一模一样
急速办(bedfordhire毕业证书)英国贝德福特大学毕业证成绩单原版一模一样
3ipehhoa
 
1比1复刻(bath毕业证书)英国巴斯大学毕业证学位证原版一模一样
1比1复刻(bath毕业证书)英国巴斯大学毕业证学位证原版一模一样1比1复刻(bath毕业证书)英国巴斯大学毕业证学位证原版一模一样
1比1复刻(bath毕业证书)英国巴斯大学毕业证学位证原版一模一样
3ipehhoa
 
原版仿制(uob毕业证书)英国伯明翰大学毕业证本科学历证书原版一模一样
原版仿制(uob毕业证书)英国伯明翰大学毕业证本科学历证书原版一模一样原版仿制(uob毕业证书)英国伯明翰大学毕业证本科学历证书原版一模一样
原版仿制(uob毕业证书)英国伯明翰大学毕业证本科学历证书原版一模一样
3ipehhoa
 
JAVIER LASA-EXPERIENCIA digital 1986-2024.pdf
JAVIER LASA-EXPERIENCIA digital 1986-2024.pdfJAVIER LASA-EXPERIENCIA digital 1986-2024.pdf
JAVIER LASA-EXPERIENCIA digital 1986-2024.pdf
Javier Lasa
 
Internet-Security-Safeguarding-Your-Digital-World (1).pptx
Internet-Security-Safeguarding-Your-Digital-World (1).pptxInternet-Security-Safeguarding-Your-Digital-World (1).pptx
Internet-Security-Safeguarding-Your-Digital-World (1).pptx
VivekSinghShekhawat2
 

Recently uploaded (20)

This 7-second Brain Wave Ritual Attracts Money To You.!
This 7-second Brain Wave Ritual Attracts Money To You.!This 7-second Brain Wave Ritual Attracts Money To You.!
This 7-second Brain Wave Ritual Attracts Money To You.!
 
APNIC Foundation, presented by Ellisha Heppner at the PNG DNS Forum 2024
APNIC Foundation, presented by Ellisha Heppner at the PNG DNS Forum 2024APNIC Foundation, presented by Ellisha Heppner at the PNG DNS Forum 2024
APNIC Foundation, presented by Ellisha Heppner at the PNG DNS Forum 2024
 
BASIC C++ lecture NOTE C++ lecture 3.pptx
BASIC C++ lecture NOTE C++ lecture 3.pptxBASIC C++ lecture NOTE C++ lecture 3.pptx
BASIC C++ lecture NOTE C++ lecture 3.pptx
 
test test test test testtest test testtest test testtest test testtest test ...
test test  test test testtest test testtest test testtest test testtest test ...test test  test test testtest test testtest test testtest test testtest test ...
test test test test testtest test testtest test testtest test testtest test ...
 
guildmasters guide to ravnica Dungeons & Dragons 5...
guildmasters guide to ravnica Dungeons & Dragons 5...guildmasters guide to ravnica Dungeons & Dragons 5...
guildmasters guide to ravnica Dungeons & Dragons 5...
 
Comptia N+ Standard Networking lesson guide
Comptia N+ Standard Networking lesson guideComptia N+ Standard Networking lesson guide
Comptia N+ Standard Networking lesson guide
 
一比一原版(SLU毕业证)圣路易斯大学毕业证成绩单专业办理
一比一原版(SLU毕业证)圣路易斯大学毕业证成绩单专业办理一比一原版(SLU毕业证)圣路易斯大学毕业证成绩单专业办理
一比一原版(SLU毕业证)圣路易斯大学毕业证成绩单专业办理
 
History+of+E-commerce+Development+in+China-www.cfye-commerce.shop
History+of+E-commerce+Development+in+China-www.cfye-commerce.shopHistory+of+E-commerce+Development+in+China-www.cfye-commerce.shop
History+of+E-commerce+Development+in+China-www.cfye-commerce.shop
 
1.Wireless Communication System_Wireless communication is a broad term that i...
1.Wireless Communication System_Wireless communication is a broad term that i...1.Wireless Communication System_Wireless communication is a broad term that i...
1.Wireless Communication System_Wireless communication is a broad term that i...
 
Latest trends in computer networking.pptx
Latest trends in computer networking.pptxLatest trends in computer networking.pptx
Latest trends in computer networking.pptx
 
Multi-cluster Kubernetes Networking- Patterns, Projects and Guidelines
Multi-cluster Kubernetes Networking- Patterns, Projects and GuidelinesMulti-cluster Kubernetes Networking- Patterns, Projects and Guidelines
Multi-cluster Kubernetes Networking- Patterns, Projects and Guidelines
 
一比一原版(LBS毕业证)伦敦商学院毕业证成绩单专业办理
一比一原版(LBS毕业证)伦敦商学院毕业证成绩单专业办理一比一原版(LBS毕业证)伦敦商学院毕业证成绩单专业办理
一比一原版(LBS毕业证)伦敦商学院毕业证成绩单专业办理
 
How to Use Contact Form 7 Like a Pro.pptx
How to Use Contact Form 7 Like a Pro.pptxHow to Use Contact Form 7 Like a Pro.pptx
How to Use Contact Form 7 Like a Pro.pptx
 
The+Prospects+of+E-Commerce+in+China.pptx
The+Prospects+of+E-Commerce+in+China.pptxThe+Prospects+of+E-Commerce+in+China.pptx
The+Prospects+of+E-Commerce+in+China.pptx
 
Bridging the Digital Gap Brad Spiegel Macon, GA Initiative.pptx
Bridging the Digital Gap Brad Spiegel Macon, GA Initiative.pptxBridging the Digital Gap Brad Spiegel Macon, GA Initiative.pptx
Bridging the Digital Gap Brad Spiegel Macon, GA Initiative.pptx
 
急速办(bedfordhire毕业证书)英国贝德福特大学毕业证成绩单原版一模一样
急速办(bedfordhire毕业证书)英国贝德福特大学毕业证成绩单原版一模一样急速办(bedfordhire毕业证书)英国贝德福特大学毕业证成绩单原版一模一样
急速办(bedfordhire毕业证书)英国贝德福特大学毕业证成绩单原版一模一样
 
1比1复刻(bath毕业证书)英国巴斯大学毕业证学位证原版一模一样
1比1复刻(bath毕业证书)英国巴斯大学毕业证学位证原版一模一样1比1复刻(bath毕业证书)英国巴斯大学毕业证学位证原版一模一样
1比1复刻(bath毕业证书)英国巴斯大学毕业证学位证原版一模一样
 
原版仿制(uob毕业证书)英国伯明翰大学毕业证本科学历证书原版一模一样
原版仿制(uob毕业证书)英国伯明翰大学毕业证本科学历证书原版一模一样原版仿制(uob毕业证书)英国伯明翰大学毕业证本科学历证书原版一模一样
原版仿制(uob毕业证书)英国伯明翰大学毕业证本科学历证书原版一模一样
 
JAVIER LASA-EXPERIENCIA digital 1986-2024.pdf
JAVIER LASA-EXPERIENCIA digital 1986-2024.pdfJAVIER LASA-EXPERIENCIA digital 1986-2024.pdf
JAVIER LASA-EXPERIENCIA digital 1986-2024.pdf
 
Internet-Security-Safeguarding-Your-Digital-World (1).pptx
Internet-Security-Safeguarding-Your-Digital-World (1).pptxInternet-Security-Safeguarding-Your-Digital-World (1).pptx
Internet-Security-Safeguarding-Your-Digital-World (1).pptx
 

What is WebRTC? What can I do with it?

  • 1. What is WebRTC? What can I do with it? Dan Jenkins Founder of Nimble Ape Ltd Developer at Respoke 1
  • 3. / Who am I? Dan Jenkins Node.js Developer Love Lego & Technic General Geek Founder of Nimble Ape Ltd ❤️ open source 3
  • 4. / Who am I? github.com/danjenkins 4
  • 5. / Who am I? @dan_jenkins 5
  • 6. / Who am I? nimblea.pe | @nimbleapeltd 6
  • 8. / Who am I? Got into VoIP years ago VoIP is difficult Spent the past year working on a platform called Respoke Respoke makes WebRTC easier 8 WebRTC & I
  • 11. / WebRTC Who’s developed something with WebRTC? 11
  • 15. / WebRTC 15 Enabled on over 6.2 Billion Devices By 2018
  • 17. / What is WebRTC? 17 Web Real Time Communication
  • 18. / What is WebRTC? 18 Disrupt!
  • 19. / What is WebRTC? 19 It’s a technology!
  • 20. / What is WebRTC? 20 It’s classed as “Experimental”
  • 21. / What is WebRTC? 21 It’s encrypted
  • 22. / What is WebRTC? 22 Defined by W3C & IETF, just like HTTP
  • 23. / What is WebRTC? “WebRTC (Web Real-Time Communication) is an API definition drafted by the World Wide Web Consortium (W3C) that supports browser-to-browser applications for voice calling, video chat, and P2P file sharing without the need of either internal or external plugins.” 23 According to wikipedia:
  • 24. OK, but what is it? 24
  • 25. / Ok, but what is it? 25 Enables Video, Audio and Data Sharing in your browser, peer to peer, with no plugins
  • 26. / Ok, but what is it? 26 What?! Wait! Too many words!
  • 27. / Ok, but what is it? 27 Video
  • 28. / Ok, but what is it? / Video 28 A browser friendly camera…
  • 29. / Ok, but what is it? / Video But you need a “plugin” for this… shhh! Don’t tell anyone… It’s for security 29 Your screen…
  • 30. / Ok, but what is it? 30 Audio
  • 31. / Ok, but what is it? / Audio 31 A Mic
  • 32. / Ok, but what is it? / Audio Audio APIs 32 An audio stream from an in browser source
  • 34. / Ok, but what is it? / Data Sharing 34 This can be pretty much anything…
  • 35. / Ok, but what is it? / Data Sharing 35 An image from canvas…
  • 36. / Ok, but what is it? / Data Sharing 36 A file
  • 37. / Ok, but what is it? / Data Sharing 37 Web-torrents
  • 38. / Ok, but what is it? / Data Sharing 38 Anything!
  • 40. / Peer to Peer 40 2 peers
  • 41. / Peer to Peer 41 3 peers
  • 42. / Peer to Peer 42 *n peers
  • 43. / Peer to Peer 43 Peers don’t have to be browsers!
  • 44. / Peer to Peer 44 But we’ve had peer to peer technology before, what’s different?
  • 45. / Peer to Peer Direct in your modern browser/app! 45 No plugins!
  • 46. Awesome! So it’s easy to implement? 46
  • 47. / Awesome! It’s primarily a web technology aimed at web developers 47
  • 48. / Awesome! But unfortunately it’s not simple to implement 48
  • 49. / Awesome! You’ll need a signalling server 49
  • 50. / Awesome! / Signalling And signalling isn’t a standard 50
  • 51. / Awesome! / Signalling It might not be very real time though… 51 You could use carrier pigeons!
  • 52. / Awesome! / Signalling But seriously, there are open source ones… 52
  • 53. / Awesome! / Signalling And many providers! 53
  • 54. / Awesome! They’re evolving all the time… and they’re all different… 54 Browser APIs
  • 55. / Awesome! / Browser APIs There’s a few to choose from… 55 Adapter.js
  • 56. / Awesome! / Browser APIs They normalise the browsers 56
  • 57. / var RTCPeerConnection = null; var getUserMedia = null; var attachMediaStream = null; var reattachMediaStream = null; var webrtcDetectedBrowser = null; function trace(text) { // This function is used for logging. if (text[text.length - 1] == 'n') { text = text.substring(0, text.length - 1); } console.log((performance.now() / 1000).toFixed(3) + ": " + text); } if (navigator.mozGetUserMedia) { console.log("This appears to be Firefox"); webrtcDetectedBrowser = "firefox"; // The RTCPeerConnection object. RTCPeerConnection = mozRTCPeerConnection; // The RTCSessionDescription object. RTCSessionDescription = mozRTCSessionDescription; // The RTCIceCandidate object. RTCIceCandidate = mozRTCIceCandidate; // Get UserMedia (only difference is the prefix). // Code from Adam Barth. getUserMedia = navigator.mozGetUserMedia.bind(navigator); // Attach a media stream to an element. attachMediaStream = function(element, stream) { console.log("Attaching media stream"); element.mozSrcObject = stream; element.play(); }; reattachMediaStream = function(to, from) { console.log("Reattaching media stream"); to.mozSrcObject = from.mozSrcObject; to.play(); }; Awesome! / Browser APIs Google has one 57
  • 58. / Awesome! / Browser APIs Plus many others… 58
  • 59. / Awesome! / Browser APIs getUserMedia RTCPeerConnection RTCDataChannel 59
  • 60. / Awesome! / Browser APIs Used to ask your user whether the website can use your media, among other things 60 getUserMedia
  • 61. / Awesome! / Browser APIs Handles the underlying technology to stream media between 2 peers 61 RTCPeerConnection
  • 62. / Awesome! / Browser APIs Transfer arbitrary data between peers. This is what’s really exciting about WebRTC. It makes WebRTC use cases expand infinitely 62 RTCDataChannel
  • 63. / Awesome! / Browser APIs 63 (1) getUserMedia (2) send offer (3) receive Offer (4) getUserMedia (5) send answer (5) receive answer (6) media starts streaming A Simple Diagram…
  • 65. / Firewalls Built in mechanisms to help 65
  • 66. / Firewalls A method to go off to a server and get your IP as seen by the world 66 STUN
  • 67. / Firewalls A server to relay your media through, if a peer to peer connection can’t be established Generally, you need to run one (or more) of these yourself to get good quality 67 TURN
  • 68. OK, I get it… Where can I use it? 68
  • 69. / Where can I use it? 69
  • 70. / Where can I use it? 70
  • 71. / Where can I use it? PeerConnection API ✔ ✔ ✔ ✔ ✗ ✗ ✔ ORTC API ✗ ✗ ✗ ✗ ✗ ✗ getUserMedia ✔ ✔ ✔ ✔ ✗ ✔ simulcast ✔ ✗ ✗ ✗ ✗ ✗ mediaConstraints ✗ ✗ ✗ TURN support ✔ ✔ ✔ ✔ ✗ ✗ ✔ MediaStream API ✔ ✔ ✗ ✗ ✔ WebAudio Integration ✔ ✔ ✔ ✔ ✗ ✗ ✔ dataChannels ✔ ✔ ✔ ✔ ✗ ✗ ✔ Screen Sharing ✗ ✗ ✗ ✗ Stream re-broadcasting ✗ ✗ ✗ ✗ ✗ Multiple Streams ✔ ✔ ✗ ✗ ✗ ✗ ✔ Solid Interop ✗ ✗ Echo cancellation ✔ ✔ ✗ ✗ It’s complicated 71
  • 72. / Where can I use it? With a plugin… 72 LOL…
  • 73. What can I do with it? 73
  • 74. / What can I do with it? Easy answer, use your imagination 74
  • 75. / What can I do with it? Customer Support 75
  • 76. / What can I do with it? Enable easier remote working in Contact Centres 76
  • 77. / What can I do with it? Peer to Peer data transfers in games 77
  • 78. / What can I do with it? Sales 78 Look at products in real time
  • 79. / What can I do with it? And many, many more, you just need imagination 79
  • 80. / What can I do with it? None of these ideas are new But they’re being enabled by the open standard They’ve also got a higher possibility of success as it’s now cheaper to run the service 80
  • 82. / Security Concerns? Of course there are! 82
  • 83. / https://www.browserleaks.com/webrtc Security Concerns? You can obtain a user’s real IP using WebRTC technology 83
  • 84. / Security Concerns? Without the user ever knowing 84 You can transfer ∞ data
  • 85. Things I haven’t even talked about… 85
  • 86. / Not talked about ICE Candidates 86
  • 87. / Not talked about Including Mesh, SFUs and MCUs 87 Network layouts
  • 88. / Not talked about Encryption 88
  • 89. / Not talked about using canvas for example 89 Playing with the streams in your browser
  • 90. / Not talked about / Canvas 90
  • 91. / Not talked about 91 Codecs Opus, G.711, G.722, iLBC, and iSAC VP8 and H264
  • 92. / Not talked about And probably a whole lot more… 92
  • 93. / Not talked about It’s a complex topic 93
  • 94. / Not talked about But it’s not as complicated as VoIP Everyone can get into it 94
  • 95. Want to get started with WebRTC without having to deal with signalling and browser differences? 95
  • 96. / Getting started 96 Check out Respoke, it’s free! www.respoke.io