SlideShare a Scribd company logo
WebRTC  Standards  Q&A
Amir	
  Zmora
TheNewDialTone
Dan	
  Burnett
StandardsPlay
Guest  Speaker
• Previously  part  of  the  WebRTC Standard  team
• Left  to  handle  CoSMo growth (1~12  in  6months)
• Consulting  on  WebRTC,  with  focus  on:
• C++  libwebrtc and  Native  Apps
• Build  /Test  /  Package  
• Codecs
• (Double)  Encryption
• Qt wrappers
• Media  Servers  (Meedoze,  Janus,  Jitsi)
• System  level  design  and  implementation
Dr.	
  Alex	
  Gouaillard
WebRTC by	
  Dr Alex
CoSMo Software
Watch  video  recording  of  this  session
http://ccst.io/e/webrtcstandards18
Session  sponsored  by
WebRTC.ventures	
  is	
  a	
  custom	
  design	
  and	
  development	
  shop	
  dedicated	
  to	
  building	
  WebRTC	
  based	
  applications	
  
for	
  web	
  and	
  mobile.	
  We	
  have	
  built	
  end-­‐to-­‐end	
  broadcast	
  solutions	
  for	
  events	
  and	
  entertainment	
  clients,	
  
telehealth	
  solutions	
  for	
  multiple	
  clients,	
  live	
  support	
  tools,	
  as	
  well	
  as	
  communication	
  tools	
  for	
  a	
  variety	
  of	
  other	
  
applications. WebRTC.ventures	
  is	
  a	
  recognized	
  development	
  partner	
  of	
  TokBox	
  and	
  has	
  also	
  built	
  native	
  
WebRTC	
  solutions	
  
We  use  CrowdCast….It’s  WebRTC  
About  Us
• Amir  Zmora • Dan  Burnett
WebRTC Standards & Implementation Q&A - The Internals of WebRTC Browsers Implementation
WebRTC Standards & Implementation Q&A - The Internals of WebRTC Browsers Implementation
WebRTC Standards & Implementation Q&A - The Internals of WebRTC Browsers Implementation
Chrome  Variation
• Wait  ..  What?  Chrome  does  not  use  all  of  libwebrtc? Why?
Chrome  Layers
Chrome  Layers
Chrome  Variation
• Wait  ..  What?  Chrome  does  not  use  libwebrtc? Why?
• Chrome  layering
• Sandbox  and  per  tab  security
• Echo  canceling
• Special  capturers  (screen/window/tab)
• Capturer  access  security
• Pretty  much  the  same  applies  to  all  browsers
Chrome  Variations
• OK,  Chrome  does  not  use  libwebrtc? Why  should  I  Care?
• If  you  use  the  webrtc  lib  in  your  project,  and  expect  the  same  results  as  chrome,  be  ready  
for  big  surprises!  
• No  Screen/windows/tab  sharing
• Obsolete  mac  capturer
• No  HTTP  PROXY  support
• …
Firefox  Variation
Firefox  Variation  – Desktop  1process
Firefox  Variation  – B2G
FireFox Arch
• PeerConnection
• PeerConnection.js -­-­ shim  translation  layer  to  let  us  do  API  adaptation  to  the  C++
• PeerConnectionImpl -­-­ C++  implementation  of  the  PeerConnection interface.
• SIPCC  -­-­ handles  SDP  and  media  negotiation.  Provided  by  Cisco  but  not  a  downstream.
• Media
• Webrtc.org/GIPS  -­-­ handles  media  encoding  and  decoding.  Downstream  from  Google.
• MediaConduit -­-­ Generic  wrapper  around  Webrtc.org
• MediaPipeline -­-­ Wrapper  to  hold  the  MediaConduit,  mtransport subsystem,  and  the  SRTP  contexts,  as  well  as  interface  
with  MediaStreams.
• Transport
• mtransport -­-­ generic  transport  subsystem  with  implementations  for  ICE,  DTLS,  etc.
• NSS  -­-­ new  DTLS  stack.  Mentioned  because  we  need  to  land  the  new  version  of  NSS
• nICEr -­-­ ICE  stack;;  downstream  from  reSIProcate project
• nrappkit -­-­portable  runtime,  utility  library;;  downstream  from  nrappkit.sourceforge.net
• DataChannel
• DataChannel implementation  in  the  DOM
• libsctp -­-­ SCTP  implementation;;  downstream  from  the  BSD  SCTP  guys
Webkit Arch
Webkit Arch
Webkit Webrtc Class  Arch
Libwebrtc Internals
LibWEBRTC Name  Space  Design
LibWEBRTC Class  Design
Example:  PERC-­Lite
PeerConnection and  friends (Slide  courtesy  Google)
PeerConnection
WebRtcSession
TransportController
BaseChannel
MediaChannel
DtlsTransport
P2PTransportChannel
JsepTransport
ChannelManager
Call	
  & related	
  
interfaces
Call  API  today  (Content  courtesy  Google)
• everything  that's not ICE,  DTLS  or  SDP.
• Underneath  Call,  there  are  already  "RtpSender”,  "RtpReceiver”,  
"RtpTransport”,  but  they're  buried  down  many  levels.
• So  the  RtpSender/RtpReceiver objects  […]  are  actually  just  thin  proxies  
that  rely  on  objects  several  layers  below  to  do  the  real  work.
• Any  time  [Google]  adds  a  new  API  (such  as GetContributingSources),  
[they]  need  to  plumb  it  through  all  those  layers,  which  is  time-­consuming,  
difficult  to  maintain,  prone  to  bugs,  etc.
• So  what  [they]  plan  to  do  is  pull  the  RTP  objects out of  Call,  and  merge  
them  with  the  API-­level  objects.
Call	
  & related	
  
interfaces
• AudioRtpSender ("API  level")
• VoiceChannel
(BaseChannel subclass)
• WebRtcVoiceMediaChannel
(MediaChannel subclass)
• Call
• AudioSendStream
• voe::ChannelProxy
• voe::Channel
• ModuleRtpRtcpImpl
• RTPSender ("Call  level")
Long  term  plans (With  Unified  Plan)  (Slide  Courtesy  Google)
PeerConnection
TransportController	
  (?)
DtlsTransport
P2PTransportChannel
JsepTransport
RtpTransport RtpTransceiver
RtpSender
RtpReceiver
?
Session  sponsored  by
WebRTC  Standards  &  Implementation  
Q&A
Amir	
  Zmora
TheNewDialTone
Dan	
  Burnett
StandardsPlay

More Related Content

PDF
WebRTC Standards & Implementation Q&A - Legacy API Support Changes
PDF
Modern VoIP in Modern Infrastructures
PDF
WebRTC Standards & Implementation Q&A - WebRTC Standards Feature Complete 
No...
PDF
Getting started with WebRTC
PPTX
AI in RTC - RTC Korea 2018
PDF
Quality Assurance for WebRTC Services
PDF
WebRTC and Janus intro for FOSS Stockholm January 2019
PDF
WebRTC Check-in (from WebRTC Boston 6)
WebRTC Standards & Implementation Q&A - Legacy API Support Changes
Modern VoIP in Modern Infrastructures
WebRTC Standards & Implementation Q&A - WebRTC Standards Feature Complete 
No...
Getting started with WebRTC
AI in RTC - RTC Korea 2018
Quality Assurance for WebRTC Services
WebRTC and Janus intro for FOSS Stockholm January 2019
WebRTC Check-in (from WebRTC Boston 6)

What's hot (20)

PDF
WebRTC Tutorial by Dean Bubley of Disruptive Analysis & Tim Panton of Westhaw...
PDF
Hyperledger community update 201805
PDF
WebRTC DataChannels demystified
PDF
ORTC Library - Introduction
PDF
WebRTC - a quick introduction
PDF
Hyperledger Cello Feb 20, 2018
PDF
Introduction to Filecoin
PPTX
Introduction to WebRTC
PDF
Hyperledger Fabric EVM Integration Feb 20, 2018
PDF
NATS in action - A Real time Microservices Architecture handled by NATS
PDF
Webrtc overview
PDF
WebRTC - On Standards, Identity and Telco Strategy
PDF
WebRTC: A front-end perspective
PDF
Janus conf'19: janus client side
PDF
node.js is made for IoT - node.hh 07/16, Hamburg by Michael Kuehne
PDF
Flow monitoring explained - From packet capture to data analysis - the use of...
PPTX
WebRTC overview
PPTX
Implementation Lessons using WebRTC in Asterisk
PDF
WebRTC Audio Codec: Opus and processing requirements
PDF
Bio routing - DKNOG9
WebRTC Tutorial by Dean Bubley of Disruptive Analysis & Tim Panton of Westhaw...
Hyperledger community update 201805
WebRTC DataChannels demystified
ORTC Library - Introduction
WebRTC - a quick introduction
Hyperledger Cello Feb 20, 2018
Introduction to Filecoin
Introduction to WebRTC
Hyperledger Fabric EVM Integration Feb 20, 2018
NATS in action - A Real time Microservices Architecture handled by NATS
Webrtc overview
WebRTC - On Standards, Identity and Telco Strategy
WebRTC: A front-end perspective
Janus conf'19: janus client side
node.js is made for IoT - node.hh 07/16, Hamburg by Michael Kuehne
Flow monitoring explained - From packet capture to data analysis - the use of...
WebRTC overview
Implementation Lessons using WebRTC in Asterisk
WebRTC Audio Codec: Opus and processing requirements
Bio routing - DKNOG9
Ad

Similar to WebRTC Standards & Implementation Q&A - The Internals of WebRTC Browsers Implementation (20)

PPTX
WebRTC Browsers n Stacks Implementation differences
PDF
DevCon 5 (December 2013) - WebRTC & WebSockets
PDF
Asterisk World (January 2014) - Taking Enterprise Telephony into the Web World
PDF
WebRTC standards update - November 2014
PDF
WebRTC for Telco: Informa's WebRTC Global Summit Preconference
PDF
WebRTC on Mobile
PDF
WebRTC - Is it ready? 2013
PPTX
DevCon5 (July 2014) - Intro to WebRTC
PDF
WebRTC standards update (Jul 2014)
PDF
WebRTC standards update (13 Nov 2013)
PDF
WebRTC Standards Update (October 2014)
PPTX
Upperside Webinar - WebRTC Standards Update
PDF
Workshop oracle
PPTX
Plugin for other browsers - webRTC Conference and Expo June 2014 @ atlanta
PDF
WebRTC Overview by Dan Burnett
PDF
WebRTC and VoIP: bridging the gap (Kamailio world conference 2013)
PDF
WebRTC in the Real World
PDF
Introduction to WebRTC
PPTX
DYI - Starting your own webrtc project
PDF
The State of WebRTC
WebRTC Browsers n Stacks Implementation differences
DevCon 5 (December 2013) - WebRTC & WebSockets
Asterisk World (January 2014) - Taking Enterprise Telephony into the Web World
WebRTC standards update - November 2014
WebRTC for Telco: Informa's WebRTC Global Summit Preconference
WebRTC on Mobile
WebRTC - Is it ready? 2013
DevCon5 (July 2014) - Intro to WebRTC
WebRTC standards update (Jul 2014)
WebRTC standards update (13 Nov 2013)
WebRTC Standards Update (October 2014)
Upperside Webinar - WebRTC Standards Update
Workshop oracle
Plugin for other browsers - webRTC Conference and Expo June 2014 @ atlanta
WebRTC Overview by Dan Burnett
WebRTC and VoIP: bridging the gap (Kamailio world conference 2013)
WebRTC in the Real World
Introduction to WebRTC
DYI - Starting your own webrtc project
The State of WebRTC
Ad

More from Amir Zmora (20)

PDF
FlexiWAN Webinar - The Role of Open Source in Your SD-WAN Strategy
PDF
WebRTC Standards & Implementation Q&A - All You Wanted to Know About W3C TPAC...
PDF
WebRTC Standards & Implementation Q&A - getDisplayMedia 1.0
PDF
WebRTC Standards & Implementation Q&A - IP address privacy revisited
PDF
WebRTC Standards & Implementation Q&A - WebRTC NV planning face-to-face meeting
PDF
WebRTC Standards & Implementation Q&A - Implications of WebRTC 1.0 changes an...
PDF
WebRTC Standards & Implementation Q&A - Testing WebRTC 1.0
PDF
WebRTC Standards & Implementation Q&A - The Future is Now2!
PDF
WebRTC Standards & Implementation Q&A - The Future is Now!
PDF
WebRTC Standards & Implementation Q&A - WebRTC Constrains
PDF
WebRTC Standards & Implementation Q&A - All about browser interoperability
PDF
WebRTC Webinar & Q&A - Standards Update
PDF
WebRTC Webinar & Q&A - All About Microsoft & WebRTC Hosting Guest Speaker Ja...
PDF
Web rtc standards live session #13 - The Browser-Standards Gap
PDF
WebRTC Webinar & Q&A - Sending DTMF in WebRTC the standard way
PDF
WebRTC Webinar & Q&A - W3C WebRTC W3C MediaStream Recording
PDF
WebRTC Webinar & Q&A - W3C WebRTC JS API Test Platform & Updates from W3C Lis...
PDF
WebRTC Webinar & Q&A - Debugging Networking Issues in WebRTC
PDF
WebRTC Webinar & Q&A - Sumilcast Standards & Implementation
PDF
WebRTC Webinar and Q&A - IP Address Privacy and Microsoft Edge Interoperability
FlexiWAN Webinar - The Role of Open Source in Your SD-WAN Strategy
WebRTC Standards & Implementation Q&A - All You Wanted to Know About W3C TPAC...
WebRTC Standards & Implementation Q&A - getDisplayMedia 1.0
WebRTC Standards & Implementation Q&A - IP address privacy revisited
WebRTC Standards & Implementation Q&A - WebRTC NV planning face-to-face meeting
WebRTC Standards & Implementation Q&A - Implications of WebRTC 1.0 changes an...
WebRTC Standards & Implementation Q&A - Testing WebRTC 1.0
WebRTC Standards & Implementation Q&A - The Future is Now2!
WebRTC Standards & Implementation Q&A - The Future is Now!
WebRTC Standards & Implementation Q&A - WebRTC Constrains
WebRTC Standards & Implementation Q&A - All about browser interoperability
WebRTC Webinar & Q&A - Standards Update
WebRTC Webinar & Q&A - All About Microsoft & WebRTC Hosting Guest Speaker Ja...
Web rtc standards live session #13 - The Browser-Standards Gap
WebRTC Webinar & Q&A - Sending DTMF in WebRTC the standard way
WebRTC Webinar & Q&A - W3C WebRTC W3C MediaStream Recording
WebRTC Webinar & Q&A - W3C WebRTC JS API Test Platform & Updates from W3C Lis...
WebRTC Webinar & Q&A - Debugging Networking Issues in WebRTC
WebRTC Webinar & Q&A - Sumilcast Standards & Implementation
WebRTC Webinar and Q&A - IP Address Privacy and Microsoft Edge Interoperability

Recently uploaded (20)

PDF
Chapter 3 Spatial Domain Image Processing.pdf
PDF
Modernizing your data center with Dell and AMD
PDF
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
PDF
Electronic commerce courselecture one. Pdf
PPT
Teaching material agriculture food technology
PDF
Approach and Philosophy of On baking technology
PDF
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
PDF
Unlocking AI with Model Context Protocol (MCP)
PDF
Diabetes mellitus diagnosis method based random forest with bat algorithm
PPTX
PA Analog/Digital System: The Backbone of Modern Surveillance and Communication
PDF
Agricultural_Statistics_at_a_Glance_2022_0.pdf
PDF
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
PDF
Mobile App Security Testing_ A Comprehensive Guide.pdf
DOCX
The AUB Centre for AI in Media Proposal.docx
PDF
Reach Out and Touch Someone: Haptics and Empathic Computing
PDF
Empathic Computing: Creating Shared Understanding
PDF
Building Integrated photovoltaic BIPV_UPV.pdf
PDF
Shreyas Phanse Resume: Experienced Backend Engineer | Java • Spring Boot • Ka...
PPTX
Big Data Technologies - Introduction.pptx
PDF
Encapsulation theory and applications.pdf
Chapter 3 Spatial Domain Image Processing.pdf
Modernizing your data center with Dell and AMD
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
Electronic commerce courselecture one. Pdf
Teaching material agriculture food technology
Approach and Philosophy of On baking technology
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
Unlocking AI with Model Context Protocol (MCP)
Diabetes mellitus diagnosis method based random forest with bat algorithm
PA Analog/Digital System: The Backbone of Modern Surveillance and Communication
Agricultural_Statistics_at_a_Glance_2022_0.pdf
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
Mobile App Security Testing_ A Comprehensive Guide.pdf
The AUB Centre for AI in Media Proposal.docx
Reach Out and Touch Someone: Haptics and Empathic Computing
Empathic Computing: Creating Shared Understanding
Building Integrated photovoltaic BIPV_UPV.pdf
Shreyas Phanse Resume: Experienced Backend Engineer | Java • Spring Boot • Ka...
Big Data Technologies - Introduction.pptx
Encapsulation theory and applications.pdf

WebRTC Standards & Implementation Q&A - The Internals of WebRTC Browsers Implementation

  • 1. WebRTC  Standards  Q&A Amir  Zmora TheNewDialTone Dan  Burnett StandardsPlay
  • 2. Guest  Speaker • Previously  part  of  the  WebRTC Standard  team • Left  to  handle  CoSMo growth (1~12  in  6months) • Consulting  on  WebRTC,  with  focus  on: • C++  libwebrtc and  Native  Apps • Build  /Test  /  Package   • Codecs • (Double)  Encryption • Qt wrappers • Media  Servers  (Meedoze,  Janus,  Jitsi) • System  level  design  and  implementation Dr.  Alex  Gouaillard WebRTC by  Dr Alex CoSMo Software
  • 3. Watch  video  recording  of  this  session http://ccst.io/e/webrtcstandards18
  • 4. Session  sponsored  by WebRTC.ventures  is  a  custom  design  and  development  shop  dedicated  to  building  WebRTC  based  applications   for  web  and  mobile.  We  have  built  end-­‐to-­‐end  broadcast  solutions  for  events  and  entertainment  clients,   telehealth  solutions  for  multiple  clients,  live  support  tools,  as  well  as  communication  tools  for  a  variety  of  other   applications. WebRTC.ventures  is  a  recognized  development  partner  of  TokBox  and  has  also  built  native   WebRTC  solutions  
  • 6. About  Us • Amir  Zmora • Dan  Burnett
  • 10. Chrome  Variation • Wait  ..  What?  Chrome  does  not  use  all  of  libwebrtc? Why?
  • 13. Chrome  Variation • Wait  ..  What?  Chrome  does  not  use  libwebrtc? Why? • Chrome  layering • Sandbox  and  per  tab  security • Echo  canceling • Special  capturers  (screen/window/tab) • Capturer  access  security • Pretty  much  the  same  applies  to  all  browsers
  • 14. Chrome  Variations • OK,  Chrome  does  not  use  libwebrtc? Why  should  I  Care? • If  you  use  the  webrtc  lib  in  your  project,  and  expect  the  same  results  as  chrome,  be  ready   for  big  surprises!   • No  Screen/windows/tab  sharing • Obsolete  mac  capturer • No  HTTP  PROXY  support • …
  • 16. Firefox  Variation  – Desktop  1process
  • 18. FireFox Arch • PeerConnection • PeerConnection.js -­-­ shim  translation  layer  to  let  us  do  API  adaptation  to  the  C++ • PeerConnectionImpl -­-­ C++  implementation  of  the  PeerConnection interface. • SIPCC  -­-­ handles  SDP  and  media  negotiation.  Provided  by  Cisco  but  not  a  downstream. • Media • Webrtc.org/GIPS  -­-­ handles  media  encoding  and  decoding.  Downstream  from  Google. • MediaConduit -­-­ Generic  wrapper  around  Webrtc.org • MediaPipeline -­-­ Wrapper  to  hold  the  MediaConduit,  mtransport subsystem,  and  the  SRTP  contexts,  as  well  as  interface   with  MediaStreams. • Transport • mtransport -­-­ generic  transport  subsystem  with  implementations  for  ICE,  DTLS,  etc. • NSS  -­-­ new  DTLS  stack.  Mentioned  because  we  need  to  land  the  new  version  of  NSS • nICEr -­-­ ICE  stack;;  downstream  from  reSIProcate project • nrappkit -­-­portable  runtime,  utility  library;;  downstream  from  nrappkit.sourceforge.net • DataChannel • DataChannel implementation  in  the  DOM • libsctp -­-­ SCTP  implementation;;  downstream  from  the  BSD  SCTP  guys
  • 26. PeerConnection and  friends (Slide  courtesy  Google) PeerConnection WebRtcSession TransportController BaseChannel MediaChannel DtlsTransport P2PTransportChannel JsepTransport ChannelManager Call  & related   interfaces
  • 27. Call  API  today  (Content  courtesy  Google) • everything  that's not ICE,  DTLS  or  SDP. • Underneath  Call,  there  are  already  "RtpSender”,  "RtpReceiver”,   "RtpTransport”,  but  they're  buried  down  many  levels. • So  the  RtpSender/RtpReceiver objects  […]  are  actually  just  thin  proxies   that  rely  on  objects  several  layers  below  to  do  the  real  work. • Any  time  [Google]  adds  a  new  API  (such  as GetContributingSources),   [they]  need  to  plumb  it  through  all  those  layers,  which  is  time-­consuming,   difficult  to  maintain,  prone  to  bugs,  etc. • So  what  [they]  plan  to  do  is  pull  the  RTP  objects out of  Call,  and  merge   them  with  the  API-­level  objects. Call  & related   interfaces • AudioRtpSender ("API  level") • VoiceChannel (BaseChannel subclass) • WebRtcVoiceMediaChannel (MediaChannel subclass) • Call • AudioSendStream • voe::ChannelProxy • voe::Channel • ModuleRtpRtcpImpl • RTPSender ("Call  level")
  • 28. Long  term  plans (With  Unified  Plan)  (Slide  Courtesy  Google) PeerConnection TransportController  (?) DtlsTransport P2PTransportChannel JsepTransport RtpTransport RtpTransceiver RtpSender RtpReceiver
  • 29. ?
  • 31. WebRTC  Standards  &  Implementation   Q&A Amir  Zmora TheNewDialTone Dan  Burnett StandardsPlay