Call Diagnostics

Azure Communication Services offers call quality analytics and visualizations so you can investigate call metrics, events, and understand detected quality issues in your Communication Services calling solution.

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 display in the Call Overview tab. You 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 see a prepopulated 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 to 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 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.

Copilot for Call Diagnostics

Artificial Intelligence can help app developers across every step of the development lifecycle: designing, building, and operating. Developers with Microsoft Copilot in Azure (preview) can use Copilot within Call Diagnostics to understand and resolve a variety of calling issues. For example, developers can ask Copilot questions, such as:

  • How do I run network diagnostics in Azure Communication Services VoIP calls?
  • How can I optimize my calls for poor network conditions?
  • What are the common causes of poor media streams in Azure Communication calls?
  • The video on my call didn’t work, how do I fix the subcode 41048?

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

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 are 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 do they display in Call Diagnostics

    • Participants from other Azure Communication Services resources will have limited information in Call Diagnostics. The participants that belong to the resource you open Call Diagnostics will have all available insights shown.

  • What are the common call issues I might see and how can I fix them?

  • How do I use Copilot in Azure (preview) in Call Diagnostics?

    • Your organization needs to manage access to Microsoft Copilot in Azure (preview). Once your organization has access to Copilot for Azure (preview), the Call Diagnostics interface will include the option to 'Diagnose with Copilot' in the Search, Overview, and Issues tabs.
    • Leverage Copilot for Call Diagnostics to improve call quality by detailing problems faced during Azure Communication Services calls. Giving Copilot detailed information from Call Diagnostics will help it enhance analysis, identify issues, and identify fixes. Be aware that this Copilot iteration lacks programmatic access to your call details.

Next steps