Check out the newest issue of our WebRTC Metrics Report series!
A number of 3rd party vendors and developers have integrated their applications or services with callstats.io. We keep a list here of all the integrations that we know of. This list may not contain all existing integrations. This list has been last updated July 27th, 2016.
In addition to the libraries offered at webrtc.org, an application using WebRTC can also be built using 3rd party WebRTC SDKs or PaaS solutions. Here is a list (in alphabetical order) of 3rd party solutions that have been integrated with callstats.io’s WebRTC monitoring service.
To get featured on this page as a WebRTC service provider, we need three things from you:
To write the coded needed create a working integration you can follow the instructions below. When you are ready to get listed here or have questions about integrating, email us at growth[at]callstats.io (our CEO also reads this email).
Each WebRTC SDK has its quirks, and we often see an SDK provider hide the peerconnection and wrap their library around the peerconnection. Callstats.io relies on having access to the peerconnection object to access
getStats() and the eventhandlers.
Step 1: provide access to the peerconnection.
Step 1-bis: If access to the peerconnection cannot be granted, the SDK can create a fake peerconnection. The fake peerconnection can be passed to callstats.js. However, callstats.js needs access to
getStats() and some event handlers.
The event handlers need to be mapped to corresponding callbacks in callstats.js, they are listed below:
For example the mapping can be done using addEventListener as follows:
fakePcObject.addEventListener('icecandidate', iceCandidateFoundCallback, false); fakePcObject.addEventListener('iceconnectionstatechange', iceConnectionStateChangeCallback, false); fakePcObject.addEventListener('signalingstatechange', pcSignalingStateChangeCallback, false);
Additionally, callstats.js routinely polls the peerconnection for state
information, they are listed below:
If configured to collect SDP, callstats.js will need access to:
Step 2: provide access to the callbacks for
reportError() from the following WebRTC functions:
Optional: make sure RTCP termination is enabled. In some cases, middleboxes need to be explicitly configured to send RTCP Receiver Reports, enable them. Without these the browser endpoints will not be able to measure RTT, fractional losses, jitter, etc.
Below are a few example integrations (not a complete list):
The information on this page is based on our experience with different WebRTC SDK providers. If your WebRTC SDK functions differently, send your feedback and suggestions to sdk-support[at]callstats.io.