Call Diagnostics

Important

Functionality described in this article is currently in public preview. This preview version is provided without a service-level agreement, and we don't recommend it for production workloads. Certain features might not be supported or might have constrained capabilities. For more information, see Supplemental Terms of Use for Microsoft Azure Previews.

Understanding your call quality and reliability is foundational to delivering a great customer calling experience. There are various issues that can affect the quality of your calls, such as poor internet connectivity, software compatibility issues, and technical difficulties with devices. These issues can be frustrating for all call participants, whether they're a patient checking in for a doctor’s call, or a student taking a lesson with their teacher. As a developer, diagnosing and fixing these issues can be time-consuming and frustrating.

Call Diagnostics acts as a detective for your calls. It helps developers using Azure Communication Services investigate events that happened in a call to identify likely causes of poor call quality and reliability. Just like a real conversation, many things happen simultaneously in a call that may or may not affect your communication. Call Diagnostics’ timeline makes it easier to visualize what happened in a call by showing you rich data visualizations of call events and providing insights into issues that commonly affect calls.

How to enable Call Diagnostics

Azure Communication Services collects call data in the form of metrics and events. You must enable a Diagnostic Setting in Azure Monitor to send these data to a Log Analytics workspace for Call Diagnostics to analyze new call data.

Important

Call Diagnostics can’t query data from data that wasn’t sent to a Log Analytics workspace. Diagnostic Settings will only begin collect data by single Azure Communications Services Resource ID once enabled. See our Frequently Asked Question on enabling Call Diagnostics here

Since Call Diagnostics is an application layer on top of data for your Azure Communications Service Resource you can query these call data and build workbook reports on top of your data

You can access Call Diagnostics from any Azure Communication Services Resource in your Azure portal. When you open your Azure Communications Services Resource, just look for the “Monitoring” section on the left side of the screen and select "Call Diagnostics."

Once you have setup Call Diagnostics for your Azure Communication Services Resource you can search for calls using valid callIDs that took place in that resource. Data can take several hours after call completion to appear in your resource and populate in Call Diagnostics.

Call Diagnostics has four main sections:

The search section lets you find individual calls, or filter calls to explore calls with issues. Clicking on a call takes you to a detail screen where you see three sections, Overview, Issues, and Timeline for the selected call.

The search field allows you to search by callID. See our documentation to access your client call ID.

Screenshot of the Call Diagnostics Call Search showing recent calls for your Azure Communications Services Resource.

Note

You can explore information icons and links within Call Diagnostics to learn functionality, definitions, and helpful tips.

Call Overview

Once you select a call from the Call Search page, your call details will display in the Call Overview tab. You’ll see a call summary highlighting the participants in the call and key metrics for their call quality. You can select a participant to drill into their call timeline details directly or navigate to the Call Issues tab for further analysis.

Screenshot of the Call Diagnostics Call Overview tab which which shows you an overview of the call you selected in the previous Call Search view.

Note

You can explore information icons and links within Call Diagnostics to learn functionality, definitions, and helpful tips.

Call Issues

The Call Issues tab gives you a high-level analysis of any media quality and reliability issues that were detected during the call.

Call Issues highlights detected issues commonly known to affect user’s call quality such as poor network conditions, speaking while muted, or device failures during a call. If you want to explore a detected issue, select the highlighted item and you'll see a pre-populated view of the related events in the Timeline tab.

Screenshot of the Call Diagnostics Call Issues tab showing you the top issues detected in the call you selected.

Note

You can explore information icons and links within Call Diagnostics to learn functionality, definitions, and helpful tips.

Call Timeline

When call issues are difficult to troubleshoot, you can explore the timeline tab to see a detailed sequence of events that occurred during the call.

The timeline view is complex and designed for developers who need explore details of a call and interpret detailed debugging data. In large calls the timeline view can present an overwhelming amount of information, we recommend relying on filtering to narrow your search results and reduce complexity.

You can view detailed call logs for each participant within a call. Call information may not be present, this can be due to various reasons such as privacy constraints between different calling resources. See frequently asked questions to learn more.

Screenshot of the Call Diagnostics Call Timeline tab showing you the detailed events in a timeline view for the call you selected.

Frequently asked questions:

  • How do I set up Call Diagnostics?

    • Follow instructions to add diagnostic settings for your resource here Enable logs via Diagnostic Settings in Azure Monitor. We recommend you initially collect all logs and then determine which logs you want to retain and for how long after you have an understanding of the capabilities in Azure Monitor. When adding your diagnostic setting you will be prompted to select logs, select "allLogs" to collect all logs.
    • Your data volume, retention, and Call Diagnostics query usage in Log Analytics within Azure Monitor is billed through existing Azure data meters. We recommend you monitor your data usage and retention policies for cost considerations as needed. See: Controlling costs.
    • If you have multiple Azure Communications Services Resource IDs you must enable these settings for each resource ID and query call details for participants within their respective Azure Communications Services Resource ID.
  • If Azure Communication Services participants join from different Azure Communication Services Resources, how will they display in Call Diagnostics?

    • If all the participants are from the same Azure subscription, they'll appear as "remote participants". However, Call Diagnostics won’t show any participant details for Azure Communication Services participants from another resource. You need to review that same call ID from the specific Azure Communication Services Resource the participant belongs to.

Next steps