Check out Optimize, our new AI-powered product!

Helping our Customers Understand Pre-call Test to Check End-user Network Quality
By: ,
20 July 2018

Pre-call Network Test

callstats.io Network Test Results


Many of our customers want to maintain a seamless user experience, but struggle with poor media quality. Media quality can be affected by many factors, but one of the most frequent issues we have seen our customers struggle with is poor end-user network environments.

It is crucial that our customers be able to understand their end-user network conditions so they can provide the highest quality calls possible. In order to address this, we launched a new feature called the Pre-call Test in February of 2018. If you’d like to see the pre-call test, it is publicly available at network.callstats.io.

The Pre-call Test to Measure Network Quality

The pre-call test API runs WebRTC-specific tests to measure the network quality of end-users before a call begins. It measures status of media connectivity, round-trip time, fractional losses and available end-user device throughput. With this test, we aim to help developers understand their end-user network conditions better so they may predict media quality.

Obtaining the pre-call test results is as simple as accessing our on function, as shown below:

//Usage

callstats.on("preCallTestResults", csPreCallTestResultsCallback);

function preCallTestResultsCallback(status, results) {

//Check the status
  if (status == callstats.callStatsAPIReturnStatus.success) {
    //Results
    var connectivity = results.mediaConnectivity;
    var rtt = results.rtt;
    var loss = results.fractionalLoss;
    var throughput = results.throughput;

  }
  else {
    console.log("Pre-call test could not be run");
  }
}

What do Customers think of the Pre-call Test?

We have found many of our customers keen to use our pre-call test feature. However, some concerns continue to pop up that we have had to address. While we typically direct customers to our help center for such problems, some require a more in-depth look.

When is the Pre-call Test Triggered?

The pre-call test API is enabled by default and triggered when callstats.initialize() is called. By the time the conference begins, the pre-call test is completed.

Why is this Relevant to the Customer?

Understanding when the pre-call test is triggered is relevant because many of our customers want to be able to trigger the pre-call test before starting a call, then potentially disable users from starting the call if they have poor network conditions. In order to address this, we recommended our customers call callstats.initialize() before starting the call and wait for the pre-call test results to be returned. If no results are returned by the end of the customer-specified timeout, they should begin the conference.

Can we Trigger the Pre-call Test on Demand?

In order to address this question, we have implemented an API called makePrecallTest(), which can be called at any time and will return the pre-call test results callback.

Why is this relevant to the customer?

Some of our customers have end-users that only accept incoming calls. In order to properly prepare for these calls, developers want to be able to call callstats.initialize() when the user opens their website and then every several minutes to check call quality. If the end-user has poor network conditions, the developer can identify it and fix the problem. Our makePrecallTest() API is a payable feature available exclusively for Enterprise customers that addresses this problem. If you want more information on how to make use of this API, please contact our support team.

Why the Pre-call Test is Important

This API fits the needs of customers who want to improve the user experience by identifying and optimizing the conditions on the network. The end goal is to use the pre-call test information to improve their logic and prevent calls established under poor network conditions.


Interested in improving the quality of audio and video calls in your application? Request a demo of our dashboard for more information.



comments powered by Disqus