SlideShare a Scribd company logo
webRTC: from API to solution
Dr. Alex Gouaillard,
CTO Temasys
webRTC vs RTCweb (w3c vs IETF, API vs protocols)
The missing pieces for a simple App (appRTC example)
The state of the technology
webRTC vs RTCweb (w3c vs IETF, API vs protocols)
Very well addressed by peter, will do it fast
W3C Working Groups address the in-browser javascript API
- Device API WG
- webRTC WG
- with a common task force: Media capture and stream (getUserMedia)
NOTE: Community group can be set up by anyone, and cannot define a standard: ORTC.
IETF: RTCWeb but also other groups (BUNDLE, RMCAT, ….)
- define use cases
- security
- qos
- CODECS ……
NOTE: W3C membership is required for some discussion, whereas joining the IETF
mailing list makes you an IETF “member”.
IETF
group name status last version
AVT RTP/RTCP MUX RFC5761
MMUSIC ICE RFC5245 2010
MMUSIC ICE TCP RFC6544 2012
MMUSIC SDP O/A RFC3264 2002
BEHAVE STUN RFC5389 2008
RTCWEB STUN-URI RFC7064 2013
BEHAVE TURN RFC5766 2010
BEHAVE TURN-URI RFC7065 2013
RTCWEB JSEP draft
HyBi WS Protocol RFC6455 2011
URI RFC3986 2005
BEHAVE TURN RFC5928 2010
RMCAT Congestion control 2013
RMCAT REMB 2013
RTCWEB 11 docs to fill
BEHAVE TURN WS 2013
BEHAVE TURN TCP RFC6062 2010
webRTC vs RTCweb (w3c vs IETF, API vs protocols)
The missing pieces for a simple App (appRTC example)
The state of the technology
Anatomy of a simple solution
Alice Bob
Web
server
Signaling
server
STUN
TURN
1 2
1. Connect to an URL
initiator
Anatomy of a simple solution
Alice Bob
Web
server
Signaling
server
STUN
TURN
1. Connect to an URL
2. Connect to the sig. server
initiator
Anatomy of a simple solution
Alice Bob
Web
server
Signaling
server
STUN
TURN
1. Connect to an URL
2. Connect to the sig. server
3. Alice send offer
4. Server relays to bob
5. Bob send answer
persistent
initiator
Anatomy of a simple solution
Alice Bob
Web
server
Signaling
server
STUN
TURN
1. Connect to an URL
2. Connect to the sig. server
3. Alice send offer
4. Server relays to bob
5. Bob send answer
6. Handshake / ICE
One time
initiator
Anatomy of a simple solution
Alice Bob
Web
server
Signaling
server
STUN
TURN
1. Connect to an URL
2. Connect to the sig. server
3. Alice send offer
4. Server relays to bob
5. Bob send answer
6. Handshake / ICE
7. Media streams, life is good
media
Anatomy of a simple solution: appRTC
Alice Bob
GAE
GAE
channel
Google 1. Connect to an URL
2. Connect to the sig. server
3. Alice send offer
4. Server relays to bob
5. Bob send answer
6. Handshake / ICE
7. Media streams, life is good
media
Extension of a simple solution
Alice Bob
Web
server
Signaling
server
STUN
TURN
1. Connect to an URL
2. Connect to the sig. server
3. Alice sends “hello”
4. Server relays to bob
5. Bob sends “welcome”
6. Handshake / ICE
7. Only 1 PC per peer.
8. Media streams, life is goodmedia
Extension of a simple solution
Alice Bob
Web
server
Signaling
server
STUN
TURN
1. Connect to an URL
2. Connect to the sig. server
3. Alice says “hello”
4. Server relays to ALL
5. ALL says “welcome”
6. Handshake / ICE with all
7. Only 1 PC per peer
8. Media streams, life is good
Cyndi
DONEFROZENINCALLCONNECTIONHANDSHAKE(SDPO/A).
new
checking
connected
disconnected
failed
Completed
close
new
gathering
complete
CALLER SIG-SERVER CALLEE
stable
have-local-offer
stable
Close
CHAT
ENTER
WELCOME
OFFER
ANSWER
Create PC
Add local stream(s)
Create offer
<modify sdp>
SetLocal(offer)
Sending offer Create PC
SetRemote(offer)
addRemoteStream(s)
Add local stream(s)
Create answer
<modify sdp>
SetLocal(answer)
Send answer
stable
Have-remote-
offer
stable
new
gathering
complete
onIceCandidate
<Filter
candidates>
Send candidate
<Filter
candidates>
addIceCandidate
onIceCandidate
<Filter candidates>
Send candidate
<Filter candidates>
addIceCandidate
new
checking
connected
disconnected
failed
Completed
close Close
© Temasys Communications, pvt, ltd, 2014
Document provided under CC BY-NC 4.0
CANDIDATES
Peer
Connection
ICE
Connection
ICE
Gathering
SetRemote(answer)
addRemoteStream
BYE
Limits of p2p mesh approach
Alice Bob
Alice Bob
Chris
Alice Bob
Chris David
2
6
12
Alic
e
Bob
Chris
EdDave
20
n(n-1) O(n^2)
Business as usual MCU: multiplexing streams
- wow, super bandwidth !
- Hum, what about latency?
- What happen if peers are far away …. ?
Alic
e
Bob
Chris
EdDave
MCU
5
n O(n)
Smarter topology ?
- bandwidth optimization WITH layout freedom
0
100
200
300
400
500
600
2 7 12 17 22
type
Streams
IN
Streams
OUT
p2p N-1 N-1
MCU 1 1
Hybrid N-1 1
webRTC vs RTCweb (w3c vs IETF, API vs protocols)
The missing pieces for a simple App (appRTC example)
The state of the technology
Reference code: appRTC / appRTCDEMO
Desktop
chrome firefox IE Safari Opera ref client
GUM 18+ 17+
Temasys Plugin
12+
Temasys
appRTCDesk
PC 20+ 22+ 18+
DC 26+ 22+ 18+
GAE N/A
iOS
safari firefox chrome Opera ref client
against apple policy ……..
Temasys
contributions
N/A
Android
firefox chrome Opera ref client
24+ 29+ 18+
appRTCDEMO
24+ 29+ 18+
24+ 29+ 18+
N/A
Reference code: appRTC / appRTCDEMO
Desktop
chrome firefox IE Safari Opera ref client
GUM 18+ 17+
Temasys Plugin
12+
Temasys
appRTCDesk
PC 20+ 22+ 18+
DC 26+ 22+ 18+
GAE N/A
iOS
safari firefox chrome Opera ref client
against apple policy ……..
Temasys
contributions
N/A
Android
firefox chrome Opera ref client
24+ 29+ 18+
appRTCDEMO
24+ 29+ 18+
24+ 29+ 18+
N/A
Reference code: appRTC / appRTCDEMO
Desktop
chrome firefox IE Safari Opera ref client
GUM 18+ 17+
Temasys Plugin
12+
Temasys
appRTCDesk
PC 20+ 22+ 18+
DC 26+ 22+ 18+
GAE N/A
iOS
safari firefox chrome Opera ref client
Temasys webkit upgrade crowdfunding
Temasys
contributions
N/A
Android
firefox chrome Opera ref client
24+ 29+ 18+
appRTCDEMO
24+ 29+ 18+
24+ 29+ 18+
N/A
Firewall Traversal
current firefox stable: 26 OK
updated on 1/13/13 Done, not deployed
FAIL
chrome firefox Skype
LAN, no firewall
fully open firewal (just IP/port mapping)
complicated firewall (in term of IP/port mapping)
firewall that blocks all UDP Bug 906968 => FF28
TCP port 80 tunneling
TLS port 443 tunneling
support http proxy
application layer restrictions: HTTP/HTTPS TURN WS ?
application layer restriction DPI no way to escape settings
Different firewall scenarii
Firewall Traversal
IETF standards chrome firefox skyway
ports optimization
rfc5761: RTP/RCTP MUX Bug 907353
draftxxx: BUNDLE Bug 784491
Basic connection
(LAN) p2p
rfc5245: ICE
draftxxx: faster "trickle" ICE Bug 842549 => FF27
rfc6544: ICE TCP Bug 891551
Normal Connection rfc5389: STUN
Good Connection
Relayed
rfc5766: TURN over UDP
Great Connection
rfc5766: TURN over TCP Bug 906968 => FF28 not ON
rfc5766: TURN over TLS/TCP ? not ON
HTTP proxy support Bug 949703
The future draftxxx: TURN WS
connectivity feature support
Other Features: screen sharing and recording
- Screen sharing => drama. In and out.
- Available as a privileged API in chrome only (=> extension)
- Mozilla pushing hard => will be in the specs, as a separate document
- Recording
- In the specs already
- Available in yesterday’s firefox 30!
Warning … controversial topics
This is the coverage you get when ignoring security
That raises concerns about open sourcing some webRTC code that touches
security cases described in the IETF document, for example: plugins.

More Related Content

What's hot (20)

PPTX
DYI - Starting your own webrtc project
Alexandre Gouaillard
 
PPTX
Webrtc plugins for Desktop Browsers
Alexandre Gouaillard
 
PDF
Building great mobile apps: Somethings you might want to know
shwetank
 
PDF
Streaming Media West: Webrtc the future of low latency streaming
Alexandre Gouaillard
 
PDF
Deploying WebRTC in a low-latency streaming service
Alexandre Gouaillard
 
PDF
Hackference 2014 - Node.js, the awesome parts
Dan Jenkins
 
PDF
Jenkins vs. AWS CodePipeline
Steffen Gebert
 
PDF
Monitoring Akka with Kamon 1.0
Steffen Gebert
 
PDF
Janus conf'19: janus client side
Alexandre Gouaillard
 
PDF
Improve your Java Environment with Docker
HanoiJUG
 
PDF
WebRTC beyond Audio and Video
Silvia Pfeiffer
 
PDF
Revisiting HTTP/2
Fastly
 
PDF
WebRTC Reborn SignalConf 2016
Dan Jenkins
 
KEY
P2P on the local network
Peter Elst
 
PPTX
How to Contribute to Ansible
Cisco DevNet
 
PDF
CKA(Kubernetes 자격증) 잘 준비하는 법_
InfraEngineer
 
PDF
Choosing the Right Framework for Running Docker Containers in Prod
Josh Padnick
 
PDF
KubeCon EU 2016: Creating an Advanced Load Balancing Solution for Kubernetes ...
KubeAcademy
 
PPTX
Building Web Apps in Ratpack
Daniel Woods
 
PDF
Kernel load-balancing for Docker containers using IPVS
Docker, Inc.
 
DYI - Starting your own webrtc project
Alexandre Gouaillard
 
Webrtc plugins for Desktop Browsers
Alexandre Gouaillard
 
Building great mobile apps: Somethings you might want to know
shwetank
 
Streaming Media West: Webrtc the future of low latency streaming
Alexandre Gouaillard
 
Deploying WebRTC in a low-latency streaming service
Alexandre Gouaillard
 
Hackference 2014 - Node.js, the awesome parts
Dan Jenkins
 
Jenkins vs. AWS CodePipeline
Steffen Gebert
 
Monitoring Akka with Kamon 1.0
Steffen Gebert
 
Janus conf'19: janus client side
Alexandre Gouaillard
 
Improve your Java Environment with Docker
HanoiJUG
 
WebRTC beyond Audio and Video
Silvia Pfeiffer
 
Revisiting HTTP/2
Fastly
 
WebRTC Reborn SignalConf 2016
Dan Jenkins
 
P2P on the local network
Peter Elst
 
How to Contribute to Ansible
Cisco DevNet
 
CKA(Kubernetes 자격증) 잘 준비하는 법_
InfraEngineer
 
Choosing the Right Framework for Running Docker Containers in Prod
Josh Padnick
 
KubeCon EU 2016: Creating an Advanced Load Balancing Solution for Kubernetes ...
KubeAcademy
 
Building Web Apps in Ratpack
Daniel Woods
 
Kernel load-balancing for Docker containers using IPVS
Docker, Inc.
 

Similar to Practical webRTC - from API to Solution - webRTC Summit 2014 @ NYC (20)

PDF
DevCon 5 (December 2013) - WebRTC & WebSockets
Crocodile WebRTC SDK and Cloud Signalling Network
 
PPTX
WebRTC Seminar Report
srinivasa teja
 
PDF
WebRTC: A front-end perspective
shwetank
 
PPTX
Web rtc 入門
crsgypin Chiu
 
PDF
WebRTC
allanh0526
 
PDF
Spring Boot for WebRTC Signaling Servers: A Comprehensive Guide
Inexture Solutions
 
PDF
WebRTC eduCONF
Mihály Mészáros
 
PDF
Workshop web rtc implementation details
Douglas Tait
 
PDF
Exploring the Possibilities of Sencha and WebRTC
Grgur Grisogono
 
PDF
A jQuery for WebRTC
Thomas Gorissen
 
PDF
WebRTC Videobroadcasting
Ravi Kuril
 
PPTX
WebRTC
Vijay Dhama
 
PDF
Unified_Cloud_Comm_Presentation anil singh ppt
anilsingh298751
 
PPTX
How to Architect your WebRTC application, Alberto Gonzalez and Arin Sime, Web...
Alan Quayle
 
PDF
WebRTC on Mobile Devices: Challenges and Opportunities
Vladimir Beloborodov
 
PPTX
DeveloperWeek 2015 - WebRTC - Where to start and how to scale
Dialogic Inc.
 
PPT
Web-RTC Based Conferencing Application
Onkar Kadam
 
PDF
WebRTC 101 - How to get started building your first WebRTC application
Dan Jenkins
 
PDF
FOSDEM 2020: How can we make WebRTC Easier?
SeanDuBois3
 
PPTX
WebRTC Summit (June 2014) - WebRTC Interoperability (and why it is important)
Crocodile WebRTC SDK and Cloud Signalling Network
 
DevCon 5 (December 2013) - WebRTC & WebSockets
Crocodile WebRTC SDK and Cloud Signalling Network
 
WebRTC Seminar Report
srinivasa teja
 
WebRTC: A front-end perspective
shwetank
 
Web rtc 入門
crsgypin Chiu
 
WebRTC
allanh0526
 
Spring Boot for WebRTC Signaling Servers: A Comprehensive Guide
Inexture Solutions
 
WebRTC eduCONF
Mihály Mészáros
 
Workshop web rtc implementation details
Douglas Tait
 
Exploring the Possibilities of Sencha and WebRTC
Grgur Grisogono
 
A jQuery for WebRTC
Thomas Gorissen
 
WebRTC Videobroadcasting
Ravi Kuril
 
WebRTC
Vijay Dhama
 
Unified_Cloud_Comm_Presentation anil singh ppt
anilsingh298751
 
How to Architect your WebRTC application, Alberto Gonzalez and Arin Sime, Web...
Alan Quayle
 
WebRTC on Mobile Devices: Challenges and Opportunities
Vladimir Beloborodov
 
DeveloperWeek 2015 - WebRTC - Where to start and how to scale
Dialogic Inc.
 
Web-RTC Based Conferencing Application
Onkar Kadam
 
WebRTC 101 - How to get started building your first WebRTC application
Dan Jenkins
 
FOSDEM 2020: How can we make WebRTC Easier?
SeanDuBois3
 
WebRTC Summit (June 2014) - WebRTC Interoperability (and why it is important)
Crocodile WebRTC SDK and Cloud Signalling Network
 
Ad

More from Alexandre Gouaillard (10)

PPTX
KITE Network Instrumentation: Advanced WebRTC Testing
Alexandre Gouaillard
 
PDF
IIT-RTC 2017 Qt WebRTC Tutorial (Qt Janus Client)
Alexandre Gouaillard
 
PPTX
Real-Time Communication Testing Evolution with WebRTC
Alexandre Gouaillard
 
PPTX
2014 Webrtc Summit & Cloud Expo, RealTime Interactions for IoT
Alexandre Gouaillard
 
PPTX
2016 February - WebRTC Conference Japan - 日本語
Alexandre Gouaillard
 
PPTX
WebRTC Browsers n Stacks Implementation differences
Alexandre Gouaillard
 
PPTX
Testing and packaging WebRTC Stack
Alexandre Gouaillard
 
PPTX
Open Source Options for Building your WebRTC Solution, May 2015 @ WebRTC Conf...
Alexandre Gouaillard
 
PPTX
WebRTC Infrastructure scalability notes - Geek'n Kranky - June 2014 @ Google SF
Alexandre Gouaillard
 
PPTX
WebRTC status and what to expect in 2015
Alexandre Gouaillard
 
KITE Network Instrumentation: Advanced WebRTC Testing
Alexandre Gouaillard
 
IIT-RTC 2017 Qt WebRTC Tutorial (Qt Janus Client)
Alexandre Gouaillard
 
Real-Time Communication Testing Evolution with WebRTC
Alexandre Gouaillard
 
2014 Webrtc Summit & Cloud Expo, RealTime Interactions for IoT
Alexandre Gouaillard
 
2016 February - WebRTC Conference Japan - 日本語
Alexandre Gouaillard
 
WebRTC Browsers n Stacks Implementation differences
Alexandre Gouaillard
 
Testing and packaging WebRTC Stack
Alexandre Gouaillard
 
Open Source Options for Building your WebRTC Solution, May 2015 @ WebRTC Conf...
Alexandre Gouaillard
 
WebRTC Infrastructure scalability notes - Geek'n Kranky - June 2014 @ Google SF
Alexandre Gouaillard
 
WebRTC status and what to expect in 2015
Alexandre Gouaillard
 
Ad

Recently uploaded (20)

PDF
Log-Based Anomaly Detection: Enhancing System Reliability with Machine Learning
Mohammed BEKKOUCHE
 
PPTX
✨Unleashing Collaboration: Salesforce Channels & Community Power in Patna!✨
SanjeetMishra29
 
PDF
HCIP-Data Center Facility Deployment V2.0 Training Material (Without Remarks ...
mcastillo49
 
PPTX
MSP360 Backup Scheduling and Retention Best Practices.pptx
MSP360
 
PDF
CloudStack GPU Integration - Rohit Yadav
ShapeBlue
 
PPTX
UiPath Academic Alliance Educator Panels: Session 2 - Business Analyst Content
DianaGray10
 
PDF
Building Real-Time Digital Twins with IBM Maximo & ArcGIS Indoors
Safe Software
 
PDF
SWEBOK Guide and Software Services Engineering Education
Hironori Washizaki
 
PDF
How Startups Are Growing Faster with App Developers in Australia.pdf
India App Developer
 
PDF
SFWelly Summer 25 Release Highlights July 2025
Anna Loughnan Colquhoun
 
PDF
CIFDAQ Token Spotlight for 9th July 2025
CIFDAQ
 
PPTX
Building a Production-Ready Barts Health Secure Data Environment Tooling, Acc...
Barts Health
 
PPT
Interview paper part 3, It is based on Interview Prep
SoumyadeepGhosh39
 
PPTX
Darren Mills The Migration Modernization Balancing Act: Navigating Risks and...
AWS Chicago
 
PDF
Chris Elwell Woburn, MA - Passionate About IT Innovation
Chris Elwell Woburn, MA
 
PDF
LLMs.txt: Easily Control How AI Crawls Your Site
Keploy
 
PPTX
Extensions Framework (XaaS) - Enabling Orchestrate Anything
ShapeBlue
 
PDF
Persuasive AI: risks and opportunities in the age of digital debate
Speck&Tech
 
PDF
Meetup Kickoff & Welcome - Rohit Yadav, CSIUG Chairman
ShapeBlue
 
PDF
Smart Air Quality Monitoring with Serrax AQM190 LITE
SERRAX TECHNOLOGIES LLP
 
Log-Based Anomaly Detection: Enhancing System Reliability with Machine Learning
Mohammed BEKKOUCHE
 
✨Unleashing Collaboration: Salesforce Channels & Community Power in Patna!✨
SanjeetMishra29
 
HCIP-Data Center Facility Deployment V2.0 Training Material (Without Remarks ...
mcastillo49
 
MSP360 Backup Scheduling and Retention Best Practices.pptx
MSP360
 
CloudStack GPU Integration - Rohit Yadav
ShapeBlue
 
UiPath Academic Alliance Educator Panels: Session 2 - Business Analyst Content
DianaGray10
 
Building Real-Time Digital Twins with IBM Maximo & ArcGIS Indoors
Safe Software
 
SWEBOK Guide and Software Services Engineering Education
Hironori Washizaki
 
How Startups Are Growing Faster with App Developers in Australia.pdf
India App Developer
 
SFWelly Summer 25 Release Highlights July 2025
Anna Loughnan Colquhoun
 
CIFDAQ Token Spotlight for 9th July 2025
CIFDAQ
 
Building a Production-Ready Barts Health Secure Data Environment Tooling, Acc...
Barts Health
 
Interview paper part 3, It is based on Interview Prep
SoumyadeepGhosh39
 
Darren Mills The Migration Modernization Balancing Act: Navigating Risks and...
AWS Chicago
 
Chris Elwell Woburn, MA - Passionate About IT Innovation
Chris Elwell Woburn, MA
 
LLMs.txt: Easily Control How AI Crawls Your Site
Keploy
 
Extensions Framework (XaaS) - Enabling Orchestrate Anything
ShapeBlue
 
Persuasive AI: risks and opportunities in the age of digital debate
Speck&Tech
 
Meetup Kickoff & Welcome - Rohit Yadav, CSIUG Chairman
ShapeBlue
 
Smart Air Quality Monitoring with Serrax AQM190 LITE
SERRAX TECHNOLOGIES LLP
 

Practical webRTC - from API to Solution - webRTC Summit 2014 @ NYC

  • 1. webRTC: from API to solution Dr. Alex Gouaillard, CTO Temasys
  • 2. webRTC vs RTCweb (w3c vs IETF, API vs protocols) The missing pieces for a simple App (appRTC example) The state of the technology
  • 3. webRTC vs RTCweb (w3c vs IETF, API vs protocols) Very well addressed by peter, will do it fast W3C Working Groups address the in-browser javascript API - Device API WG - webRTC WG - with a common task force: Media capture and stream (getUserMedia) NOTE: Community group can be set up by anyone, and cannot define a standard: ORTC. IETF: RTCWeb but also other groups (BUNDLE, RMCAT, ….) - define use cases - security - qos - CODECS …… NOTE: W3C membership is required for some discussion, whereas joining the IETF mailing list makes you an IETF “member”.
  • 4. IETF group name status last version AVT RTP/RTCP MUX RFC5761 MMUSIC ICE RFC5245 2010 MMUSIC ICE TCP RFC6544 2012 MMUSIC SDP O/A RFC3264 2002 BEHAVE STUN RFC5389 2008 RTCWEB STUN-URI RFC7064 2013 BEHAVE TURN RFC5766 2010 BEHAVE TURN-URI RFC7065 2013 RTCWEB JSEP draft HyBi WS Protocol RFC6455 2011 URI RFC3986 2005 BEHAVE TURN RFC5928 2010 RMCAT Congestion control 2013 RMCAT REMB 2013 RTCWEB 11 docs to fill BEHAVE TURN WS 2013 BEHAVE TURN TCP RFC6062 2010
  • 5. webRTC vs RTCweb (w3c vs IETF, API vs protocols) The missing pieces for a simple App (appRTC example) The state of the technology
  • 6. Anatomy of a simple solution Alice Bob Web server Signaling server STUN TURN 1 2 1. Connect to an URL initiator
  • 7. Anatomy of a simple solution Alice Bob Web server Signaling server STUN TURN 1. Connect to an URL 2. Connect to the sig. server initiator
  • 8. Anatomy of a simple solution Alice Bob Web server Signaling server STUN TURN 1. Connect to an URL 2. Connect to the sig. server 3. Alice send offer 4. Server relays to bob 5. Bob send answer persistent initiator
  • 9. Anatomy of a simple solution Alice Bob Web server Signaling server STUN TURN 1. Connect to an URL 2. Connect to the sig. server 3. Alice send offer 4. Server relays to bob 5. Bob send answer 6. Handshake / ICE One time initiator
  • 10. Anatomy of a simple solution Alice Bob Web server Signaling server STUN TURN 1. Connect to an URL 2. Connect to the sig. server 3. Alice send offer 4. Server relays to bob 5. Bob send answer 6. Handshake / ICE 7. Media streams, life is good media
  • 11. Anatomy of a simple solution: appRTC Alice Bob GAE GAE channel Google 1. Connect to an URL 2. Connect to the sig. server 3. Alice send offer 4. Server relays to bob 5. Bob send answer 6. Handshake / ICE 7. Media streams, life is good media
  • 12. Extension of a simple solution Alice Bob Web server Signaling server STUN TURN 1. Connect to an URL 2. Connect to the sig. server 3. Alice sends “hello” 4. Server relays to bob 5. Bob sends “welcome” 6. Handshake / ICE 7. Only 1 PC per peer. 8. Media streams, life is goodmedia
  • 13. Extension of a simple solution Alice Bob Web server Signaling server STUN TURN 1. Connect to an URL 2. Connect to the sig. server 3. Alice says “hello” 4. Server relays to ALL 5. ALL says “welcome” 6. Handshake / ICE with all 7. Only 1 PC per peer 8. Media streams, life is good Cyndi
  • 14. DONEFROZENINCALLCONNECTIONHANDSHAKE(SDPO/A). new checking connected disconnected failed Completed close new gathering complete CALLER SIG-SERVER CALLEE stable have-local-offer stable Close CHAT ENTER WELCOME OFFER ANSWER Create PC Add local stream(s) Create offer <modify sdp> SetLocal(offer) Sending offer Create PC SetRemote(offer) addRemoteStream(s) Add local stream(s) Create answer <modify sdp> SetLocal(answer) Send answer stable Have-remote- offer stable new gathering complete onIceCandidate <Filter candidates> Send candidate <Filter candidates> addIceCandidate onIceCandidate <Filter candidates> Send candidate <Filter candidates> addIceCandidate new checking connected disconnected failed Completed close Close © Temasys Communications, pvt, ltd, 2014 Document provided under CC BY-NC 4.0 CANDIDATES Peer Connection ICE Connection ICE Gathering SetRemote(answer) addRemoteStream BYE
  • 15. Limits of p2p mesh approach Alice Bob Alice Bob Chris Alice Bob Chris David 2 6 12 Alic e Bob Chris EdDave 20 n(n-1) O(n^2)
  • 16. Business as usual MCU: multiplexing streams - wow, super bandwidth ! - Hum, what about latency? - What happen if peers are far away …. ? Alic e Bob Chris EdDave MCU 5 n O(n)
  • 17. Smarter topology ? - bandwidth optimization WITH layout freedom 0 100 200 300 400 500 600 2 7 12 17 22 type Streams IN Streams OUT p2p N-1 N-1 MCU 1 1 Hybrid N-1 1
  • 18. webRTC vs RTCweb (w3c vs IETF, API vs protocols) The missing pieces for a simple App (appRTC example) The state of the technology
  • 19. Reference code: appRTC / appRTCDEMO Desktop chrome firefox IE Safari Opera ref client GUM 18+ 17+ Temasys Plugin 12+ Temasys appRTCDesk PC 20+ 22+ 18+ DC 26+ 22+ 18+ GAE N/A iOS safari firefox chrome Opera ref client against apple policy …….. Temasys contributions N/A Android firefox chrome Opera ref client 24+ 29+ 18+ appRTCDEMO 24+ 29+ 18+ 24+ 29+ 18+ N/A
  • 20. Reference code: appRTC / appRTCDEMO Desktop chrome firefox IE Safari Opera ref client GUM 18+ 17+ Temasys Plugin 12+ Temasys appRTCDesk PC 20+ 22+ 18+ DC 26+ 22+ 18+ GAE N/A iOS safari firefox chrome Opera ref client against apple policy …….. Temasys contributions N/A Android firefox chrome Opera ref client 24+ 29+ 18+ appRTCDEMO 24+ 29+ 18+ 24+ 29+ 18+ N/A
  • 21. Reference code: appRTC / appRTCDEMO Desktop chrome firefox IE Safari Opera ref client GUM 18+ 17+ Temasys Plugin 12+ Temasys appRTCDesk PC 20+ 22+ 18+ DC 26+ 22+ 18+ GAE N/A iOS safari firefox chrome Opera ref client Temasys webkit upgrade crowdfunding Temasys contributions N/A Android firefox chrome Opera ref client 24+ 29+ 18+ appRTCDEMO 24+ 29+ 18+ 24+ 29+ 18+ N/A
  • 22. Firewall Traversal current firefox stable: 26 OK updated on 1/13/13 Done, not deployed FAIL chrome firefox Skype LAN, no firewall fully open firewal (just IP/port mapping) complicated firewall (in term of IP/port mapping) firewall that blocks all UDP Bug 906968 => FF28 TCP port 80 tunneling TLS port 443 tunneling support http proxy application layer restrictions: HTTP/HTTPS TURN WS ? application layer restriction DPI no way to escape settings Different firewall scenarii
  • 23. Firewall Traversal IETF standards chrome firefox skyway ports optimization rfc5761: RTP/RCTP MUX Bug 907353 draftxxx: BUNDLE Bug 784491 Basic connection (LAN) p2p rfc5245: ICE draftxxx: faster "trickle" ICE Bug 842549 => FF27 rfc6544: ICE TCP Bug 891551 Normal Connection rfc5389: STUN Good Connection Relayed rfc5766: TURN over UDP Great Connection rfc5766: TURN over TCP Bug 906968 => FF28 not ON rfc5766: TURN over TLS/TCP ? not ON HTTP proxy support Bug 949703 The future draftxxx: TURN WS connectivity feature support
  • 24. Other Features: screen sharing and recording - Screen sharing => drama. In and out. - Available as a privileged API in chrome only (=> extension) - Mozilla pushing hard => will be in the specs, as a separate document - Recording - In the specs already - Available in yesterday’s firefox 30!
  • 26. This is the coverage you get when ignoring security That raises concerns about open sourcing some webRTC code that touches security cases described in the IETF document, for example: plugins.