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:
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 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.
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.
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.
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?
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?
Here are resources for common call issues. For an overview of troubleshooting strategies for more information on isolating call issues. Please see: Overview of general troubleshooting strategies
If you see common error messages or descriptions. See: Understanding error messages and codes
If users are unable to join calls. See: Overview of call setup issues
If users have camera or microphone issues. For example, they can’t hear someone. See: Overview of device and permission issues
If call participants have audio issues. For example, they sound like a robot or hear an echo. See: Overview of audio issues
If call participants have video issues. For example, their video looks fuzzy, or cuts in and out. See: Overview of video issues
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
Learn how to manage call quality, see: Improve and manage call quality
Explore troubleshooting guidance, see: Overview of general troubleshooting strategies
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