Benefits of using callstats.io for WebRTC monitoring

By Carl Blume on November 29, 2016
read
At some point in their life, everyone ponders the purpose of their existence, the reason to wake up each day. Just like humans, each company needs a reason as well. If it does not have purpose, it will cease to exist at some point. Initially, the ambition of a company is to solve problems that excites people enough that they are ready to pay for it.

callstats.io’s vision is to create “a world where real-time communication is frictionless and effortless to set up, operate, and scale.” This basically means we want to help businesses that want to incorporate conversational interactions (i.e., the ability to interact with their end-users in real-time) into their application or service.

Our mission is to “bring high quality of media experience to every interaction.” As there are many ways those goals could be achieved, this blog post explains shortly what we do and in detail how we create value for different functions of an organization, i.e., the benefits of using callstats.io.

How callstats.io works

We gather metrics from real-time communications at different points in a connection path, namely at the endpoints and middleboxes. By collecting data at multiple points, we get a comprehensive picture of the path, and can diagnose the exact point where the problem originated for the user. For example, was it the flaky WiFi, an underperforming router, or an overloaded media server.

The data is brought to use in three ways:

  • data visualization in the dashboard
  • hourly notifications about rising issues
  • API callbacks to optimize or fix issues related to conferences

You can get more detailed descriptions of the above mentioned points on our features page. Now, on to the benefits, as promised.

Benefits for product management

Product management’s responsibility is to make sure that the product delivers the value that customers need and want, and to prioritize the roadmap to deliver maximum value in a timely manner. A product’s progress is usually measured with key performance indicators (KPI).

For a real-time products the KPIs are measured daily, weekly, and monthly, to enable the product manager to assess potential issues in the service or the app. Common service-level metrics that they should be looking at is:

  • Usage metrics: conference volume, average conference duration, and average number of participants.
  • User metrics: number of call failures, monthly active users, daily activated users.
  • Quality metrics: User feedback (subjective) and estimated Mean Opinion Score (MoS) based on quality models (objective).

These metrics show if the product is used according to estimated usage and any variation (drop and increase) can be investigated further.

Distribution of MOS customer feedback

Distribution of MOS customer feedback

Benefits for customer support

Customer support representatives need to understand the exact problem that a customer is facing, provide them with a possible work-around or a solution, and if there is no solution available to assure the customer that they will work to make sure the same thing does not happen again.

Often, customers do not speak the same language as the people building the product, and the customer possibly does not use a product extensively. Therefore, customer tickets come with different levels of detail and clarity. It is not uncommon that the first response to a customer asks for clarification or more details to fully comprehend the problem at hand.

With callstats.io this can be completely avoided, since the customer support staff can look at the recent call history of the customer, and check if any of them had problems similar to what the customer is indicating. Without the information at hand, this would take a lot of coordination time between the customer and service up to 2-3 weeks.

A manual (waterfall) development process vs. callstats.io driven (iterative) development process

Manual process (slow) vs. callstats.io (continuous) driven process

Furthermore, with callstats.io, the customer support can simply escalate the issue to engineering by simply sharing the URL for the conference with some hints at what to look at based on the support ticket.

There are two features that make callstats.io different compared to, for example, gathering data to your own database and querying it from there.

Firstly, automatic diagnostics analyses call data and explains in plain english the reasons behind audio and video quality. Similar to the graphs, automatic diagnostics is updated in real-time as the call progresses and new data flows in.

Automatic diagnostics explaining what happened in the conference

Automatic diagnostics explaining what happened in the conference

Secondly, if the customer happens to contact support when the call is still on-going, the support staff already has access to the data for the call, and can ask the customer to carry out maneuvers that might be related to the problems. Similar to automatic diagnostics, the graphs in the callstats.io dashboard are updated whenever new data is stored.

Benefits for service operations

Engineering takes care that the code is bug free and servers are configured correctly to deliver a first-class product.

The goal of DevOps is to ensure that building, testing, and deploying software can happen rapidly, frequently, and more reliably. Unlike customer support, DevOps operates in a proactive manner trying to prevent issues beforehand rather than fixing them reactively as they appear.

To accomplish their goals, the DevOps engineers use a process:

  • Measure metrics over a time period
  • Visualise those metrics on a dashboard
  • Trigger alarms, which the DevOps then respond to
An alert has been sent to Slack because the hourly rate for failed conferences has exceeded its limit

Hourly rate for failed conferences has exceeded its limit

One part of the work is to monitor metrics of deployed software, and make sure that the software functions and performs as intended and comparably (if not better) to the previous versions of it. For example, DevOps might be checking that conference failure rate does not increase when a new version of the software is deployed and when a new browser version is deployed.

Benefits for development

If customer support is reactive and DevOps proactive, then development’s approach is active, as they strive to ensure that each deployed software version has better performance than the one before it. Callstats.io supports multiple applications, which can be used to monitor, for example, development and staging environments.

Similar to customer service, software developers can look at the automatic diagnostics and metrics of an individual ongoing conference to see what is happening and what issues might occur in the conference.

Every WebRTC application requires extensive testing during the development phase. For example, as a developer, you want to check the necessity of a STUN or TURN server, or the relevance of low resolution videos in different geographical areas. There would be several choices and decisions that needs to be made in order to make an application work on seamlessly across various platforms.

Callstats.io streamlines these decision making process by categorising the issues. By using callstats.io in the development phase, developers are able to identify the pitfalls early and resolve them before the code goes into production.

Some examples:

  1. Browser and endpoint versioning related errors
  2. User media errors and finding ideal configurations
  3. ICE connectivity related errors
  4. Network bandwidth issues
  5. ISP issues in different geographical areas

 

An alert has been sent to Slack because the hourly rate for failed conferences has exceeded its limit

 

Categorisation of failures

As explained above, callstats.io serves multiple functions and teams in a company. As we are constantly looking to make our service and product better, we would love to hear if you have any development ideas, other comments or questions about callstats.io or this article. You can email us at support[at]callstats.io or simply leave a comment below.


Tags: WebRTC, callstats.io, WebRTC Monitoring