Announcing Voice Insights for WebRTC

Today, we’re excited to introduce Voice Insights, available in Beta for Twilio Client’s Javascript SDK v1.3 or later. As the name implies, Voice Insights gives you detailed metrics on all the changing network and device conditions that can affect WebRTC call quality. And because it’s API accessible, your application can use this data to actually improve the experience of live calls within desktop and mobile browsers.

You turn it on right from the console (no code needed) and will immediately get a better view of what’s happening with your WebRTC calls.

We’re big fans of WebRTC at Twilio. And from the looks of it, we’re not alone. Apple, Microsoft and Google have embraced it as well. All three of them (not to mention Firefox & Opera) have added, or are adding, native WebRTC support in their browsers, so you can embed communications in your web applications without custom plugins or software.

But, here’s the deal with WebRTC, and for that matter, any communications option over an internet connection. Things like underpowered user devices, bad headset connections, and network congestion add an element of risk and lead to poor call quality. Unless you’ve built your own performance sensors, it’s hard to figure out how the network and device is performing during a call – let alone make real-time adjustments to accommodate for these changing conditions.

This is where Voice Insights comes in. You get detailed call quality metrics and actionable insights that you can use to instrument the best WebRTC call quality for network and device conditions at any moment.

Live call data

So let’s start with what you can actually see now that you couldn’t see before. With Voice Insights, Twilio captures device and network metrics about every call it handles. These metrics are sampled each second during a call and can be viewed in the console or with a GET request to the Metrics resource URI.

What you get back is a JSON response with all sorts of network information you never had access to before. Mean Opinion Score (MOS), jitter, round trip time in milliseconds, audio input and output levels measured at the device, and more.

Device and Network Triggers

Voice Insights will proactively send you a warning when network and device anomalies happen. This may be when a threshold like jitter or packet loss is crossed or when a device issue like low audio input/output level is identified. You can use these warnings to surface UI elements to the caller that proactively inform them of problems. Or you can send the caller suggestions for improving call quality, such as “you are on mute”, “check headphone connection”, or “move to a stronger network signal”.

Pre-call quality readiness

Coming soon, Voice Insights will report on quality BEFORE a call is even made. When I make a phone call from a subway station, it’s pretty obvious by just glancing at my phone that one cellular coverage bar will lead to terrible quality, if it connects at all. In the same way, you’ll be able to get a predictive score for WebRTC call quality before the call even starts. This score will take into account all the device and network-level metrics that Voice Insights monitors.

A new level of visibility

Voice Insights gathers a lot of data, which on it’s own is incredibly useful. But the real power is how you can correlate that network and device data with user feedback and contextual information like location and device information. This lets you diagnose those obscure issues that would typically take weeks to track down.

User feedback

Nothing is more useful in measuring the actual quality of a call than asking a user directly. With Voice Insights you can POST user submitted feedback to the API and use that information for a better diagnosis of audio quality problems. Start with surveying users for a subjective quality score and a description of any audio problems and Twilio will correlate that data with any device and network problems.

There are parameters for a quality “Score” integer and “Issue” name. For example the caller could rate the call a “4” out of 5 with an issue of “choppy-audio”.

Pattern Analysis

All the user feedback data, events, and quality metrics are organized for you and correlated to help find the root cause of issues. This quality data is correlated with a wide range of contextual information, including:

Location: Latitude, longitude, country, city, and custom location name of each caller

Device: Type, vendor & model

OS: Name and version

Browser: Name, type, and browser engine name and version

User: User agent information and IP address of each caller

Data can be filtered and grouped based on any of these variables to help you examine trends. For example, you can compare how the call experience is different between Android and iOS devices, with Chrome vs. Firefox. Or you can quickly see that call issues are happening most often in the Munich office from 8-10am. Putting call quality data in context helps you plan, deploy, and support WebRTC in a way that just wasn’t possible before.

Flexible reporting

With Voice Insights, you have access to 30 days of WebRTC application data to slice and dice to your heart’s content. Either go through these quality metrics in the Twilio Console or integrate with your own dashboards using Twilio’s REST API. Whatever works best for you and your team.

This data can be organized and filtered to surface a specific need. Maybe it’s to look at the past 10 days of calls on IOS devices that are connected to a certain network provider. Or maybe it’s a detailed report on a single call from last week. You can even look at user behavior like who hung up a call to better understand performance of a call center.

Console dashboards

While using the API is great for integrating into your existing analytics tools, you also have immediate access to dashboards in the Twilio Console. Dashboards sort through the data for you and surface what’s important.

You can look at all calls during a period of time, group calls by location, and drill down on a single call, into a single metric, in order to diagnose a problem.

Availability

Voice Insights is available today in beta for Twilio Client Javascript SDK version 1.3 or later. No code is required to get started. Just turn it on with a click in the Console and you’ll start to see what’s happening with your WebRTC calls. Our next step is to make Voice Insights available for Twilio’s PSTN products as well.

Pricing is $.004 per call minute and you have the option to do an annual commit to take advantage of volume pricing. There’s a nifty pricing slider on the product webpage that will help you estimate your costs.

Go ahead and start looking through your call data. Use it to make the WebRTC call experience even better for your customers.