SlideShare a Scribd company logo
1 of 60
WebRTC
Amitesh Madhur (@amiteshawa)
Cisco Systems
Agenda
1. Media Stream
2. Constraints
3. RTCPeerConnection
4. Network (STUN, TURN)
5. DataChannel
6. Ephemeral password
Peer to peer, plugin free!

X

Server
WebRTC
1. MediaStream
2. RTCPeerConnection

3. DataChannel
Media Stream
1.
2.
3.
4.
5.

getUserMedia
Collects audio, video, screen inputs
Synchronizes Audio & Video
Noise Cancellation
Image Enhancement
<video id=“me" autoplay></video>

navigator.getUserMedia

=

navigator.getUserMedia ||
navigator.webkitGetUserMedia ||
navigator.mozGetUserMedia;

if (navigator.getUserMedia) {
navigator.getUserMedia({video: true}, onSuccess, onError);
}

window.URL = window.URL || window.webkitURL;
var me = document.getElementById('me');
function onSuccess(stream) {
me.src = window.URL.createObjectURL(stream);
}
function onError(e) {
// error
}
Demo
Confused Left/Right?
<style>
video {
-webkit-transform: scaleX(-1);

}
</style>
canvasContext.translate(width, 0);
canvasContext.scale(-1, 1);
<video id=“me" autoplay></video>
<video id=“me" autoplay></video>

navigator.getUserMedia

=

navigator.getUserMedia ||
navigator.webkitGetUserMedia ||
navigator.mozGetUserMedia;

navigator.getUserMedia(
{video: true},
onSuccess, onError);
window.URL = window.URL || window.webkitURL;

if (navigator.getUserMedia) {
navigator.getUserMedia({video: true}, onSuccess, onError);
}

var me = document.getElementById('me');
function onSuccess(stream) {
me.src = window.URL.createObjectURL(stream);
}

Constraints

function onError(e) {
// error
}
Constraints (audio, video)

{audio: true, video: true}
Constraints (video height, width)
{
audio: true,
video: {
mandatory: {
maxWidth: 320,
maxHeight: 180
}
}
}
Constraints for screen capture

getUserMedia({video: {
mandatory: {
chromeMediaSource: 'screen'
}
}, audio: false},
onSuccess, onError);
chromeMediaSource: 'screen'
1. Works only on https
2. chrome://flags/#enable-usermedia-screencapture
Peer Connection
1.
2.
3.
4.

Establish a connection though Signaling
Pass the user media stream
Other side gets the stream
Add the received stream to <video> tag
Demo
github.com/amiteshawa/learn-rtc
<video id=“me" autoplay></video>
<video id=“other" autoplay></video>
peer = new RTCPeerConnection(servers);
peer.onaddstream = gotRemoteStream;
peer.addStream(localStream);
if(host) {
peer.createOffer(callGotOffer, null, {mandatory: {
OfferToReceiveAudio: true,
OfferToReceiveVideo: true}});
} else {
peer.createAnswer(peer.remoteDescription, callGotOffer);
}
function callGotOffer(sd) {
peer.setLocalDescription(sd);
}
function gotAnswer(desc) {
peer.setRemoteDescription(new RTCSessionDescription(desc));
}
function gotRemoteStream(e) {
attachMediaStream(remoteVideo, e.stream);
}
<video id=“me" autoplay></video>
<video id=“other" autoplay></video>
peer = new RTCPeerConnection(servers);
peer.onaddstream = gotRemoteStream;
peer.addStream(localStream);
if(host) {
peer.createOffer(callGotOffer, null, {mandatory: {
OfferToReceiveAudio: true,
var STUN, TURN, config = {};
OfferToReceiveVideo: true}});
} STUN {= { url: “stun:stun.l.google.com:19302”};
else
peer.createAnswer(peer.remoteDescription, callGotOffer);
TURN = { username: “turn-user",
}
credential: "NGFmNGRlMOWZmMTVmZGZiNg==",
function callGotOffer(sd) {
url: "turn:10.5.7.13:3333?transport=udp“
peer.setLocalDescription(sd);
}
};
function gotAnswer(desc) {
config.iceServers = [STUN, TURN];
peer.setRemoteDescription(new RTCSessionDescription(desc));
}
function gotRemoteStream(e) {
attachMediaStream(remoteVideo, e.stream);
}
User 1
Page Load
Renders Invite
Button

Websocket

User 2
Page Load

Renders Invite
Button
User 1
Page Load

Websocket
Open connection

User 2

Open connection

Page Load
User 1
Page Load

Websocket
Open connection

GUM

Clicks Invite
Button

Create Invite

User 2

Open connection

Page Load
User 1
Page Load

Websocket
Open connection

Open connection

GUM

Create Invite

User 2

Broadcast Invite

Page Load
User 1
Page Load

Websocket
Open connection

User 2

Open connection

Page Load

GUM

Create Invite

Ignored Invite

Broadcast Invite

Invite Button
Changed to “Join”
User 1
Page Load

Websocket
Open connection

User 2

Open connection

Page Load

GUM

Create Invite

Broadcast Invite

Ignored Invite

Offer SDP

Offer SDP

Invite Button
Changed to “Join”

Clicked Join
Button
GUM
User 1
Page Load

Websocket
Open connection

User 2

Open connection

Page Load

GUM

Create Invite

Broadcast Invite

Ignored Invite
Remote Desc

Offer SDP
Answer SDP

Offer SDP
Answer SDP

Invite Button
Changed to “Join”

Clicked Join
Button
GUM

Remote Desc
User 1
Page Load

Websocket
Open connection

User 2

Open connection

Page Load

GUM

Create Invite

Broadcast Invite

Ignored Invite
Remote Desc

Offer SDP
Answer SDP
ICE Candidate

Offer SDP
Answer SDP

ICE Candidate

Invite Button
Changed to “Join”

Clicked Join
Button
GUM

Remote Desc
User 1
Page Load

User 2

Websocket
Open connection

Open connection

Page Load

GUM

Create Invite

Broadcast Invite

Ignored Invite
Remote Desc

Offer SDP
Answer SDP

Offer SDP
Answer SDP

ICE Candidate

ICE Candidate

ICE Candidate

ICE Candidate

Add Stream

Add Stream

Invite Button
Changed to “Join”

Clicked Join
Button
GUM

Remote Desc
User 1
Page Load

Websocket
Open connection

User 2

Open connection

Page Load

GUM

Create Invite

Broadcast Invite

Ignored Invite
Remote Desc

Offer SDP
Answer SDP

Offer SDP
Answer SDP

ICE Candidate
Add Stream

ICE Candidate

ICE Candidate

Invite Button
Changed to “Join”

Clicked Join
Button
GUM

Remote Desc

ICE Candidate

Add Stream
STUN/TURN and ICE
S
T
U
N

N
A
T

N
A
T
S
T
U
N

N
A
T

Not 100% Reliable
N
A
T
T
U
R
N

N
A
T

S
E
C
U
R
E
N
A
T
T
U
R
N

Expensive & Slow
N
A
T

S
E
C
U
R
E

N
A
T
TURN

ICE

STUN

S
E
C
U
R
E
N
A
T

N
A
T
Public STUN
stun.l.google.com:19302
stun1.l.google.com:19302
stun2.l.google.com:19302
stun3.l.google.com:19302
stun4.l.google.com:19302
Wanna Setup your own?

slideshare.net/amiteshawa/webrtc-media-stra
Data Channel
RTCDataChannel
1.
2.
3.
4.

Peer to peer data sharing
Works with RTCPeerConnection
Secure
Websocket like APIs
webkitRTCPeerConnection(config,
{optional:
[{RtpDataChannels: true}]});
channel =
peer.createDataChannel("sendDataChanne
l",
{reliable:
false});
channel.onopen = manageChannel;
channel.onclose = manageChannel;
},
sendData = function(data){
channel.send(data); },
onMsg = function(e){ obj.innerHTML +=
'He: ' + e.data ; },
manageChannel = function(){
Demo
Ephemeral password
IN JAVASCRIPT
var turn;
turn = {

url: 'turn:<user-name>@<IP>:<PORT>',
credential: ‘password‘

};
// for chrome 28 and above
turn = {
url: 'turn:<IP-address>:<PORT>',
username: ‘<user-name>‘,
credential: ‘<password>'
};
Ephemeral password
1.
2.
3.
4.
5.
6.

Limited time TURN credentials
Based on REST Service
Webserver creates password
Shared secret
TURN Server does NOT implement the REST API
Based on long-term credentials mechanism
long-term credentials
User

TURN
User sends request to TURN without password
long-term credentials
User

TURN
User sends request to TURN without password

TURN send Error 401, with realm and nonce
long-term credentials
User

TURN
User sends request to TURN without password

TURN send Error 401, with realm and nonce
User Checks 401 and extracts realm and nonce
long-term credentials
User

TURN
User sends request to TURN without password

TURN send Error 401, with realm and nonce

User Checks 401 and extracts realm and nonce
User generates MD5 key with user, realm
long-term credentials
User

TURN
User sends request to TURN without password

TURN send Error 401, with realm and nonce

User Checks 401 and extracts realm and nonce
User generates MD5 key with user, realm
User sends new request to TURN with password
long-term credentials
User

TURN
User sends request to TURN without password

TURN send Error 401, with realm and nonce

User Checks 401 and extracts realm and nonce
User generates MD5 key with user, realm
User sends new request to TURN with password
TURN Validates

Matches? Then connected
Long-term password alone does not
solve the problem for WebRTC
Ephemeral credentials
User

TURN

REST Server

my-svc/get-turn-auth
Creates username, password

Shared Secret

Sends username, password

MySQL

Send connection request to TURN
After this it same as long term auth
Create Tables
CREATE TABLE turnusers_lt (
name varchar(512) PRIMARY KEY,
hmackey char(32)
);

CREATE TABLE turn_secret (
value varchar(512)
);

CREATE TABLE allowed_peer_ip (
ip_range varchar(256)
);
CREATE TABLE denied_peer_ip (
ip_range varchar(256)
);
Create REST API
Generate username and credential
username= <USER NAME> + ":" + <timestamp>
password = base64(hmac-sha1(secret, username))
{
"username" : "user1:1393412082",
"password" : "NGFmNzUzZDIxOWE1OWI0NTBmZGZiNg==",
"ttl" : 86400,
"uris" : [
"turn:1.2.3.4:3333?transport=udp"
]
}
var i, uri, iceServer, config = {"iceServers": []};
for (i = 0; i < response.uris.length; ++i) {
uri = response.uris[i];
iceServer = {
"username":response.username,
"credential":response.password,
"uri":uri
};
config.iceServers.push(iceServer);
}
var pc = new PeerConnection(config);
Config
1. In turnserver.conf Uncomment/Enable
1.
2.
3.
4.

lt-cred-mech
use-auth-secret
static-auth-secret
mysql-userdb="host=127.0.0.1 dbname=turn
user=root password= port=3306
connect_timeout=60"
5. realm=foobar
6. fingerprint
7. Start turn: turnserver -c /usr/local/etc/turnserver.conf
Create User & Secret
Create Secret
$ turnadmin --mysql-userdb="host=127.0.0.1
dbname=turn user=root password=
connect_timeout=10" --set-secret=no1knows
>= 21

>= 20

>= 12
WebRTC4all…
Thank you
Twitter: @amiteshawa

More Related Content

What's hot

[발표자료] 오픈소스 Pacemaker 활용한 zabbix 이중화 방안(w/ Zabbix Korea Community)
[발표자료] 오픈소스 Pacemaker 활용한 zabbix 이중화 방안(w/ Zabbix Korea Community) [발표자료] 오픈소스 Pacemaker 활용한 zabbix 이중화 방안(w/ Zabbix Korea Community)
[발표자료] 오픈소스 Pacemaker 활용한 zabbix 이중화 방안(w/ Zabbix Korea Community) 동현 김
 
Deploying IPv6 in OpenStack Environments
Deploying IPv6 in OpenStack EnvironmentsDeploying IPv6 in OpenStack Environments
Deploying IPv6 in OpenStack EnvironmentsShannon McFarland
 
Local DNS with pfSense 2.4 - pfSense Hangout April 2018
Local DNS with pfSense 2.4 - pfSense Hangout April 2018Local DNS with pfSense 2.4 - pfSense Hangout April 2018
Local DNS with pfSense 2.4 - pfSense Hangout April 2018Netgate
 
Cisco-Press-CCNP-and-CCIE-Enterprise-Core-ENCOR-350-401-Official-Cert-Guide.pdf
Cisco-Press-CCNP-and-CCIE-Enterprise-Core-ENCOR-350-401-Official-Cert-Guide.pdfCisco-Press-CCNP-and-CCIE-Enterprise-Core-ENCOR-350-401-Official-Cert-Guide.pdf
Cisco-Press-CCNP-and-CCIE-Enterprise-Core-ENCOR-350-401-Official-Cert-Guide.pdfLeeRonald2
 
VMware Networking, CISCO Nexus 1000V, and CISCO UCS VM-FEX
VMware Networking, CISCO Nexus 1000V, and CISCO UCS VM-FEXVMware Networking, CISCO Nexus 1000V, and CISCO UCS VM-FEX
VMware Networking, CISCO Nexus 1000V, and CISCO UCS VM-FEXDavid Pasek
 
Pacemaker+DRBD
Pacemaker+DRBDPacemaker+DRBD
Pacemaker+DRBDDan Frincu
 
Introduction to CNI (Container Network Interface)
Introduction to CNI (Container Network Interface)Introduction to CNI (Container Network Interface)
Introduction to CNI (Container Network Interface)HungWei Chiu
 
SDN입문 (Overlay and Underlay)
SDN입문 (Overlay and Underlay)SDN입문 (Overlay and Underlay)
SDN입문 (Overlay and Underlay)NAIM Networks, Inc.
 
Unbound/NSD最新情報(OSC 2013 Tokyo/Spring)
Unbound/NSD最新情報(OSC 2013 Tokyo/Spring)Unbound/NSD最新情報(OSC 2013 Tokyo/Spring)
Unbound/NSD最新情報(OSC 2013 Tokyo/Spring)Takashi Takizawa
 
Cisco Wireless LAN Controller Palo Alto Networks Config Guide
Cisco Wireless LAN Controller Palo Alto Networks Config GuideCisco Wireless LAN Controller Palo Alto Networks Config Guide
Cisco Wireless LAN Controller Palo Alto Networks Config GuideAlberto Rivai
 
Service Function Chaining in Openstack Neutron
Service Function Chaining in Openstack NeutronService Function Chaining in Openstack Neutron
Service Function Chaining in Openstack NeutronMichelle Holley
 
VMware Advance Troubleshooting Workshop - Day 4
VMware Advance Troubleshooting Workshop - Day 4VMware Advance Troubleshooting Workshop - Day 4
VMware Advance Troubleshooting Workshop - Day 4Vepsun Technologies
 
Configuring wifi in open embedded builds
Configuring wifi in open embedded buildsConfiguring wifi in open embedded builds
Configuring wifi in open embedded buildsMender.io
 
Open vSwitch 패킷 처리 구조
Open vSwitch 패킷 처리 구조Open vSwitch 패킷 처리 구조
Open vSwitch 패킷 처리 구조Seung-Hoon Baek
 

What's hot (20)

PIW ISE best practices
PIW ISE best practicesPIW ISE best practices
PIW ISE best practices
 
AVB intro
AVB introAVB intro
AVB intro
 
[발표자료] 오픈소스 Pacemaker 활용한 zabbix 이중화 방안(w/ Zabbix Korea Community)
[발표자료] 오픈소스 Pacemaker 활용한 zabbix 이중화 방안(w/ Zabbix Korea Community) [발표자료] 오픈소스 Pacemaker 활용한 zabbix 이중화 방안(w/ Zabbix Korea Community)
[발표자료] 오픈소스 Pacemaker 활용한 zabbix 이중화 방안(w/ Zabbix Korea Community)
 
Deploying IPv6 on OpenStack
Deploying IPv6 on OpenStackDeploying IPv6 on OpenStack
Deploying IPv6 on OpenStack
 
Deploying IPv6 in OpenStack Environments
Deploying IPv6 in OpenStack EnvironmentsDeploying IPv6 in OpenStack Environments
Deploying IPv6 in OpenStack Environments
 
Local DNS with pfSense 2.4 - pfSense Hangout April 2018
Local DNS with pfSense 2.4 - pfSense Hangout April 2018Local DNS with pfSense 2.4 - pfSense Hangout April 2018
Local DNS with pfSense 2.4 - pfSense Hangout April 2018
 
Linux Network Stack
Linux Network StackLinux Network Stack
Linux Network Stack
 
Cisco-Press-CCNP-and-CCIE-Enterprise-Core-ENCOR-350-401-Official-Cert-Guide.pdf
Cisco-Press-CCNP-and-CCIE-Enterprise-Core-ENCOR-350-401-Official-Cert-Guide.pdfCisco-Press-CCNP-and-CCIE-Enterprise-Core-ENCOR-350-401-Official-Cert-Guide.pdf
Cisco-Press-CCNP-and-CCIE-Enterprise-Core-ENCOR-350-401-Official-Cert-Guide.pdf
 
VMware Networking, CISCO Nexus 1000V, and CISCO UCS VM-FEX
VMware Networking, CISCO Nexus 1000V, and CISCO UCS VM-FEXVMware Networking, CISCO Nexus 1000V, and CISCO UCS VM-FEX
VMware Networking, CISCO Nexus 1000V, and CISCO UCS VM-FEX
 
Pacemaker+DRBD
Pacemaker+DRBDPacemaker+DRBD
Pacemaker+DRBD
 
Introduction to CNI (Container Network Interface)
Introduction to CNI (Container Network Interface)Introduction to CNI (Container Network Interface)
Introduction to CNI (Container Network Interface)
 
SDN입문 (Overlay and Underlay)
SDN입문 (Overlay and Underlay)SDN입문 (Overlay and Underlay)
SDN입문 (Overlay and Underlay)
 
EMEA Airheads- Aruba 8.x Architecture overview & UI Navigation
EMEA Airheads- Aruba 8.x Architecture overview & UI NavigationEMEA Airheads- Aruba 8.x Architecture overview & UI Navigation
EMEA Airheads- Aruba 8.x Architecture overview & UI Navigation
 
Unbound/NSD最新情報(OSC 2013 Tokyo/Spring)
Unbound/NSD最新情報(OSC 2013 Tokyo/Spring)Unbound/NSD最新情報(OSC 2013 Tokyo/Spring)
Unbound/NSD最新情報(OSC 2013 Tokyo/Spring)
 
Cisco Wireless LAN Controller Palo Alto Networks Config Guide
Cisco Wireless LAN Controller Palo Alto Networks Config GuideCisco Wireless LAN Controller Palo Alto Networks Config Guide
Cisco Wireless LAN Controller Palo Alto Networks Config Guide
 
Service Function Chaining in Openstack Neutron
Service Function Chaining in Openstack NeutronService Function Chaining in Openstack Neutron
Service Function Chaining in Openstack Neutron
 
VMware Advance Troubleshooting Workshop - Day 4
VMware Advance Troubleshooting Workshop - Day 4VMware Advance Troubleshooting Workshop - Day 4
VMware Advance Troubleshooting Workshop - Day 4
 
Configuring wifi in open embedded builds
Configuring wifi in open embedded buildsConfiguring wifi in open embedded builds
Configuring wifi in open embedded builds
 
Large scale, distributed access management deployment with aruba clear pass
Large scale, distributed access management deployment with aruba clear passLarge scale, distributed access management deployment with aruba clear pass
Large scale, distributed access management deployment with aruba clear pass
 
Open vSwitch 패킷 처리 구조
Open vSwitch 패킷 처리 구조Open vSwitch 패킷 처리 구조
Open vSwitch 패킷 처리 구조
 

Viewers also liked

Server-side WebRTC Infrastructure
Server-side WebRTC InfrastructureServer-side WebRTC Infrastructure
Server-side WebRTC InfrastructureDialogic Inc.
 
WebRTC + Socket.io: building a skype-like video chat with native javascript
WebRTC + Socket.io: building a skype-like video chat with native javascriptWebRTC + Socket.io: building a skype-like video chat with native javascript
WebRTC + Socket.io: building a skype-like video chat with native javascriptMichele Di Salvatore
 
WebRTC with Java
WebRTC with JavaWebRTC with Java
WebRTC with Javaamithap07
 
How I built a WebRTC enabled website in 20 minutes!
How I built a WebRTC enabled website in 20 minutes!How I built a WebRTC enabled website in 20 minutes!
How I built a WebRTC enabled website in 20 minutes!Paul Richards
 
Amitesh Madhur - Web workers, HTML 5
Amitesh Madhur - Web workers, HTML 5Amitesh Madhur - Web workers, HTML 5
Amitesh Madhur - Web workers, HTML 5Amitesh Madhur
 
Interactive buttonsを利用したbotをつくってみた
Interactive buttonsを利用したbotをつくってみたInteractive buttonsを利用したbotをつくってみた
Interactive buttonsを利用したbotをつくってみたMasakazu Matsushita
 
To Build or Not to Build Your WebRTC Infrastructure
To Build or Not to Build Your WebRTC InfrastructureTo Build or Not to Build Your WebRTC Infrastructure
To Build or Not to Build Your WebRTC InfrastructureTsahi Levent-levi
 
Integrate WebRTC Video in an App in Less Than 20 Minutes
Integrate WebRTC Video in an App in Less Than 20 MinutesIntegrate WebRTC Video in an App in Less Than 20 Minutes
Integrate WebRTC Video in an App in Less Than 20 MinutesWeemo, Inc.
 
WebRTC overview
WebRTC overviewWebRTC overview
WebRTC overviewRouyun Pan
 
TranslimitにおけるAWS活用術
TranslimitにおけるAWS活用術TranslimitにおけるAWS活用術
TranslimitにおけるAWS活用術Masakazu Matsushita
 
Vincent Laberge colloque EDUlib 2017
Vincent Laberge colloque EDUlib 2017Vincent Laberge colloque EDUlib 2017
Vincent Laberge colloque EDUlib 2017Vincent Laberge
 
N2W Partnership overview
N2W Partnership overviewN2W Partnership overview
N2W Partnership overviewTara Jones
 

Viewers also liked (20)

WebRTC for Managers!
WebRTC for Managers!WebRTC for Managers!
WebRTC for Managers!
 
WebRTC DataChannels demystified
WebRTC DataChannels demystifiedWebRTC DataChannels demystified
WebRTC DataChannels demystified
 
Server-side WebRTC Infrastructure
Server-side WebRTC InfrastructureServer-side WebRTC Infrastructure
Server-side WebRTC Infrastructure
 
WebRTC + Socket.io: building a skype-like video chat with native javascript
WebRTC + Socket.io: building a skype-like video chat with native javascriptWebRTC + Socket.io: building a skype-like video chat with native javascript
WebRTC + Socket.io: building a skype-like video chat with native javascript
 
WebRTC with Java
WebRTC with JavaWebRTC with Java
WebRTC with Java
 
How I built a WebRTC enabled website in 20 minutes!
How I built a WebRTC enabled website in 20 minutes!How I built a WebRTC enabled website in 20 minutes!
How I built a WebRTC enabled website in 20 minutes!
 
Amitesh Madhur - Web workers, HTML 5
Amitesh Madhur - Web workers, HTML 5Amitesh Madhur - Web workers, HTML 5
Amitesh Madhur - Web workers, HTML 5
 
Arinjay
ArinjayArinjay
Arinjay
 
ダブルCTO
ダブルCTOダブルCTO
ダブルCTO
 
Interactive buttonsを利用したbotをつくってみた
Interactive buttonsを利用したbotをつくってみたInteractive buttonsを利用したbotをつくってみた
Interactive buttonsを利用したbotをつくってみた
 
To Build or Not to Build Your WebRTC Infrastructure
To Build or Not to Build Your WebRTC InfrastructureTo Build or Not to Build Your WebRTC Infrastructure
To Build or Not to Build Your WebRTC Infrastructure
 
Integrate WebRTC Video in an App in Less Than 20 Minutes
Integrate WebRTC Video in an App in Less Than 20 MinutesIntegrate WebRTC Video in an App in Less Than 20 Minutes
Integrate WebRTC Video in an App in Less Than 20 Minutes
 
WebRTC overview
WebRTC overviewWebRTC overview
WebRTC overview
 
TranslimitにおけるAWS活用術
TranslimitにおけるAWS活用術TranslimitにおけるAWS活用術
TranslimitにおけるAWS活用術
 
Carta Náutica do Porto de Lisboa - março de 2017
Carta Náutica do Porto de Lisboa - março de 2017Carta Náutica do Porto de Lisboa - março de 2017
Carta Náutica do Porto de Lisboa - março de 2017
 
C All 2008 7 26
C All 2008 7 26C All 2008 7 26
C All 2008 7 26
 
Vincent Laberge colloque EDUlib 2017
Vincent Laberge colloque EDUlib 2017Vincent Laberge colloque EDUlib 2017
Vincent Laberge colloque EDUlib 2017
 
Lil bibby
Lil bibbyLil bibby
Lil bibby
 
Do work
Do workDo work
Do work
 
N2W Partnership overview
N2W Partnership overviewN2W Partnership overview
N2W Partnership overview
 

Similar to Setup ephemeral password for TURN, Learn RTC in less than 200 Lines of code

Chrome Dev Summit 2020 Extended: Improve Your Web Authentication Security
Chrome Dev Summit 2020 Extended:  Improve Your Web Authentication SecurityChrome Dev Summit 2020 Extended:  Improve Your Web Authentication Security
Chrome Dev Summit 2020 Extended: Improve Your Web Authentication SecurityYu-Shuan Hsieh
 
The Identity Problem of the Web and how to solve it
The Identity Problem of the Web and how to solve itThe Identity Problem of the Web and how to solve it
The Identity Problem of the Web and how to solve itBastian Hofmann
 
KrankyGeek 2015 - Mixing Data and Video - IBM Bluemix, Watson, and Twilio
KrankyGeek 2015 - Mixing Data and Video - IBM Bluemix, Watson, and TwilioKrankyGeek 2015 - Mixing Data and Video - IBM Bluemix, Watson, and Twilio
KrankyGeek 2015 - Mixing Data and Video - IBM Bluemix, Watson, and TwilioJeff Sloyer
 
Using Websockets with Play!
Using Websockets with Play!Using Websockets with Play!
Using Websockets with Play!Andrew Conner
 
Devteach 2017 OAuth and Open id connect demystified
Devteach 2017 OAuth and Open id connect demystifiedDevteach 2017 OAuth and Open id connect demystified
Devteach 2017 OAuth and Open id connect demystifiedTaswar Bhatti
 
Sea surfing in asp.net mvc
Sea surfing in asp.net mvcSea surfing in asp.net mvc
Sea surfing in asp.net mvcmagda3695
 
Enhancing Mobile User Experience with WebSocket
Enhancing Mobile User Experience with WebSocketEnhancing Mobile User Experience with WebSocket
Enhancing Mobile User Experience with WebSocketMauricio "Maltron" Leal
 
WebSockets: The Current State of the Most Valuable HTML5 API for Java Developers
WebSockets: The Current State of the Most Valuable HTML5 API for Java DevelopersWebSockets: The Current State of the Most Valuable HTML5 API for Java Developers
WebSockets: The Current State of the Most Valuable HTML5 API for Java DevelopersViktor Gamov
 
ISBG The 3 S's a guide to single sign on
ISBG  The 3 S's a guide to single sign onISBG  The 3 S's a guide to single sign on
ISBG The 3 S's a guide to single sign onGabriella Davis
 
Indianapolis mule soft_meetup_30_jan_2021 (1)
Indianapolis mule soft_meetup_30_jan_2021 (1)Indianapolis mule soft_meetup_30_jan_2021 (1)
Indianapolis mule soft_meetup_30_jan_2021 (1)ikram_ahamed
 
Vp nwebcast williams_wallaboswell
Vp nwebcast williams_wallaboswellVp nwebcast williams_wallaboswell
Vp nwebcast williams_wallaboswellscetinkaya
 
15-auth-session-mgmt.ppt
15-auth-session-mgmt.ppt15-auth-session-mgmt.ppt
15-auth-session-mgmt.pptssuserec53e73
 
vlavrynovych - WebSockets Presentation
vlavrynovych - WebSockets Presentationvlavrynovych - WebSockets Presentation
vlavrynovych - WebSockets PresentationVolodymyr Lavrynovych
 
Realtime Web Apps in 2014 & Beyond
Realtime Web Apps in 2014 & BeyondRealtime Web Apps in 2014 & Beyond
Realtime Web Apps in 2014 & BeyondPhil Leggetter
 
Easy logins for JavaScript web applications
Easy logins for JavaScript web applicationsEasy logins for JavaScript web applications
Easy logins for JavaScript web applicationsFrancois Marier
 
Going realtime with Socket.IO
Going realtime with Socket.IOGoing realtime with Socket.IO
Going realtime with Socket.IOChristian Joudrey
 
The Physical World meets the Web
The Physical World meets the WebThe Physical World meets the Web
The Physical World meets the WebMaximiliano Firtman
 
Open Id, O Auth And Webservices
Open Id, O Auth And WebservicesOpen Id, O Auth And Webservices
Open Id, O Auth And WebservicesMyles Eftos
 

Similar to Setup ephemeral password for TURN, Learn RTC in less than 200 Lines of code (20)

Chrome Dev Summit 2020 Extended: Improve Your Web Authentication Security
Chrome Dev Summit 2020 Extended:  Improve Your Web Authentication SecurityChrome Dev Summit 2020 Extended:  Improve Your Web Authentication Security
Chrome Dev Summit 2020 Extended: Improve Your Web Authentication Security
 
The Identity Problem of the Web and how to solve it
The Identity Problem of the Web and how to solve itThe Identity Problem of the Web and how to solve it
The Identity Problem of the Web and how to solve it
 
Lecture 20101124
Lecture 20101124Lecture 20101124
Lecture 20101124
 
KrankyGeek 2015 - Mixing Data and Video - IBM Bluemix, Watson, and Twilio
KrankyGeek 2015 - Mixing Data and Video - IBM Bluemix, Watson, and TwilioKrankyGeek 2015 - Mixing Data and Video - IBM Bluemix, Watson, and Twilio
KrankyGeek 2015 - Mixing Data and Video - IBM Bluemix, Watson, and Twilio
 
Using Websockets with Play!
Using Websockets with Play!Using Websockets with Play!
Using Websockets with Play!
 
Devteach 2017 OAuth and Open id connect demystified
Devteach 2017 OAuth and Open id connect demystifiedDevteach 2017 OAuth and Open id connect demystified
Devteach 2017 OAuth and Open id connect demystified
 
Sea surfing in asp.net mvc
Sea surfing in asp.net mvcSea surfing in asp.net mvc
Sea surfing in asp.net mvc
 
Enhancing Mobile User Experience with WebSocket
Enhancing Mobile User Experience with WebSocketEnhancing Mobile User Experience with WebSocket
Enhancing Mobile User Experience with WebSocket
 
WebSockets: The Current State of the Most Valuable HTML5 API for Java Developers
WebSockets: The Current State of the Most Valuable HTML5 API for Java DevelopersWebSockets: The Current State of the Most Valuable HTML5 API for Java Developers
WebSockets: The Current State of the Most Valuable HTML5 API for Java Developers
 
ISBG The 3 S's a guide to single sign on
ISBG  The 3 S's a guide to single sign onISBG  The 3 S's a guide to single sign on
ISBG The 3 S's a guide to single sign on
 
Introduction to OAuth
Introduction to OAuthIntroduction to OAuth
Introduction to OAuth
 
Indianapolis mule soft_meetup_30_jan_2021 (1)
Indianapolis mule soft_meetup_30_jan_2021 (1)Indianapolis mule soft_meetup_30_jan_2021 (1)
Indianapolis mule soft_meetup_30_jan_2021 (1)
 
Vp nwebcast williams_wallaboswell
Vp nwebcast williams_wallaboswellVp nwebcast williams_wallaboswell
Vp nwebcast williams_wallaboswell
 
15-auth-session-mgmt.ppt
15-auth-session-mgmt.ppt15-auth-session-mgmt.ppt
15-auth-session-mgmt.ppt
 
vlavrynovych - WebSockets Presentation
vlavrynovych - WebSockets Presentationvlavrynovych - WebSockets Presentation
vlavrynovych - WebSockets Presentation
 
Realtime Web Apps in 2014 & Beyond
Realtime Web Apps in 2014 & BeyondRealtime Web Apps in 2014 & Beyond
Realtime Web Apps in 2014 & Beyond
 
Easy logins for JavaScript web applications
Easy logins for JavaScript web applicationsEasy logins for JavaScript web applications
Easy logins for JavaScript web applications
 
Going realtime with Socket.IO
Going realtime with Socket.IOGoing realtime with Socket.IO
Going realtime with Socket.IO
 
The Physical World meets the Web
The Physical World meets the WebThe Physical World meets the Web
The Physical World meets the Web
 
Open Id, O Auth And Webservices
Open Id, O Auth And WebservicesOpen Id, O Auth And Webservices
Open Id, O Auth And Webservices
 

Recently uploaded

Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clashcharlottematthew16
 
The Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfThe Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfSeasiaInfotech2
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationSlibray Presentation
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxNavinnSomaal
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsMiki Katsuragi
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostZilliz
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxhariprasad279825
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 

Recently uploaded (20)

Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clash
 
The Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfThe Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdf
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
Connect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck PresentationConnect Wave/ connectwave Pitch Deck Presentation
Connect Wave/ connectwave Pitch Deck Presentation
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
Vertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering TipsVertex AI Gemini Prompt Engineering Tips
Vertex AI Gemini Prompt Engineering Tips
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptx
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 

Setup ephemeral password for TURN, Learn RTC in less than 200 Lines of code