Call Insights

Call Insights UI aims to ease the process of debugging and maintaining complex call flows by providing analytical data around each call. The UI has 4 sections,

  1. Call Details
  2. Call Relations
  3. Call Stats
  4. Audio Quality Stats

On top of these sections, call uuid that is searched for is displayed along with Suspected issues, displayed as badges.

Call Details:

This section summarizes the call by providing below attributes,

  • Initiation Time: Time at which call is initiated, displayed as date timestamp.
  • Ring Time: Time it takes for ring to start, after a call has been initiated.
  • Answer Time: Time it takes for the call to be answered after it has started ringing.
  • End Time: Time at which call has hung up, displayed as date timestamp.
  • Duration: Duration of the call. After answering, the duration for which call is live before hang-up.
  • From: The source number, Number from which the call originates.
  • To: The destination number, Number to which the call is made.
  • Direction: The direction of the call, either ‘Inbound’ or ‘Outbound’ from Plivo’s perspective.
  • Type: Calls are categorized as ‘PSTN’ calls or ‘SIP’ calls depending on the direction and from / to numbers as shown below.

    From Number To Number
    Call Direction PSTN SIP PSTN SIP
    Inbound PSTN SIP - -
    Outbound - PSTN SIP

    For Inbound calls,

    • If the call is made from a PSTN number, the type would be PSTN.
    • If the call is made from a SIP endpoint, the type would be SIP.

    For Outbound Calls,

    • If the call is made to PSTN number, the type would be PSTN.
    • If the call is made to SIP endpoint, the type would be SIP.
  • Total Cost: The amount (billed duration* cost) would be displayed along with an info icon. The calculation, with the details such as pricing for the account, call duration, bill duration, would be displayed in the tool tip.
  • Suspected Issues: Depending on the values of various audio quality metrics, we would be identifying possible issues that might have creeped in to the call. Below are the Plivo defined Suspected Issues.
    • One way Audio: Audio level is too low to be audible or non existent on either /both the streams for most of the call duration.
    • Broken Audio: Due to loss of voice packets in transmission voice data (audio) would be lost intermittently.
    • Robotic Audio: Due to high Jitter, audio packets might be overlapping and causing choppy audio effect.
    • High Connect Time: High delay in the time taken between call initiation and call ringing.
    • Audio Lag: Indicates a delay in the transmission of audio to the target location.
    • Low Audio Level: while audio level is audible, it is too low to be clear for most of the call on either /both the streams
    Note: Issues on other connected call legs that may have adversely affected the call experience on searched call leg are also included in the list of suspected issues.
  • Plivo Quality Score: A quality score for each call is computed using the audio quality stats recorded for the call by Plivo. Each call is rated between 1 to 5, indicating the quality of the call.

Call Relations:

Call legs that are related to the call uuid searched for are displayed here along with the following attributes,

  • Relation: The relationship between the call legs.
    • Self identifies the call leg whose Call Insights UI page we are currently on.
    • Parent identifies the A-Leg call that initiated this call.
    • Sibling identifies other B-Legs that were initiated by this call’s Parent.
    • Child identifies calls that were initiated by this call.
    • Acquaintance identifies other calls that were in a conference with this call.
  • Duration: The duration for which call has run from the time it is answered to the time it has been hung up.
  • Hang-up Cause and Hangup Source: As described here.
  • Start Time: The time at which call has been answered.
  • Audio Quality: Same as Plivo quality score (mos) mentioned above.
  • Suspected issues: Issues that may have impacted this call’s experience will be displayed here.

Call Stats:

This section contains data specific to the searched call uuid.

Hang up Cause and Hangup Source: As described here.

Originator, Originator Region, Terminated To, Termination Region: The possible Call Origination and Call Termination entities are defined below.

Allowed Values
Outbound calls Inbound Calls
Originator
Source of call
Plivo MS (Make Call AP), Plivo MS (Dial XML) Plivo (Browser SDk/ Android SDK/ IOS SDK/ External SIP device**), Network Operator of PSTN
Originator Region Media Server Region Geographical location of SIP IP or PSTN number
Terminated To
Where the call terminated
Plivo (Browser SDK / Android SDK / IOS SDK / External SIP device**), Network Operator of PSTN Plivo Media Server
Termination Region Geographical location of SIP Endpoint IP or PSTN number Media Server Region

Post Dial delay: The time taken for ring to start after call has been initiated.

Ring Duration: Duration of ringing for the call before it has been answered.

Audio Quality Stats:

The below audio quality stats are displayed for each stream for the call uuid searched, for the hop either between Browser sdk and Plivo (web ms) or Plivo (ms) and Carrier.

  • Jitter: Also known as Packet Delay Variance, is the variance in delay of transmission of voice packets. This impacts the voice quality and voice data, leading to Robotic Audio issue. It is measured in millisecond units (ms).
  • Packet Loss: Loss of voice packets over transmission. This impacts voice data and leads to a degrading effect on audio, Broken Audio issue. Indicated as a percentage of over all packet count in the particular stream of call it is measured at.
  • Audio Level: Indicated in decibels (-100dB to 0dB), low audio levels would result in one way audio or low audio level issues.
  • Packet Count: Total number of voice packets flowing in the specific stream of the call. Lower packet count would be perceived as a one way audio issue.
  • RTT: Round Trip Time, is the time taken for data to travel to target destination and back. Measured in milliseconds (ms), high RTT indicates a poor network quality and would result in audio lag issue.

Reading Audio Quality Stats:

Audio quality stats are displayed in percentiles and color coded, Also, the interpretation for each of the values is displayed on hover.

Percentiles: In order to indicate the spread of the data, using statistical methods, we display values of audio quality stats (except RTT) in percentiles, 5th, 30th, 50th (median), 95th and 99th.

Every RTP packet would have a value for these audio quality stats. If we arrange the data points in ascending order, the 5th percentile would indicate the bottom 5% of data, 30th percentile would indicate bottom 30% of the data.

Ex: 30th percentile Jitter value of 80 ms implies that 30% of the entire call duration had less than 80ms of Jitter.

So for a specific stat, for instance Jitter, if the lesser percentiles, say 5%, are in yellow or red, it indicates that most of the call, that is 95% of the call, has bad Jitter.

Conversely if the higher percentiles, say 95%, are in red/yellow while the rest are in green, it indicates that except for 5% of the call, the rest of the call had good Jitter values.

Note: Audio Quality Stats may not be available for all PSTN calls. Audio Quality Stats are currently only supported for SIP calls made to/from Plivo’s Browser SDK.

Refer to the table below for standard value ranges for audio quality stats that are considered to be Good, Average and Bad. On UI, for respective metric, values with in good range are highlighted in green, that of average in yellow and those that are bad are highlighted in red.

Metric Good Average Bad
Jitter <= 10ms 10ms - 30ms >=30ms
Packet Loss < 0.5% 0.5% - 0.9% >= 0.9%
Audio Level >-40dB -80dB to -40dB <-80dB
RTT < 200ms 200ms - 300ms > 300ms

So for a specific stat, for instance Jitter, if the lesser percentiles, say 5%, are in yellow or red, it indicates that most of the call, that is 95% of the call, has bad Jitter.

Conversely if the higher percentiles, say 95%, are in red/yellow while the rest are in green, it indicates that except for 5% of the call, the rest of the call had good Jitter values.

Debugging Voice Calls

Let’s run through some real-world examples to see how the new Call Insights UI can be used to debug issues efficiently.

Let’s start by mapping commonly observed audio quality issues to the metrics that directly correlate with them.

Suspected Issue Metrics to Refer
One Way Audio Packet Count, Audio Level
Broken Audio Packet Loss
Robotic Audio Jitter
High Connect Time Post Dial Delay (PDD)
Audio Lag Round Trip Time (RTT)
Low Audio Level Audio Level

Scenario 1: I could sense a lot of disturbance in call (choppy audio), where is this problem originating from?

A.) Choppy Audio or Broken Audio is caused due to high Jitter. High Jitter causes voice data packets to overlap with each other during transmission resulting in robotic audio effect.

Broadly the debug process is,

  1. Check if there are any other issues in the specific call leg. Some of these issues might be due to related call legs.
  2. Identify the specific call leg causing an issue. Some of the issues would be concentrated on a single stream.
  3. Identify the audio stream with the issue to identify the source (Plivo/ Carrier/ Public Network).

Step 1: Enter the call uuid in the logs console, select the relevant date range and click on search. Click on the date time link displayed for the logs. You’d be redirected to call insights UI.

Step 2: Suspected issues in the call (for all the related legs) are displayed on top of the page besides the call uuid. Scroll down to the Call Relations section to analyze related call legs to the current one.

Step 3: You should see the suspected issues corresponding to each of the related call legs here. If the one with choppy audio happens to be the current call leg itself, scroll down to audio quality stats section. If this is due to a different call leg, please click on that call view it’s details in a new browser tab, and scroll down to the audio quality stats on that page.

Step 4: Audio quality stats for each stream, (from and to Plivo) are displayed here. These values are color coded to green, yellow and red indicating good, average and bad, according to the recommended ranges for each metric. These recommended ranges can be checked by hovering on to the legends displayed in this section.

Step 5: The stream with more values in the bad range for Jitter (please refer to reading audio quality stats section above), is the one with the issue. If this happens to be the stream coming to Plivo, then this could be a network issue on the other end (caller/ callee). If the other end is a SIP endpoint, then the public networks may be at fault. If the other end is a PSTN number, then this may be an issue with the carrier’s network.

If Jitter is observed on a stream originating from Plivo, raise a ticket Plivo Support.

Scenario 2: Intermittent loss of audio during the call.

This is represented as ‘Broken Audio’ on Plivo’s Call insight UI. High network congestion can sometimes cause some voice data packets to be discarded or dropped. This is known as Packet Loss. High Packet Loss would be perceived as broken audio. The debugging process is same as scenario 1, except in step 5, instead of Jitter we shall refer to Packet loss in audio quality stats.

Scenario 3: Cannot hear audio on one stream.

This is represented as ‘One way Audio’ on Plivo’s Call insight U and could be caused by low ‘Packet count’ or low ‘Audio Level’.

  • A low packet count value indicates that very few audio packets were received.
  • A low audio level on the other hand points to an issue with the mic.
  • An audio level of -100 Db suggests that only silence packets were received on the stream. This may be the case if the device is on mute.

Note that Audio Level information is currently only available for Browser SDK calls.

Scenario 4: High Lag /delay of audio.

This is represented as ‘Audio Lag’ on call insights UI and could be due to high RTT.

  • If RTT is not in the recommended range (green), this would cause a delay in propagation of voice data packets resulting in audio delay.
  • If high RTT is observed on an inbound SIP leg to Plivo, please check the network connectivity on client endpoint. Low latency fiber networks offer the best call quality experience. Running calls on cellular data networks can result in comparatively higher RTT.
  • If the endpoint is behind a VPN, a sub-optimal routing based on the VPN IP address may be the cause for the audio delay.

You can evaluate the network path taken by a call by looking at the Call Origination and Termination regions. Plivo’s call routing engine is optimized to route the call through the closest Plivo Media Server POP, however, a sub-optimal routing can result in the following scenarios:

  1. SIP endpoint is connected through a VPN, and the VPN IP is not in the same region as the actual device.
  2. A B-Leg call was initiated to a geographic region far apart from the A-Leg. For example: Let’s say an incoming call arrives on a Plivo US phone number. The call is then forwarded to a SIP endpoint in India. In this case, the A-Leg arrived on a US Plivo Media Server, and the B-Leg originated from the US and finally terminated in India.