SlideShare a Scribd company logo
WebRTC Standards  &  
Implementation  Q&A
Amir	
  Zmora
TheNewDialTone
Dan	
  Burnett
StandardsPlay
Alex	
  Gouaillard
WebRTC by	
  Dr	
  Alex	
  /	
  Citrix
Watch  video  recording  of  this  session
http://ccst.io/e/webrtcstandards8
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	
  
Session  sponsored  by
Blacc	
  Spot	
  Media is	
  comprised	
  of	
  a	
  collaborative	
  team	
  of	
  designers,	
  developers	
  and	
  thought	
  leaders	
  specializing	
  
in	
  Web-­‐Real	
  Time	
  Communications	
  (WebRTC).	
  Blacc Spot	
  Media	
  was	
  founded	
  in	
  April	
  2011	
  with	
  the	
  goal	
  of	
  
creating	
  innovative	
  solutions	
  using	
  new	
  technologies	
  such	
  as	
  WebRTC.	
  Our	
  team	
  works	
  on	
  strategic	
  projects	
  
developing	
  custom	
  applications,	
  enterprise	
  platforms	
  and	
  mobile	
  applications	
  for	
  a	
  wide	
  array	
  of	
  clients.
We  use  CrowdCast….It’s  WebRTC
WebRTCStandards.info
Sponsored  by
About  Us
• Amir  Zmora • Dan  Burnett • Alex  Gouaillard
Save  The  Date:  October  19
Register  Now:  http://ccst.io/e/webrtcstandards9
Next  Session
On  The  Agenda:
Debugging  Networking  Issues  in  
WebRTC
Debugging  networking  – within  your  app
• Standards  APIs  don't  provide  post-­execution  debugging
• APIs  give  you  live  information  usable  by  your  app  itself  to  diagnose  problems
• Three  main  areas
• Error  events
• Status  variables
• Live  statistics
Error  events
• icecandidateerror:    will  tell  you  which  STUN  or  TURN  server  had  an  error
• error  (on  data  channel)
Status  variables
• General:    pc.{signaling,  iceGathering,  iceConnection,  connection}State
• Related  events:  {signaling,  icegathering,  iceconnection,  connection)statechange
• Be  aware  of  disconnected and  failed in  iceConnectionState and/or  connectionState
• These  can  make  you  aware  of  a  problem,  but  they  don't  help  much  in  diagnosing  it.    They  also  
can  be  "slow"  to  indicate  a  network  problem  because  they  are  composite  errors
• Per flow:  {sender,  receiver}.{transport,  rtcpTransport}.{state,gatheringState}
• Related  events:  {state,gatheringstate}change
• failed here  also  provides  awareness  of  a  problem  but  not  diagnosis
• Per  flow:  {sender,  receiver}.{transport,  
rtcpTransport}.get{SelectedCandidatePair,{Local,Remote}Parameters}
• gives  you  the  selected  candidate  pair  and  the  u/p  for  each  end
Statistics  at  the  Candidate  Pair  level
• Counters:    Sent/Received  values  for  bytes,  requests,  responses,  retransmissions,  
consentRequests,  consentResponses (e.g.  bytesSent,  consentResponsesReceived)
• Calculated  current  and  total  Rtt
• Calculated  available{Outgoing,Incoming}Bitrate
Status  variables
Ice  Candidate  Error  values  (courtesy:  Mozilla  doc)
Making  Sense  of  PeerConnection State  Machines
ICE
Connection
new
checking
connected
disconnected
failed
Completed
close
new
gathering
complete
ICE
Gathering
stable
Have-­‐remote-­‐offer
stable
Peer
Connection
Trying	
  to	
  make	
  Sense	
  of	
  PeerConnection State	
  Machines	
  …..
Is	
  useless	
  without	
  the	
  big	
  picture	
  …..
Close
DONE	
  	
  	
  	
  FROZENIN	
  CALL	
  CONNECTION	
  	
  	
  	
  	
  	
  	
  HANDSHAKE	
  (SDP	
  O/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
And  that  was  for  the  “simple”  1:1  case,  with  trickle  ice
• Multiparty?
• Simulcast?
• Object  Oriented  API?
• …
• Ask  Dan  or  alex  (or  both)  for  consulting  J
Hacks:  How  to  infer  infos on  the  network  in  the  browser  
based  on  ICE
-­ ask  the  ice  gathering  to  try  to  generate  a  relay  candidate  with  transport  =  tcp and  the  provided  
turn  server
=>  if  the  turn  server  exists  (suppose  it  is,  google provides  it)
=>  if  the  credential  are  ok  (again,  suppose  it  is)
=>  if  there  is  a  local  port  that  let  tcp through
=>  if  the  turn  server  is  configured  to  receive  TCP  on  the  corresponding  port  (suppose  it  is)
THEN
a  TCP  relay  candidate  is  created  during  the  gathering.
By  getting  a  relay  candidate  (or  not)  knowing  all  the  other  steps,  you  infer  if  you  have  any  tcp
port  open.
Rince and  repeat  for  udp,  tls dtls,  just  like  the  https://test.webrtc.org code  does.
Ask  the  browser  for  more  info,  traces  and  log
• Webkit Testing:  Tool/Script/run-­webkit-­tests
• Mozilla  Mochitests for  WebRTC,  and  extra  logs
• https://wiki.mozilla.org/Media/WebRTC/Testing
• https://wiki.mozilla.org/Media/WebRTC/Logging
• Chrome  Logging:
• chrome.exe -­-­enable-­logging  -­-­vmodule=*/webrtc/*=2,*/libjingle/*=2,*=-­2  -­-­no-­sandbox
Some  low  level  tools  (chrome  canary  =>  no  encryption)
Monitoring  tools:
• Ganglia  +  Nagios
Operating  system  utilities
• Dig  for  DNS
• Netstat or  lsof for  socket  verification  (IP:port)
• S_client (openssl)
Packet  sniffers
• Tcpdump /  Wireshark.
• If  no  encryption:  ngrep
Debugging  mode
• Recompiled/weaponized browsers  (not  for  the  faint  of  heart)
WebRTC  and  WebSockets
• Mozilla  Firefox =>  about:webrtc
• Google  Chrome =>chrome://webrtc-­internals.
?
Save  The  Date:  October  19
Register  Now:  http://ccst.io/e/webrtcstandards9
Next  Session
Session  sponsored  by
Thank  You
Amir	
  Zmora
TheNewDialTone
Dan	
  Burnett
StandardsPlay
Alex	
  Gouaillard
WebRTC by	
  Dr	
  Alex

More Related Content

PDF
WebRTC Webinar & Q&A - Sumilcast Standards & Implementation
Amir Zmora
 
PDF
LF_DPDK17_Event Adapters - Connecting Devices to Eventdev
LF_DPDK
 
PDF
LF_DPDK17_DPDK with KNI – Pushing the Performance of an SDWAN Gateway to High...
LF_DPDK
 
PDF
Hands on with CoAP and Californium
Julien Vermillard
 
PDF
RTI Connext 5.2.0
Jan Van Bruaene
 
PDF
Lithe: Lightweight Secure CoAP for the Internet of Things
Joon Young Park
 
PDF
ARM CoAP Tutorial
zdshelby
 
PDF
LF_OVS_17_OvS manipulation with Go at DigitalOcean
LF_OpenvSwitch
 
WebRTC Webinar & Q&A - Sumilcast Standards & Implementation
Amir Zmora
 
LF_DPDK17_Event Adapters - Connecting Devices to Eventdev
LF_DPDK
 
LF_DPDK17_DPDK with KNI – Pushing the Performance of an SDWAN Gateway to High...
LF_DPDK
 
Hands on with CoAP and Californium
Julien Vermillard
 
RTI Connext 5.2.0
Jan Van Bruaene
 
Lithe: Lightweight Secure CoAP for the Internet of Things
Joon Young Park
 
ARM CoAP Tutorial
zdshelby
 
LF_OVS_17_OvS manipulation with Go at DigitalOcean
LF_OpenvSwitch
 

What's hot (20)

PDF
Matrix - One-year in, Matthew Hodgson, Matrix.org
Alan Quayle
 
PDF
LF_DPDK17_Integrating and using DPDK with Open vSwitch
LF_DPDK
 
PDF
CoAP, Copper, and Embedded Web Resources
Matthias Kovatsch
 
PDF
LF_DPDK17_Accelerating P4-based Dataplane with DPDK
LF_DPDK
 
PDF
OVS and DPDK - T.F. Herbert, K. Traynor, M. Gray
harryvanhaaren
 
PDF
DPDK Summit 2015 - Aspera - Charles Shiflett
Jim St. Leger
 
PDF
Accelerate Service Function Chaining Vertical Solution with DPDK
OPNFV
 
PDF
LF_DPDK17_Power Aware Packet Processing
LF_DPDK
 
PDF
RTI Connext 5.1.0
Jan Van Bruaene
 
PDF
Janus & docker: friends or foe
Alessandro Amirante
 
PDF
LF_DPDK17_ OpenVswitch hardware offload over DPDK
LF_DPDK
 
PDF
Netty @Apple: Large Scale Deployment/Connectivity
C4Media
 
PPTX
6WIND - SPEED MATTERS: The Challenge 2014 Contest Winners
6WIND
 
PPTX
Coap based application for android phones
Md Syed Ahamad
 
PDF
Scalar DB: Universal Transaction Manager
Scalar, Inc.
 
PDF
JavaZone 2016 : MQTT and CoAP for the Java Developer
Mark West
 
PDF
Matrix.org decentralised communication, Matthew Hodgson, TADSummit
Alan Quayle
 
PPTX
G rpc talk with intel (3)
Intel
 
PDF
Intro to open source observability with grafana, prometheus, loki, and tempo(...
LibbySchulze
 
PPTX
A Pulsar Use Case In Federated Learning - Pulsar Summit NA 2021
StreamNative
 
Matrix - One-year in, Matthew Hodgson, Matrix.org
Alan Quayle
 
LF_DPDK17_Integrating and using DPDK with Open vSwitch
LF_DPDK
 
CoAP, Copper, and Embedded Web Resources
Matthias Kovatsch
 
LF_DPDK17_Accelerating P4-based Dataplane with DPDK
LF_DPDK
 
OVS and DPDK - T.F. Herbert, K. Traynor, M. Gray
harryvanhaaren
 
DPDK Summit 2015 - Aspera - Charles Shiflett
Jim St. Leger
 
Accelerate Service Function Chaining Vertical Solution with DPDK
OPNFV
 
LF_DPDK17_Power Aware Packet Processing
LF_DPDK
 
RTI Connext 5.1.0
Jan Van Bruaene
 
Janus & docker: friends or foe
Alessandro Amirante
 
LF_DPDK17_ OpenVswitch hardware offload over DPDK
LF_DPDK
 
Netty @Apple: Large Scale Deployment/Connectivity
C4Media
 
6WIND - SPEED MATTERS: The Challenge 2014 Contest Winners
6WIND
 
Coap based application for android phones
Md Syed Ahamad
 
Scalar DB: Universal Transaction Manager
Scalar, Inc.
 
JavaZone 2016 : MQTT and CoAP for the Java Developer
Mark West
 
Matrix.org decentralised communication, Matthew Hodgson, TADSummit
Alan Quayle
 
G rpc talk with intel (3)
Intel
 
Intro to open source observability with grafana, prometheus, loki, and tempo(...
LibbySchulze
 
A Pulsar Use Case In Federated Learning - Pulsar Summit NA 2021
StreamNative
 
Ad

Similar to WebRTC Webinar & Q&A - Debugging Networking Issues in WebRTC (20)

PDF
2015 Q4 webrtc standards update
Alexandre Gouaillard
 
PDF
WebRTC Webinar & Q&A - W3C WebRTC JS API Test Platform & Updates from W3C Lis...
Amir Zmora
 
PPTX
WebRTC Seminar Report
srinivasa teja
 
PDF
Spring Boot for WebRTC Signaling Servers: A Comprehensive Guide
Inexture Solutions
 
PPTX
2016 February - WebRTC Conference japan - English
Alexandre Gouaillard
 
PDF
Can the e-Mobility Charging Infrastructure be a Blueprint for other IoT Proje...
Achim Friedland
 
PPT
Network programming in Java
Tushar B Kute
 
PDF
WebRTC Live Q&A Session #5 - JavaScript Promises and WebRTC Interoperability ...
Amir Zmora
 
PDF
Maximize Application Performance and Bandwidth Efficiency with WAN Optimization
Cisco Enterprise Networks
 
PPTX
Future Internet protocols
Olivier Bonaventure
 
PDF
Measuring CDN performance and why you're doing it wrong
Fastly
 
PDF
Measuring CDN performance and why you're doing it wrong
Fastly
 
PPT
ACIT Mumbai - OSI Model
Sleek International
 
PPT
ACIT Mumbai - Open Systems Interconnect
Sleek International
 
PDF
WebRTC Standards & Implementation Q&A - All You Wanted to Know About W3C TPAC...
Amir Zmora
 
PPTX
Innovation is back in the transport and network layers
Olivier Bonaventure
 
PDF
WebRTC Standards & Implementation Q&A - Legacy API Support Changes
Amir Zmora
 
PDF
OpenTelemetry Introduction
DimitrisFinas1
 
PDF
Introduction to Stream Processing
Guido Schmutz
 
PPTX
Swift distributed tracing method and tools v2
zhang hua
 
2015 Q4 webrtc standards update
Alexandre Gouaillard
 
WebRTC Webinar & Q&A - W3C WebRTC JS API Test Platform & Updates from W3C Lis...
Amir Zmora
 
WebRTC Seminar Report
srinivasa teja
 
Spring Boot for WebRTC Signaling Servers: A Comprehensive Guide
Inexture Solutions
 
2016 February - WebRTC Conference japan - English
Alexandre Gouaillard
 
Can the e-Mobility Charging Infrastructure be a Blueprint for other IoT Proje...
Achim Friedland
 
Network programming in Java
Tushar B Kute
 
WebRTC Live Q&A Session #5 - JavaScript Promises and WebRTC Interoperability ...
Amir Zmora
 
Maximize Application Performance and Bandwidth Efficiency with WAN Optimization
Cisco Enterprise Networks
 
Future Internet protocols
Olivier Bonaventure
 
Measuring CDN performance and why you're doing it wrong
Fastly
 
Measuring CDN performance and why you're doing it wrong
Fastly
 
ACIT Mumbai - OSI Model
Sleek International
 
ACIT Mumbai - Open Systems Interconnect
Sleek International
 
WebRTC Standards & Implementation Q&A - All You Wanted to Know About W3C TPAC...
Amir Zmora
 
Innovation is back in the transport and network layers
Olivier Bonaventure
 
WebRTC Standards & Implementation Q&A - Legacy API Support Changes
Amir Zmora
 
OpenTelemetry Introduction
DimitrisFinas1
 
Introduction to Stream Processing
Guido Schmutz
 
Swift distributed tracing method and tools v2
zhang hua
 
Ad

More from Amir Zmora (20)

PDF
FlexiWAN Webinar - The Role of Open Source in Your SD-WAN Strategy
Amir Zmora
 
PDF
WebRTC Standards & Implementation Q&A - getDisplayMedia 1.0
Amir Zmora
 
PDF
WebRTC Standards & Implementation Q&A - IP address privacy revisited
Amir Zmora
 
PDF
WebRTC Standards & Implementation Q&A - WebRTC NV planning face-to-face meeting
Amir Zmora
 
PDF
WebRTC Standards & Implementation Q&A - Implications of WebRTC 1.0 changes an...
Amir Zmora
 
PDF
WebRTC Standards & Implementation Q&A - Testing WebRTC 1.0
Amir Zmora
 
PDF
WebRTC Standards & Implementation Q&A - The Future is Now2!
Amir Zmora
 
PDF
WebRTC Standards & Implementation Q&A - The Future is Now!
Amir Zmora
 
PDF
WebRTC Standards & Implementation Q&A - WebRTC Standards Feature Complete 
No...
Amir Zmora
 
PDF
WebRTC Standards & Implementation Q&A - WebRTC Constrains
Amir Zmora
 
PDF
WebRTC Standards & Implementation Q&A - The Internals of WebRTC Browsers Impl...
Amir Zmora
 
PDF
WebRTC Standards & Implementation Q&A - All about browser interoperability
Amir Zmora
 
PDF
WebRTC Webinar & Q&A - Standards Update
Amir Zmora
 
PDF
WebRTC Webinar & Q&A - All About Microsoft & WebRTC Hosting Guest Speaker Ja...
Amir Zmora
 
PDF
Web rtc standards live session #13 - The Browser-Standards Gap
Amir Zmora
 
PDF
WebRTC Webinar & Q&A - Sending DTMF in WebRTC the standard way
Amir Zmora
 
PDF
WebRTC Webinar & Q&A - W3C WebRTC W3C MediaStream Recording
Amir Zmora
 
PDF
WebRTC Webinar and Q&A - IP Address Privacy and Microsoft Edge Interoperability
Amir Zmora
 
PDF
WebRTC Live Q&A Session #4 - WebRTC in WebKit and the story around Apple and ...
Amir Zmora
 
PDF
WebRTC Live Q&A and Screen Capture session 3
Amir Zmora
 
FlexiWAN Webinar - The Role of Open Source in Your SD-WAN Strategy
Amir Zmora
 
WebRTC Standards & Implementation Q&A - getDisplayMedia 1.0
Amir Zmora
 
WebRTC Standards & Implementation Q&A - IP address privacy revisited
Amir Zmora
 
WebRTC Standards & Implementation Q&A - WebRTC NV planning face-to-face meeting
Amir Zmora
 
WebRTC Standards & Implementation Q&A - Implications of WebRTC 1.0 changes an...
Amir Zmora
 
WebRTC Standards & Implementation Q&A - Testing WebRTC 1.0
Amir Zmora
 
WebRTC Standards & Implementation Q&A - The Future is Now2!
Amir Zmora
 
WebRTC Standards & Implementation Q&A - The Future is Now!
Amir Zmora
 
WebRTC Standards & Implementation Q&A - WebRTC Standards Feature Complete 
No...
Amir Zmora
 
WebRTC Standards & Implementation Q&A - WebRTC Constrains
Amir Zmora
 
WebRTC Standards & Implementation Q&A - The Internals of WebRTC Browsers Impl...
Amir Zmora
 
WebRTC Standards & Implementation Q&A - All about browser interoperability
Amir Zmora
 
WebRTC Webinar & Q&A - Standards Update
Amir Zmora
 
WebRTC Webinar & Q&A - All About Microsoft & WebRTC Hosting Guest Speaker Ja...
Amir Zmora
 
Web rtc standards live session #13 - The Browser-Standards Gap
Amir Zmora
 
WebRTC Webinar & Q&A - Sending DTMF in WebRTC the standard way
Amir Zmora
 
WebRTC Webinar & Q&A - W3C WebRTC W3C MediaStream Recording
Amir Zmora
 
WebRTC Webinar and Q&A - IP Address Privacy and Microsoft Edge Interoperability
Amir Zmora
 
WebRTC Live Q&A Session #4 - WebRTC in WebKit and the story around Apple and ...
Amir Zmora
 
WebRTC Live Q&A and Screen Capture session 3
Amir Zmora
 

Recently uploaded (20)

PDF
NewMind AI Weekly Chronicles - July'25 - Week IV
NewMind AI
 
PDF
A Day in the Life of Location Data - Turning Where into How.pdf
Precisely
 
PDF
Brief History of Internet - Early Days of Internet
sutharharshit158
 
PDF
The Future of Artificial Intelligence (AI)
Mukul
 
PPTX
OA presentation.pptx OA presentation.pptx
pateldhruv002338
 
PPTX
Dev Dives: Automate, test, and deploy in one place—with Unified Developer Exp...
AndreeaTom
 
PDF
Security features in Dell, HP, and Lenovo PC systems: A research-based compar...
Principled Technologies
 
PPTX
The-Ethical-Hackers-Imperative-Safeguarding-the-Digital-Frontier.pptx
sujalchauhan1305
 
PPTX
Applied-Statistics-Mastering-Data-Driven-Decisions.pptx
parmaryashparmaryash
 
PDF
SparkLabs Primer on Artificial Intelligence 2025
SparkLabs Group
 
PDF
CIFDAQ's Market Wrap : Bears Back in Control?
CIFDAQ
 
PDF
A Strategic Analysis of the MVNO Wave in Emerging Markets.pdf
IPLOOK Networks
 
PDF
Economic Impact of Data Centres to the Malaysian Economy
flintglobalapac
 
PDF
Cloud-Migration-Best-Practices-A-Practical-Guide-to-AWS-Azure-and-Google-Clou...
Artjoker Software Development Company
 
PDF
BLW VOCATIONAL TRAINING SUMMER INTERNSHIP REPORT
codernjn73
 
PDF
Doc9.....................................
SofiaCollazos
 
PPTX
IT Runs Better with ThousandEyes AI-driven Assurance
ThousandEyes
 
PDF
The Evolution of KM Roles (Presented at Knowledge Summit Dublin 2025)
Enterprise Knowledge
 
PDF
Orbitly Pitch Deck|A Mission-Driven Platform for Side Project Collaboration (...
zz41354899
 
PDF
How-Cloud-Computing-Impacts-Businesses-in-2025-and-Beyond.pdf
Artjoker Software Development Company
 
NewMind AI Weekly Chronicles - July'25 - Week IV
NewMind AI
 
A Day in the Life of Location Data - Turning Where into How.pdf
Precisely
 
Brief History of Internet - Early Days of Internet
sutharharshit158
 
The Future of Artificial Intelligence (AI)
Mukul
 
OA presentation.pptx OA presentation.pptx
pateldhruv002338
 
Dev Dives: Automate, test, and deploy in one place—with Unified Developer Exp...
AndreeaTom
 
Security features in Dell, HP, and Lenovo PC systems: A research-based compar...
Principled Technologies
 
The-Ethical-Hackers-Imperative-Safeguarding-the-Digital-Frontier.pptx
sujalchauhan1305
 
Applied-Statistics-Mastering-Data-Driven-Decisions.pptx
parmaryashparmaryash
 
SparkLabs Primer on Artificial Intelligence 2025
SparkLabs Group
 
CIFDAQ's Market Wrap : Bears Back in Control?
CIFDAQ
 
A Strategic Analysis of the MVNO Wave in Emerging Markets.pdf
IPLOOK Networks
 
Economic Impact of Data Centres to the Malaysian Economy
flintglobalapac
 
Cloud-Migration-Best-Practices-A-Practical-Guide-to-AWS-Azure-and-Google-Clou...
Artjoker Software Development Company
 
BLW VOCATIONAL TRAINING SUMMER INTERNSHIP REPORT
codernjn73
 
Doc9.....................................
SofiaCollazos
 
IT Runs Better with ThousandEyes AI-driven Assurance
ThousandEyes
 
The Evolution of KM Roles (Presented at Knowledge Summit Dublin 2025)
Enterprise Knowledge
 
Orbitly Pitch Deck|A Mission-Driven Platform for Side Project Collaboration (...
zz41354899
 
How-Cloud-Computing-Impacts-Businesses-in-2025-and-Beyond.pdf
Artjoker Software Development Company
 

WebRTC Webinar & Q&A - Debugging Networking Issues in WebRTC

  • 1. WebRTC Standards  &   Implementation  Q&A Amir  Zmora TheNewDialTone Dan  Burnett StandardsPlay Alex  Gouaillard WebRTC by  Dr  Alex  /  Citrix
  • 2. Watch  video  recording  of  this  session http://ccst.io/e/webrtcstandards8
  • 3. 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  
  • 4. Session  sponsored  by Blacc  Spot  Media is  comprised  of  a  collaborative  team  of  designers,  developers  and  thought  leaders  specializing   in  Web-­‐Real  Time  Communications  (WebRTC).  Blacc Spot  Media  was  founded  in  April  2011  with  the  goal  of   creating  innovative  solutions  using  new  technologies  such  as  WebRTC.  Our  team  works  on  strategic  projects   developing  custom  applications,  enterprise  platforms  and  mobile  applications  for  a  wide  array  of  clients.
  • 7. About  Us • Amir  Zmora • Dan  Burnett • Alex  Gouaillard
  • 8. Save  The  Date:  October  19 Register  Now:  http://ccst.io/e/webrtcstandards9 Next  Session
  • 9. On  The  Agenda: Debugging  Networking  Issues  in   WebRTC
  • 10. Debugging  networking  – within  your  app • Standards  APIs  don't  provide  post-­execution  debugging • APIs  give  you  live  information  usable  by  your  app  itself  to  diagnose  problems • Three  main  areas • Error  events • Status  variables • Live  statistics
  • 11. Error  events • icecandidateerror:    will  tell  you  which  STUN  or  TURN  server  had  an  error • error  (on  data  channel)
  • 12. Status  variables • General:    pc.{signaling,  iceGathering,  iceConnection,  connection}State • Related  events:  {signaling,  icegathering,  iceconnection,  connection)statechange • Be  aware  of  disconnected and  failed in  iceConnectionState and/or  connectionState • These  can  make  you  aware  of  a  problem,  but  they  don't  help  much  in  diagnosing  it.    They  also   can  be  "slow"  to  indicate  a  network  problem  because  they  are  composite  errors • Per flow:  {sender,  receiver}.{transport,  rtcpTransport}.{state,gatheringState} • Related  events:  {state,gatheringstate}change • failed here  also  provides  awareness  of  a  problem  but  not  diagnosis • Per  flow:  {sender,  receiver}.{transport,   rtcpTransport}.get{SelectedCandidatePair,{Local,Remote}Parameters} • gives  you  the  selected  candidate  pair  and  the  u/p  for  each  end
  • 13. Statistics  at  the  Candidate  Pair  level • Counters:    Sent/Received  values  for  bytes,  requests,  responses,  retransmissions,   consentRequests,  consentResponses (e.g.  bytesSent,  consentResponsesReceived) • Calculated  current  and  total  Rtt • Calculated  available{Outgoing,Incoming}Bitrate
  • 15. Ice  Candidate  Error  values  (courtesy:  Mozilla  doc)
  • 16. Making  Sense  of  PeerConnection State  Machines
  • 18. DONE        FROZENIN  CALL  CONNECTION              HANDSHAKE  (SDP  O/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
  • 19. And  that  was  for  the  “simple”  1:1  case,  with  trickle  ice • Multiparty? • Simulcast? • Object  Oriented  API? • … • Ask  Dan  or  alex  (or  both)  for  consulting  J
  • 20. Hacks:  How  to  infer  infos on  the  network  in  the  browser   based  on  ICE -­ ask  the  ice  gathering  to  try  to  generate  a  relay  candidate  with  transport  =  tcp and  the  provided   turn  server =>  if  the  turn  server  exists  (suppose  it  is,  google provides  it) =>  if  the  credential  are  ok  (again,  suppose  it  is) =>  if  there  is  a  local  port  that  let  tcp through =>  if  the  turn  server  is  configured  to  receive  TCP  on  the  corresponding  port  (suppose  it  is) THEN a  TCP  relay  candidate  is  created  during  the  gathering. By  getting  a  relay  candidate  (or  not)  knowing  all  the  other  steps,  you  infer  if  you  have  any  tcp port  open. Rince and  repeat  for  udp,  tls dtls,  just  like  the  https://test.webrtc.org code  does.
  • 21. Ask  the  browser  for  more  info,  traces  and  log • Webkit Testing:  Tool/Script/run-­webkit-­tests • Mozilla  Mochitests for  WebRTC,  and  extra  logs • https://wiki.mozilla.org/Media/WebRTC/Testing • https://wiki.mozilla.org/Media/WebRTC/Logging • Chrome  Logging: • chrome.exe -­-­enable-­logging  -­-­vmodule=*/webrtc/*=2,*/libjingle/*=2,*=-­2  -­-­no-­sandbox
  • 22. Some  low  level  tools  (chrome  canary  =>  no  encryption) Monitoring  tools: • Ganglia  +  Nagios Operating  system  utilities • Dig  for  DNS • Netstat or  lsof for  socket  verification  (IP:port) • S_client (openssl) Packet  sniffers • Tcpdump /  Wireshark. • If  no  encryption:  ngrep Debugging  mode • Recompiled/weaponized browsers  (not  for  the  faint  of  heart) WebRTC  and  WebSockets • Mozilla  Firefox =>  about:webrtc • Google  Chrome =>chrome://webrtc-­internals.
  • 23. ?
  • 24. Save  The  Date:  October  19 Register  Now:  http://ccst.io/e/webrtcstandards9 Next  Session
  • 26. Thank  You Amir  Zmora TheNewDialTone Dan  Burnett StandardsPlay Alex  Gouaillard WebRTC by  Dr  Alex