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:
Call Search
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.
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.
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.
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.
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
Learn how to manage call quality, see: Improve and manage call quality
Continue to learn other quality best practices, see: Best practices: Azure Communication Services calling SDKs
Learn how to use the Log Analytics workspace, see: Log Analytics Tutorial
Create your own queries in Log Analytics, see: Get Started Queries
Explore known call issues, see: Known issues in the SDKs and APIs
Feedback
https://aka.ms/ContentUserFeedback.
Coming soon: Throughout 2024 we will be phasing out GitHub Issues as the feedback mechanism for content and replacing it with a new feedback system. For more information see:Submit and view feedback for