SlideShare ist ein Scribd-Unternehmen logo
1 von 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

Weitere ähnliche Inhalte

Was ist angesagt?

FreeSWITCH Cluster by K8s
FreeSWITCH Cluster by K8sFreeSWITCH Cluster by K8s
FreeSWITCH Cluster by K8sChien Cheng Wu
 
Real Time Communication using Node.js and Socket.io
Real Time Communication using Node.js and Socket.ioReal Time Communication using Node.js and Socket.io
Real Time Communication using Node.js and Socket.ioMindfire Solutions
 
VPC Implementation In OpenStack Heat
VPC Implementation In OpenStack HeatVPC Implementation In OpenStack Heat
VPC Implementation In OpenStack HeatSaju Madhavan
 
Cypress-vs-Playwright: Let the Code Speak
Cypress-vs-Playwright: Let the Code SpeakCypress-vs-Playwright: Let the Code Speak
Cypress-vs-Playwright: Let the Code SpeakApplitools
 
Android binder introduction
Android binder introductionAndroid binder introduction
Android binder introductionDerek Fang
 
Procedimento de instalação do Zabbix Proxy 3 no PFSense
Procedimento de instalação do Zabbix Proxy 3 no PFSenseProcedimento de instalação do Zabbix Proxy 3 no PFSense
Procedimento de instalação do Zabbix Proxy 3 no PFSenseVerdanatech Soluções em TI
 
Everything you want to know about Ingress
Everything you want to know about IngressEverything you want to know about Ingress
Everything you want to know about IngressJanakiram MSV
 
Implementation Lessons using WebRTC in Asterisk
Implementation Lessons using WebRTC in AsteriskImplementation Lessons using WebRTC in Asterisk
Implementation Lessons using WebRTC in AsteriskMoises Silva
 
왜 쿠버네티스는 systemd로 cgroup을 관리하려고 할까요
왜 쿠버네티스는 systemd로 cgroup을 관리하려고 할까요왜 쿠버네티스는 systemd로 cgroup을 관리하려고 할까요
왜 쿠버네티스는 systemd로 cgroup을 관리하려고 할까요Jo Hoon
 
[TECHCON 2019: MOBILE - Android]3.안드로이드 개발자 로드맵
[TECHCON 2019: MOBILE - Android]3.안드로이드 개발자 로드맵[TECHCON 2019: MOBILE - Android]3.안드로이드 개발자 로드맵
[TECHCON 2019: MOBILE - Android]3.안드로이드 개발자 로드맵NAVER Engineering
 
Guia de configuracion cisco 881 w logicalis
Guia de configuracion cisco 881 w   logicalisGuia de configuracion cisco 881 w   logicalis
Guia de configuracion cisco 881 w logicalisasesinoevil
 
Service Discovery & Load-Balancing under Docker 1.12.0 @ Docker Meetup #22
Service Discovery & Load-Balancing under Docker 1.12.0 @ Docker Meetup #22Service Discovery & Load-Balancing under Docker 1.12.0 @ Docker Meetup #22
Service Discovery & Load-Balancing under Docker 1.12.0 @ Docker Meetup #22Ajeet Singh Raina
 
全新 Windows Server 2019 容器技術 及邁向與 Kubernetes 整合之路 (Windows Server 高峰會)
全新 Windows Server 2019 容器技術及邁向與 Kubernetes 整合之路 (Windows Server 高峰會)全新 Windows Server 2019 容器技術及邁向與 Kubernetes 整合之路 (Windows Server 高峰會)
全新 Windows Server 2019 容器技術 及邁向與 Kubernetes 整合之路 (Windows Server 高峰會)Will Huang
 
Workshop: Advanced Federation Use-Cases with PingFederate
Workshop: Advanced Federation Use-Cases with PingFederateWorkshop: Advanced Federation Use-Cases with PingFederate
Workshop: Advanced Federation Use-Cases with PingFederateCraig Wu
 
Deep dive in Docker Overlay Networks
Deep dive in Docker Overlay NetworksDeep dive in Docker Overlay Networks
Deep dive in Docker Overlay NetworksLaurent Bernaille
 
Role based access control - RBAC - Kubernetes
Role based access control - RBAC - KubernetesRole based access control - RBAC - Kubernetes
Role based access control - RBAC - KubernetesMilan Das
 
Top 5 Challenges To Add Web Calls to Truphone VoIP Platform
Top 5 Challenges To Add Web Calls to Truphone VoIP PlatformTop 5 Challenges To Add Web Calls to Truphone VoIP Platform
Top 5 Challenges To Add Web Calls to Truphone VoIP PlatformGiacomo Vacca
 
IP Virtual Server(IPVS) 101
IP Virtual Server(IPVS) 101IP Virtual Server(IPVS) 101
IP Virtual Server(IPVS) 101HungWei Chiu
 
[네전따 27회] 네트워크 자동화 어렵지 않아요
[네전따 27회] 네트워크 자동화 어렵지 않아요[네전따 27회] 네트워크 자동화 어렵지 않아요
[네전따 27회] 네트워크 자동화 어렵지 않아요Jo Hoon
 
Introduction to Chef
Introduction to ChefIntroduction to Chef
Introduction to ChefKnoldus Inc.
 

Was ist angesagt? (20)

FreeSWITCH Cluster by K8s
FreeSWITCH Cluster by K8sFreeSWITCH Cluster by K8s
FreeSWITCH Cluster by K8s
 
Real Time Communication using Node.js and Socket.io
Real Time Communication using Node.js and Socket.ioReal Time Communication using Node.js and Socket.io
Real Time Communication using Node.js and Socket.io
 
VPC Implementation In OpenStack Heat
VPC Implementation In OpenStack HeatVPC Implementation In OpenStack Heat
VPC Implementation In OpenStack Heat
 
Cypress-vs-Playwright: Let the Code Speak
Cypress-vs-Playwright: Let the Code SpeakCypress-vs-Playwright: Let the Code Speak
Cypress-vs-Playwright: Let the Code Speak
 
Android binder introduction
Android binder introductionAndroid binder introduction
Android binder introduction
 
Procedimento de instalação do Zabbix Proxy 3 no PFSense
Procedimento de instalação do Zabbix Proxy 3 no PFSenseProcedimento de instalação do Zabbix Proxy 3 no PFSense
Procedimento de instalação do Zabbix Proxy 3 no PFSense
 
Everything you want to know about Ingress
Everything you want to know about IngressEverything you want to know about Ingress
Everything you want to know about Ingress
 
Implementation Lessons using WebRTC in Asterisk
Implementation Lessons using WebRTC in AsteriskImplementation Lessons using WebRTC in Asterisk
Implementation Lessons using WebRTC in Asterisk
 
왜 쿠버네티스는 systemd로 cgroup을 관리하려고 할까요
왜 쿠버네티스는 systemd로 cgroup을 관리하려고 할까요왜 쿠버네티스는 systemd로 cgroup을 관리하려고 할까요
왜 쿠버네티스는 systemd로 cgroup을 관리하려고 할까요
 
[TECHCON 2019: MOBILE - Android]3.안드로이드 개발자 로드맵
[TECHCON 2019: MOBILE - Android]3.안드로이드 개발자 로드맵[TECHCON 2019: MOBILE - Android]3.안드로이드 개발자 로드맵
[TECHCON 2019: MOBILE - Android]3.안드로이드 개발자 로드맵
 
Guia de configuracion cisco 881 w logicalis
Guia de configuracion cisco 881 w   logicalisGuia de configuracion cisco 881 w   logicalis
Guia de configuracion cisco 881 w logicalis
 
Service Discovery & Load-Balancing under Docker 1.12.0 @ Docker Meetup #22
Service Discovery & Load-Balancing under Docker 1.12.0 @ Docker Meetup #22Service Discovery & Load-Balancing under Docker 1.12.0 @ Docker Meetup #22
Service Discovery & Load-Balancing under Docker 1.12.0 @ Docker Meetup #22
 
全新 Windows Server 2019 容器技術 及邁向與 Kubernetes 整合之路 (Windows Server 高峰會)
全新 Windows Server 2019 容器技術及邁向與 Kubernetes 整合之路 (Windows Server 高峰會)全新 Windows Server 2019 容器技術及邁向與 Kubernetes 整合之路 (Windows Server 高峰會)
全新 Windows Server 2019 容器技術 及邁向與 Kubernetes 整合之路 (Windows Server 高峰會)
 
Workshop: Advanced Federation Use-Cases with PingFederate
Workshop: Advanced Federation Use-Cases with PingFederateWorkshop: Advanced Federation Use-Cases with PingFederate
Workshop: Advanced Federation Use-Cases with PingFederate
 
Deep dive in Docker Overlay Networks
Deep dive in Docker Overlay NetworksDeep dive in Docker Overlay Networks
Deep dive in Docker Overlay Networks
 
Role based access control - RBAC - Kubernetes
Role based access control - RBAC - KubernetesRole based access control - RBAC - Kubernetes
Role based access control - RBAC - Kubernetes
 
Top 5 Challenges To Add Web Calls to Truphone VoIP Platform
Top 5 Challenges To Add Web Calls to Truphone VoIP PlatformTop 5 Challenges To Add Web Calls to Truphone VoIP Platform
Top 5 Challenges To Add Web Calls to Truphone VoIP Platform
 
IP Virtual Server(IPVS) 101
IP Virtual Server(IPVS) 101IP Virtual Server(IPVS) 101
IP Virtual Server(IPVS) 101
 
[네전따 27회] 네트워크 자동화 어렵지 않아요
[네전따 27회] 네트워크 자동화 어렵지 않아요[네전따 27회] 네트워크 자동화 어렵지 않아요
[네전따 27회] 네트워크 자동화 어렵지 않아요
 
Introduction to Chef
Introduction to ChefIntroduction to Chef
Introduction to Chef
 

Andere mochten auch

Web rtc, Media stream, Peer connection, Setting up STUN and TURN on Linux and...
Web rtc, Media stream, Peer connection, Setting up STUN and TURN on Linux and...Web rtc, Media stream, Peer connection, Setting up STUN and TURN on Linux and...
Web rtc, Media stream, Peer connection, Setting up STUN and TURN on Linux and...Amitesh Madhur
 
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
 

Andere mochten auch (20)

Web rtc, Media stream, Peer connection, Setting up STUN and TURN on Linux and...
Web rtc, Media stream, Peer connection, Setting up STUN and TURN on Linux and...Web rtc, Media stream, Peer connection, Setting up STUN and TURN on Linux and...
Web rtc, Media stream, Peer connection, Setting up STUN and TURN on Linux and...
 
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
 

Ähnlich wie 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
 

Ähnlich wie 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
 

Kürzlich hochgeladen

Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionDilum Bandara
 
Sample pptx for embedding into website for demo
Sample pptx for embedding into website for demoSample pptx for embedding into website for demo
Sample pptx for embedding into website for demoHarshalMandlekar2
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Manik S Magar
 
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
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rick Flair
 
What is Artificial Intelligence?????????
What is Artificial Intelligence?????????What is Artificial Intelligence?????????
What is Artificial Intelligence?????????blackmambaettijean
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
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
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
unit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxunit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxBkGupta21
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfMounikaPolabathina
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxLoriGlavin3
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESmohitsingh558521
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxLoriGlavin3
 

Kürzlich hochgeladen (20)

Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An Introduction
 
Sample pptx for embedding into website for demo
Sample pptx for embedding into website for demoSample pptx for embedding into website for demo
Sample pptx for embedding into website for demo
 
Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!
 
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
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...Rise of the Machines: Known As Drones...
Rise of the Machines: Known As Drones...
 
What is Artificial Intelligence?????????
What is Artificial Intelligence?????????What is Artificial Intelligence?????????
What is Artificial Intelligence?????????
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
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
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
unit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxunit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptx
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdf
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
The State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptxThe State of Passkeys with FIDO Alliance.pptx
The State of Passkeys with FIDO Alliance.pptx
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
 
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptxThe Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
The Fit for Passkeys for Employee and Consumer Sign-ins: FIDO Paris Seminar.pptx
 

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