WebRTC: Real-Time Communica2ons on the Web
Dan Burne9, PhD h9p://standardsplay.com h9p://allthingsrtc.org Alan Johnston, PhD Rowan University
WebRTC
IETF 100 Singapore November 2017
WebRTC WebRTC: Real-Time Communica2ons on the Web Dan Burne9, PhD - - PowerPoint PPT Presentation
WebRTC WebRTC: Real-Time Communica2ons on the Web Dan Burne9, PhD Alan Johnston, PhD Rowan University h9p://standardsplay.com h9p://allthingsrtc.org IETF 100 Singapore November 2017 0 WebRTC: A Joint Standards Effort Internet
Dan Burne9, PhD h9p://standardsplay.com h9p://allthingsrtc.org Alan Johnston, PhD Rowan University
IETF 100 Singapore November 2017
ConsorFum (W3C) are working together on WebRTC
– Protocols – “bits on wire” – Main protocols are already RFCs, but many extensions in progress – RTCWEB (Real-Time CommunicaFons on the Web) Working Group is the main focus, but other WGs involved as well
– APIs – used by JavaScript code in HTML5 – WEBRTC WG and Media Capture TF are main groups
1 IETF 100 Singapore November 2017
IP UDP WebSock et SRTP SDP TURN STUN ICE TCP TLS Transport Layer Network Layer ApplicaFon Layer DTLS HTTP UDP DTLS SCTP
2 IETF 100 Singapore November 2017
CommunicaFon (RTC) FuncFon built-in to browsers
– Audio and video codecs – Ability to negoFate peer- to-peer connecFons – Echo cancellaFon, packet loss concealment
Microso^ EDGE, and Safari today
3
HTTP or WebSockets
On-the-wire protocols RTC APIs Other APIs NaFve OS Services
Web Server
JavaScript/HTML/CSS
Web Browser
Browser RTC FuncFon
(Signaling)
(Media or Data) HTTP or WebSockets
Signaling Server
IETF 100 Singapore November 2017
For Developer
expensive relays when no
codecs without licensing
For User
easy to use
encrypted – private
establishment – “just works”
quality
Fme communicaFon
4 IETF 100 Singapore November 2017
server
the web server
Web Server
(ApplicaFon)
Browser M
(Running HTML5 ApplicaFon from Web Server)
Browser L
(Running HTML5 ApplicaFon from Web Server)
Peer ConnecFon (Audio, Video, and/or Data)
5 IETF 100 Singapore November 2017
server
the web server ("Signaling")
Web Server
(ApplicaFon & Signaling)
Browser M
(Running HTML5 ApplicaFon from Web Server)
Browser L
(Running HTML5 ApplicaFon from Web Server)
Peer ConnecFon (Audio, Video, and/or Data)
6 IETF 100 Singapore November 2017
"Signaling"
Web Server A
(ApplicaFon A)
Peer ConnecFon (Audio and/or Video) Web Server B
(ApplicaFon B)
SIP
Browser M
(Running HTML5 ApplicaFon from Web Server A)
Browser T
(Running HTML5 ApplicaFon from Web Server B)
7 IETF 100 Singapore November 2017
Web Server
Internet
Router Browser L Home WiFi Router Browser T Browser M Coffee Shop WiFi Router Browser D
9
Media can go directly between browsers!
IETF 100 Singapore November 2017
Web Server
Internet
Router with NAT Browser L Home WiFi with NAT Browser T Browser M
Most browsers are behind NATs on the Internet, which complicates the establishment
sessions.
Coffee Shop WiFi with NAT Browser D
10 IETF 100 Singapore November 2017
Internet
Home WiFi with NAT Browser T 192.168.0.6 Browser M 192.168.0.5
“Outside” Public IP Address
203.0.113.4
“Inside” Private IP Addresses
192.168.x.x
11
A NAT maps an “inside” address to an “outside” address allowing mulFple hosts to share the same IP address.
IETF 100 Singapore November 2017
Web Server
Internet
Router with NAT Browser L Home WiFi with NAT 203.0.113.4 Browser T Browser M 192.168.0.5 Coffee Shop WiFi with NAT Browser D TURN Server 198.51.100.2
Browser sends STUN test packet to STUN server to learn its public IP address (address of the NAT).
STUN Server 198.51.100.9
12 IETF 100 Singapore November 2017
No authenFcaFon of STUN!
Web Server
Internet
Router with NAT Browser L Home WiFi with NAT Browser T Browser M Coffee Shop WiFi with NAT Browser D TURN Server as a Media Relay
In some cases, hole punching fails, and a TURN Media Relay on the public Internet must be used.
STUN Server
13 IETF 100 Singapore November 2017
IETF 100 Singapore November 2017 15
Set Up Peer Connection Obtain Local Media Exchange Offer/Answer Attach Media
Get more media All media added Peer ConnecFon established Apach more media or data Ready for call
IETF 100 Singapore November 2017 16
– Audio and/or video – Constraints – User permissions
allowing a page to access microphone or camera
Set Up Peer Connection Obtain Local Media Exchange Offer/Answer Attach Media
Get more media All media added Peer ConnecFon established Apach more media or data Ready for call
IETF 100 Singapore November 2017 17
– Direct media – Between two peers – ICE processing – SDP processing – DTMF support – Data channels – IdenFty verificaFon – StaFsFcs reporFng
Set Up Peer Connection Obtain Local Media Exchange Offer/Answer Attach Media
Get more media All media added Peer ConnecFon established Apach more media or data Ready for call
IETF 100 Singapore November 2017 18
– Doesn't change media state!
– Dipo!
– Depends on transport Set Up Peer Connection Obtain Local Media Exchange Offer/Answer Attach Media
Get more media All media added Peer ConnecFon established Apach more media or data Ready for call
IETF 100 Singapore November 2017 19
createAnswer()
setRemoteDescription()
needed for this to work
Set Up Peer Connection Obtain Local Media Exchange Offer/Answer Attach Media
Get more media All media added Peer ConnecFon established Apach more media or data Ready for call
IETF 100 Singapore November 2017 20
Set Up Peer ConnecFon Obtain Local Media Exchange Session DescripFons Apach Media
Get more media Apach more media or data
Set Up Signaling Channel
21 IETF 100 Singapore November 2017
IETF 100 Singapore November 2017 23
– staFc: files, RTSP, <canvas>, etc – dynamic:
access
– They can be sized, which can cause scaling depending on the constraints on the source
24 IETF 100 Singapore November 2017
25 IETF 100 Singapore November 2017
MediaStreamTracks, of the same or different
IETF 100 Singapore November 2017 26
IETF 100 Singapore November 2017 28
– RTP media flows, candidate transport addresses, codec informaFon, media keying informaFon
– Defined in JSEP - JavaScript Session Establishment Protocol – NegoFaFon proceeds according to Offer/Answer State Machine in next slides
30 IETF 100 Singapore November 2017
– generate SDP
– tell the browser which SDP to use
31 IETF 100 Singapore November 2017
32
stable have- remote-offer have-local-
IETF 100 Singapore November 2017
createOffer()
33
stable have- remote-offer have-local-
setLocalDescripFon(localOffer)
IETF 100 Singapore November 2017
createOffer()
34
stable have- remote-offer have-local-
setLocalDescripFon(localOffer) setRemoteDescripFon(remoteOffer)
IETF 100 Singapore November 2017
SDP offer sent over signaling channel to other browser createOffer() createAnswer()
35
stable have- remote-offer have-local-
setLocalDescripFon(localAnswer) setLocalDescripFon(localOffer) setRemoteDescripFon(remoteOffer)
IETF 100 Singapore November 2017
SDP offer sent over signaling channel to other browser createOffer() createAnswer()
36
stable have- remote-offer have-local-
setLocalDescripFon(localAnswer) setRemoteDescripFon( remoteAnswer) setLocalDescripFon(localOffer) setRemoteDescripFon(remoteOffer)
IETF 100 Singapore November 2017
SDP answer sent over signaling channel to other browser SDP offer sent over signaling channel to other browser createOffer() createAnswer()
37 IETF 100 Singapore November 2017
addresses and SDP blobs
39 IETF 100 Singapore November 2017
40
Web Server SRTP Media SIP Proxy/Registrar Server Browser M
(running JavaScript SIP UA)
Browser T
(running JavaScript SIP UA)
HTTP
(HTML5/CSS/ JavaScript)
WebSocket
(SIP)
WebSocket
(SIP)
HTTP
(HTML5/CSS/ JavaScript)
IETF 100 Singapore November 2017
congesFon control, and message delivery
42
DTLS
Data Channel Data
Provides congesFon and flow control Provides security (confidenFality) Provides transport through NAT (a^er ICE hole punching)
Internet
UDP DTLS SCTP
IETF 100 Singapore November 2017
IETF 100 Singapore November 2017 43
45
– Opus (RFC 6716): Narrowband to wideband Internet audio codec for speech and music – G.711 (RFC 3551): PCM audio encoding for PSTN interworking and backwards compaFbility with VoIP systems – Telephone Events (RFC 4733): Transport of Dual Tone MulF Frequency (DTMF) tones
– H.264 (RFC 6184): Common video codec (requires licensing) – VP8 (RFC 6386): Open source video codec
IETF 100 Singapore November 2017
46 IETF 100 Singapore November 2017
IETF 100 Singapore November 2017 47
V A
IETF 100 Singapore November 2017 49
A V A A V A V V A V
Audio m-line Audio m-line Video m-line Video m-line
Stream 1 Stream 1 Stream 2 Stream 2 SDP m-line: bidirecFonal SRTP stream Browser 1 Browser 2
– RTCRtpSenders – A handle to an outbound RTP
– RTCRtpReceivers – A handle to an inbound RTP
IETF 100 Singapore November 2017 50
V A
IETF 100 Singapore November 2017 51
A V A A V A V V A V
Audio m-line Audio m-line Video m-line Video m-line
Stream 1 Stream 1 Stream 2 Stream 2
Senders Senders Receivers Receivers
SDP m-line: bidirecFonal SRTP stream
– at the SDP level every sender is paired with a receiver, even if only one has a track that is acFvely using it
– There is precisely one transceiver for each m-line. – There is a sender and a receiver for each transceiver. – The mid of the m-line is the mid (media id) of the
IETF 100 Singapore November 2017 52
V A
IETF 100 Singapore November 2017 53
A V A A V A V V A V
Audio m-line Audio m-line Video m-line Video m-line
Stream 1 Stream 1 Stream 2 Stream 2
Senders Senders Receivers Receivers
For each side, each of these has a Transceiver SDP m-line: bidirecFonal SRTP stream
– “WebRTC 1.0: Real-Fme CommunicaFon Between Browsers” (aka PeerConnecFon)
– “Media Capture and Streams” (aka getUserMedia)
– hpps://www.w3.org/TR/mediacapture-streams/
54 IETF 100 Singapore November 2017
– Primary is Cullen Jennings' WebRTC Dependencies dra^ dra^-jennings-rtcweb-deps – RTCWEB documents can be followed as usual hpps://tools.iea.org/wg/rtcweb/
55 IETF 100 Singapore November 2017
– Libraries, code snippets
coturn)
– SIP signaling
– Hosted signaling services
– Hosted STUN and TURN servers
– Hosted SFU and/or network opFmizaFon
IETF 100 Singapore November 2017 56
IETF 100 Singapore November 2017 57
– hpp://webrtc.org
– http://html5rocks.com/en/tutorials/webrtc/basics – http://webrtchacks.com
– hpps://webrtcstandards.info
– hpp://www.cubeslam.com – hpp://shinydemos.com/facekat – hpp://sharefest.me (github.com/Peer5/Sharefest)
IETF 100 Singapore November 2017 58
– Facebook Chat – Amazon Mayday (and now Chime) – Google Hangouts, Duo
– Every UC plaaorm today – And most telecom providers
– Crowdcast.io – GoToMeeFng Free (previously Hu.p) – vLine – Talky.io – Appear.in – Gruveo – Room – Rabbit – GetARoom.io – UberConference
IETF 100 Singapore November 2017 59