Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Getting Started with


Published on monitors and manages the media sessions in a WebRTC application. The slideshow highlights why monitoring the quality of the session is important, what is visualised to help with diagnostics. For more information about the management and notification features, contact varun -at-

Published in: Technology
  • The live presentation associated to this talk is available here:
    Are you sure you want to  Yes  No
    Your message goes here

Getting Started with

  1. 1. Getting Started with Varun Singh CEO, 31. 07. 2015
  2. 2. RTP/RTCP, Extension Reports, Multipath, FEC Congestion Control, Statistics API Ph.D. Thesis: Protocols and Algorithms for adaptive multimedia systems
  3. 3.
  4. 4. B r i n g i n g h i g h q u a l i t y o f experience to every interaction.
  5. 5. It is not all about throughput* • … it is about latency or delay! *)capacity bandwidth speed audio only call
  6. 6. Gameplan • Do Nothing • Wait for emails from customers
  7. 7. Gameplan • Do nothing —> It is someone else’s problem • use the following reasons in support: 1.Insufficient,Capacity,,(upgrade,plan), 2.Misbehaving,Browser/Device,(update,or,change), 3.Or…,NATs/Firewall,,,,,,,(change?), • Bonus tip: you can use the same reasons for the other customer’s ISP (Internet Service Provider).
  8. 8. Manual Data Gathering
  9. 9. Gameplan • Do Nothing • Wait for feedback • Active Monitoring • endpoint monitoring • network monitoring
  10. 10. HTML APIs • HTMLVideoElement Extensions • • droppedVideoFrames,,corruptedVideoFrames,,totalFrameDelay • WebRTC Statistics API • (work in progress) • PeerConnection Metrics: RTP, datachannel • Transport Metrics: active and passive candidates • Security cipher suite
  11. 11. Monitoring What? • Annoyances • Transport quality • Per-stream media quality
  12. 12. Aggregate Dashboard
  13. 13. Filter Dashboard by Time
  14. 14. Failed conferences ICE connection failure the endpoints encounter a NAT/Firewall. What was the main cause of failure? Totally failed: Sessions failed for all participants. Partially failed: some participants were not able to join the conference.
  15. 15. Search • for a particular conferenceID • by criteria: failed calls, TCP calls, relayed calls • monitor ongoing calls in real-time
  16. 16. Session Details hidden
  17. 17. Annoyances Setup times: waiting for the conference to begin: NAT traversal, negotiation, etc. Note: gathering and connectivity checks can happen concurrently
  18. 18. Connectivity Failure reportError()New API: catches other types of errors, for example when negotiation fails due to SDP errors callstats.js automatically detects when connectivity checks fail and reports it
  19. 19. Churn some people are unable to join, they reload the page, maybe it works?
  20. 20. Events
  21. 21. Disruptions Disruption: loss of connectivity when network interfaces change, low available capacity,or high delay The light grey vertical lines show disruption, highlighted by the red bounding boxes.
  22. 22. Disruptions and user behaviour User Behaviour: The user tries to correct for the disruption by turning on and off videoZoom in to the events to view disruptions
  23. 23. Transport Metrics
  24. 24. Quality Metrics In this case, it shows two users have comparable quality of experience, meanwhile the third user has one order lesser q u a l i t y a n d a l s o indicative that the user drops and rejoins. Also shows that the congestion control has a late joiner problem. As the quality improves as when one user drops off at the end of the call. higher value indicates better user experience.
  25. 25. Notifications • WebRTC Clients Notifications • (e.g., modify settings to deliver optimum quality) • Dashboard/Operation Notifications • (e.g., aggregate quality or number of completed session dropped below a threshold, etc)
  26. 26. Gather Report Analyze FIX Deploy? webrtc-internal? via email? Hasthisbeen reportedbefore? Did it solve the issue? Until next report? Collect Diagnose Fix Deploy
  27. 27. • Analytics for WebRTC • 3 lines of code —> 5 minutes. 1. include <script> 2. initialize() —> needs registration keys 3. addNewFabric(pc,,…) —> call started • optionally: send user events: audio muted/unmuted, video paused/resumed, call terminated, call held. • optionally: reportError() —> call failed to be setup due to SDP or Firewalls. • optionally: associateMstWithUserID() —> bridges using multiple media streams in a single peerconnection may want to correlate mediastream quality across endpoints. • optionally: collect and send user feedback