SlideShare a Scribd company logo
1 of 97
Download to read offline
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 journeyDan 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 PolidoriAlessandro 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
 
Astricon 2016 - Scaling ARI and Production
Astricon 2016 - Scaling ARI and ProductionAstricon 2016 - Scaling ARI and Production
Astricon 2016 - Scaling ARI and ProductionDan 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 applicationDan 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 3Amir Zmora
 
DYI - Starting your own webrtc project
DYI - Starting your own webrtc projectDYI - Starting your own webrtc project
DYI - Starting your own webrtc projectAlexandre Gouaillard
 
Quality Assurance for WebRTC Services
Quality Assurance for WebRTC ServicesQuality Assurance for WebRTC Services
Quality Assurance for WebRTC ServicesTsahi Levent-levi
 
Programming for the Internet of Things
Programming for the Internet of ThingsProgramming for the Internet of Things
Programming for the Internet of ThingsKinoma
 
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 ProductionKinoma
 
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 - CDDaniel Garcia (a.k.a cr0hn)
 
WebRTC Overview by Dan Burnett
WebRTC Overview by Dan BurnettWebRTC Overview by Dan Burnett
WebRTC Overview by Dan BurnettMojo 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 BreaksMojo 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-REDibhi
 
Reactive web
Reactive webReactive web
Reactive webdega1999
 
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 RebornTwilio Inc
 
WebRTC Reborn Hackference
WebRTC Reborn HackferenceWebRTC Reborn Hackference
WebRTC Reborn HackferenceDan Jenkins
 
WebRTC Reborn - Full Stack
WebRTC Reborn  - Full StackWebRTC Reborn  - Full Stack
WebRTC Reborn - Full StackDan Jenkins
 
WebRTC Reborn - Cloud Expo / WebRTC Summit
WebRTC Reborn - Cloud Expo / WebRTC SummitWebRTC Reborn - Cloud Expo / WebRTC Summit
WebRTC Reborn - Cloud Expo / WebRTC SummitDan Jenkins
 
WebRTC: A front-end perspective
WebRTC: A front-end perspectiveWebRTC: A front-end perspective
WebRTC: A front-end perspectiveshwetank
 
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 WebRTCChad 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 PreconferenceTsahi 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 - RTE2020Alberto 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 .pdfatyenoria
 
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 TutorialTsahi Levent-levi
 
The State of WebRTC
The State of WebRTCThe State of WebRTC
The State of WebRTCRobin Hawkes
 
Decentralising data distribution
Decentralising data distributionDecentralising data distribution
Decentralising data distributiondennis_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 DevelopmentMatthew Farina
 
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: 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 SomethingDigium
 
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 2023Chris Grundemann
 
KITE Network Instrumentation: Advanced WebRTC Testing
KITE Network Instrumentation: Advanced WebRTC TestingKITE Network Instrumentation: Advanced WebRTC Testing
KITE Network Instrumentation: Advanced WebRTC TestingAlexandre 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
 
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: 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
 
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 SucksDan Jenkins
 
Professional AV with WebRTC
Professional AV with WebRTCProfessional AV with WebRTC
Professional AV with WebRTCDan Jenkins
 
Getting started with WebRTC
Getting started with WebRTCGetting started with WebRTC
Getting started with WebRTCDan 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 WebRTCDan 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 hackferenceDan 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 TorontoDan 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 browserDan 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 browserDan 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 BusinessDan 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 DADan Jenkins
 
Building 21st Century Contact Centre Applications
Building 21st Century Contact Centre ApplicationsBuilding 21st Century Contact Centre Applications
Building 21st Century Contact Centre ApplicationsDan 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 2013Dan 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

Moving Beyond Twitter/X and Facebook - Social Media for local news providers
Moving Beyond Twitter/X and Facebook - Social Media for local news providersMoving Beyond Twitter/X and Facebook - Social Media for local news providers
Moving Beyond Twitter/X and Facebook - Social Media for local news providersDamian Radcliffe
 
Nanded City ( Call Girls ) Pune 6297143586 Hot Model With Sexy Bhabi Ready ...
Nanded City ( Call Girls ) Pune  6297143586  Hot Model With Sexy Bhabi Ready ...Nanded City ( Call Girls ) Pune  6297143586  Hot Model With Sexy Bhabi Ready ...
Nanded City ( Call Girls ) Pune 6297143586 Hot Model With Sexy Bhabi Ready ...tanu pandey
 
'Future Evolution of the Internet' delivered by Geoff Huston at Everything Op...
'Future Evolution of the Internet' delivered by Geoff Huston at Everything Op...'Future Evolution of the Internet' delivered by Geoff Huston at Everything Op...
'Future Evolution of the Internet' delivered by Geoff Huston at Everything Op...APNIC
 
Delhi Call Girls Rohini 9711199171 ☎✔👌✔ Whatsapp Hard And Sexy Vip Call
Delhi Call Girls Rohini 9711199171 ☎✔👌✔ Whatsapp Hard And Sexy Vip CallDelhi Call Girls Rohini 9711199171 ☎✔👌✔ Whatsapp Hard And Sexy Vip Call
Delhi Call Girls Rohini 9711199171 ☎✔👌✔ Whatsapp Hard And Sexy Vip Callshivangimorya083
 
Call Now ☎ 8264348440 !! Call Girls in Green Park Escort Service Delhi N.C.R.
Call Now ☎ 8264348440 !! Call Girls in Green Park Escort Service Delhi N.C.R.Call Now ☎ 8264348440 !! Call Girls in Green Park Escort Service Delhi N.C.R.
Call Now ☎ 8264348440 !! Call Girls in Green Park Escort Service Delhi N.C.R.soniya singh
 
Call Girls In Pratap Nagar Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Pratap Nagar Delhi 💯Call Us 🔝8264348440🔝Call Girls In Pratap Nagar Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Pratap Nagar Delhi 💯Call Us 🔝8264348440🔝soniya singh
 
Call Girls In Ashram Chowk Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Ashram Chowk Delhi 💯Call Us 🔝8264348440🔝Call Girls In Ashram Chowk Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Ashram Chowk Delhi 💯Call Us 🔝8264348440🔝soniya singh
 
Pune Airport ( Call Girls ) Pune 6297143586 Hot Model With Sexy Bhabi Ready...
Pune Airport ( Call Girls ) Pune  6297143586  Hot Model With Sexy Bhabi Ready...Pune Airport ( Call Girls ) Pune  6297143586  Hot Model With Sexy Bhabi Ready...
Pune Airport ( Call Girls ) Pune 6297143586 Hot Model With Sexy Bhabi Ready...tanu pandey
 
On Starlink, presented by Geoff Huston at NZNOG 2024
On Starlink, presented by Geoff Huston at NZNOG 2024On Starlink, presented by Geoff Huston at NZNOG 2024
On Starlink, presented by Geoff Huston at NZNOG 2024APNIC
 
Networking in the Penumbra presented by Geoff Huston at NZNOG
Networking in the Penumbra presented by Geoff Huston at NZNOGNetworking in the Penumbra presented by Geoff Huston at NZNOG
Networking in the Penumbra presented by Geoff Huston at NZNOGAPNIC
 
WhatsApp 📞 8448380779 ✅Call Girls In Mamura Sector 66 ( Noida)
WhatsApp 📞 8448380779 ✅Call Girls In Mamura Sector 66 ( Noida)WhatsApp 📞 8448380779 ✅Call Girls In Mamura Sector 66 ( Noida)
WhatsApp 📞 8448380779 ✅Call Girls In Mamura Sector 66 ( Noida)Delhi Call girls
 
CALL ON ➥8923113531 🔝Call Girls Lucknow Lucknow best sexual service Online
CALL ON ➥8923113531 🔝Call Girls Lucknow Lucknow best sexual service OnlineCALL ON ➥8923113531 🔝Call Girls Lucknow Lucknow best sexual service Online
CALL ON ➥8923113531 🔝Call Girls Lucknow Lucknow best sexual service Onlineanilsa9823
 
✂️ 👅 Independent Andheri Escorts With Room Vashi Call Girls 💃 9004004663
✂️ 👅 Independent Andheri Escorts With Room Vashi Call Girls 💃 9004004663✂️ 👅 Independent Andheri Escorts With Room Vashi Call Girls 💃 9004004663
✂️ 👅 Independent Andheri Escorts With Room Vashi Call Girls 💃 9004004663Call Girls Mumbai
 
GDG Cloud Southlake 32: Kyle Hettinger: Demystifying the Dark Web
GDG Cloud Southlake 32: Kyle Hettinger: Demystifying the Dark WebGDG Cloud Southlake 32: Kyle Hettinger: Demystifying the Dark Web
GDG Cloud Southlake 32: Kyle Hettinger: Demystifying the Dark WebJames Anderson
 
Enjoy Night⚡Call Girls Dlf City Phase 3 Gurgaon >༒8448380779 Escort Service
Enjoy Night⚡Call Girls Dlf City Phase 3 Gurgaon >༒8448380779 Escort ServiceEnjoy Night⚡Call Girls Dlf City Phase 3 Gurgaon >༒8448380779 Escort Service
Enjoy Night⚡Call Girls Dlf City Phase 3 Gurgaon >༒8448380779 Escort ServiceDelhi Call girls
 
VIP 7001035870 Find & Meet Hyderabad Call Girls LB Nagar high-profile Call Girl
VIP 7001035870 Find & Meet Hyderabad Call Girls LB Nagar high-profile Call GirlVIP 7001035870 Find & Meet Hyderabad Call Girls LB Nagar high-profile Call Girl
VIP 7001035870 Find & Meet Hyderabad Call Girls LB Nagar high-profile Call Girladitipandeya
 

Recently uploaded (20)

Moving Beyond Twitter/X and Facebook - Social Media for local news providers
Moving Beyond Twitter/X and Facebook - Social Media for local news providersMoving Beyond Twitter/X and Facebook - Social Media for local news providers
Moving Beyond Twitter/X and Facebook - Social Media for local news providers
 
Nanded City ( Call Girls ) Pune 6297143586 Hot Model With Sexy Bhabi Ready ...
Nanded City ( Call Girls ) Pune  6297143586  Hot Model With Sexy Bhabi Ready ...Nanded City ( Call Girls ) Pune  6297143586  Hot Model With Sexy Bhabi Ready ...
Nanded City ( Call Girls ) Pune 6297143586 Hot Model With Sexy Bhabi Ready ...
 
'Future Evolution of the Internet' delivered by Geoff Huston at Everything Op...
'Future Evolution of the Internet' delivered by Geoff Huston at Everything Op...'Future Evolution of the Internet' delivered by Geoff Huston at Everything Op...
'Future Evolution of the Internet' delivered by Geoff Huston at Everything Op...
 
Delhi Call Girls Rohini 9711199171 ☎✔👌✔ Whatsapp Hard And Sexy Vip Call
Delhi Call Girls Rohini 9711199171 ☎✔👌✔ Whatsapp Hard And Sexy Vip CallDelhi Call Girls Rohini 9711199171 ☎✔👌✔ Whatsapp Hard And Sexy Vip Call
Delhi Call Girls Rohini 9711199171 ☎✔👌✔ Whatsapp Hard And Sexy Vip Call
 
Call Now ☎ 8264348440 !! Call Girls in Green Park Escort Service Delhi N.C.R.
Call Now ☎ 8264348440 !! Call Girls in Green Park Escort Service Delhi N.C.R.Call Now ☎ 8264348440 !! Call Girls in Green Park Escort Service Delhi N.C.R.
Call Now ☎ 8264348440 !! Call Girls in Green Park Escort Service Delhi N.C.R.
 
Call Girls In Pratap Nagar Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Pratap Nagar Delhi 💯Call Us 🔝8264348440🔝Call Girls In Pratap Nagar Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Pratap Nagar Delhi 💯Call Us 🔝8264348440🔝
 
Rohini Sector 26 Call Girls Delhi 9999965857 @Sabina Saikh No Advance
Rohini Sector 26 Call Girls Delhi 9999965857 @Sabina Saikh No AdvanceRohini Sector 26 Call Girls Delhi 9999965857 @Sabina Saikh No Advance
Rohini Sector 26 Call Girls Delhi 9999965857 @Sabina Saikh No Advance
 
VVVIP Call Girls In Connaught Place ➡️ Delhi ➡️ 9999965857 🚀 No Advance 24HRS...
VVVIP Call Girls In Connaught Place ➡️ Delhi ➡️ 9999965857 🚀 No Advance 24HRS...VVVIP Call Girls In Connaught Place ➡️ Delhi ➡️ 9999965857 🚀 No Advance 24HRS...
VVVIP Call Girls In Connaught Place ➡️ Delhi ➡️ 9999965857 🚀 No Advance 24HRS...
 
Call Girls In Ashram Chowk Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Ashram Chowk Delhi 💯Call Us 🔝8264348440🔝Call Girls In Ashram Chowk Delhi 💯Call Us 🔝8264348440🔝
Call Girls In Ashram Chowk Delhi 💯Call Us 🔝8264348440🔝
 
Pune Airport ( Call Girls ) Pune 6297143586 Hot Model With Sexy Bhabi Ready...
Pune Airport ( Call Girls ) Pune  6297143586  Hot Model With Sexy Bhabi Ready...Pune Airport ( Call Girls ) Pune  6297143586  Hot Model With Sexy Bhabi Ready...
Pune Airport ( Call Girls ) Pune 6297143586 Hot Model With Sexy Bhabi Ready...
 
On Starlink, presented by Geoff Huston at NZNOG 2024
On Starlink, presented by Geoff Huston at NZNOG 2024On Starlink, presented by Geoff Huston at NZNOG 2024
On Starlink, presented by Geoff Huston at NZNOG 2024
 
Networking in the Penumbra presented by Geoff Huston at NZNOG
Networking in the Penumbra presented by Geoff Huston at NZNOGNetworking in the Penumbra presented by Geoff Huston at NZNOG
Networking in the Penumbra presented by Geoff Huston at NZNOG
 
WhatsApp 📞 8448380779 ✅Call Girls In Mamura Sector 66 ( Noida)
WhatsApp 📞 8448380779 ✅Call Girls In Mamura Sector 66 ( Noida)WhatsApp 📞 8448380779 ✅Call Girls In Mamura Sector 66 ( Noida)
WhatsApp 📞 8448380779 ✅Call Girls In Mamura Sector 66 ( Noida)
 
Rohini Sector 22 Call Girls Delhi 9999965857 @Sabina Saikh No Advance
Rohini Sector 22 Call Girls Delhi 9999965857 @Sabina Saikh No AdvanceRohini Sector 22 Call Girls Delhi 9999965857 @Sabina Saikh No Advance
Rohini Sector 22 Call Girls Delhi 9999965857 @Sabina Saikh No Advance
 
Russian Call Girls in %(+971524965298 )# Call Girls in Dubai
Russian Call Girls in %(+971524965298  )#  Call Girls in DubaiRussian Call Girls in %(+971524965298  )#  Call Girls in Dubai
Russian Call Girls in %(+971524965298 )# Call Girls in Dubai
 
CALL ON ➥8923113531 🔝Call Girls Lucknow Lucknow best sexual service Online
CALL ON ➥8923113531 🔝Call Girls Lucknow Lucknow best sexual service OnlineCALL ON ➥8923113531 🔝Call Girls Lucknow Lucknow best sexual service Online
CALL ON ➥8923113531 🔝Call Girls Lucknow Lucknow best sexual service Online
 
✂️ 👅 Independent Andheri Escorts With Room Vashi Call Girls 💃 9004004663
✂️ 👅 Independent Andheri Escorts With Room Vashi Call Girls 💃 9004004663✂️ 👅 Independent Andheri Escorts With Room Vashi Call Girls 💃 9004004663
✂️ 👅 Independent Andheri Escorts With Room Vashi Call Girls 💃 9004004663
 
GDG Cloud Southlake 32: Kyle Hettinger: Demystifying the Dark Web
GDG Cloud Southlake 32: Kyle Hettinger: Demystifying the Dark WebGDG Cloud Southlake 32: Kyle Hettinger: Demystifying the Dark Web
GDG Cloud Southlake 32: Kyle Hettinger: Demystifying the Dark Web
 
Enjoy Night⚡Call Girls Dlf City Phase 3 Gurgaon >༒8448380779 Escort Service
Enjoy Night⚡Call Girls Dlf City Phase 3 Gurgaon >༒8448380779 Escort ServiceEnjoy Night⚡Call Girls Dlf City Phase 3 Gurgaon >༒8448380779 Escort Service
Enjoy Night⚡Call Girls Dlf City Phase 3 Gurgaon >༒8448380779 Escort Service
 
VIP 7001035870 Find & Meet Hyderabad Call Girls LB Nagar high-profile Call Girl
VIP 7001035870 Find & Meet Hyderabad Call Girls LB Nagar high-profile Call GirlVIP 7001035870 Find & Meet Hyderabad Call Girls LB Nagar high-profile Call Girl
VIP 7001035870 Find & Meet Hyderabad Call Girls LB Nagar high-profile Call Girl
 

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