|
| 1 | +--- |
| 2 | +title: Azure Communication Services Call Diagnostics |
| 3 | +titleSuffix: An Azure Communication Services concept document |
| 4 | +description: Use Call Diagnostics to diagnose call issues with Azure Communication Services |
| 5 | +author: amagginetti |
| 6 | +ms.author: amagginetti |
| 7 | +manager: chpalm |
| 8 | + |
| 9 | +services: azure-communication-services |
| 10 | +ms.date: 11/21/2023 |
| 11 | +ms.topic: conceptual |
| 12 | +ms.service: azure-communication-services |
| 13 | +ms.subservice: calling |
| 14 | +--- |
| 15 | + |
| 16 | + |
| 17 | + |
| 18 | +# Call Diagnostics |
| 19 | + |
| 20 | +[!INCLUDE [Public Preview Disclaimer](../../includes/public-preview-include-document.md)] |
| 21 | + |
| 22 | +Understanding your call quality and reliability is foundational to |
| 23 | +delivering a great customer calling experience. There are various |
| 24 | +issues that can affect the quality of your calls, such as poor internet |
| 25 | +connectivity, software compatibility issues, and technical difficulties |
| 26 | +with devices. These issues can be frustrating for all call participants, |
| 27 | +whether they're a patient checking in for a doctor’s call, or a student |
| 28 | +taking a lesson with their teacher. As a developer, diagnosing and |
| 29 | +fixing these issues can be time-consuming and frustrating. |
| 30 | + |
| 31 | +Call Diagnostics acts as a detective for your calls. It helps developers |
| 32 | +using Azure Communication Services investigate events that happened in a call to |
| 33 | +identify likely causes of poor call quality and reliability. Just like a |
| 34 | +real conversation, many things happen simultaneously in a call that may |
| 35 | +or may not affect your communication. Call Diagnostics’ timeline makes |
| 36 | +it easier to visualize what happened in a call by showing you rich data |
| 37 | +visualizations of call events and providing insights into issues that |
| 38 | +commonly affect calls. |
| 39 | + |
| 40 | +## How to enable Call Diagnostics |
| 41 | + |
| 42 | +Azure Communication Services collects call data in the form of metrics |
| 43 | +and events. You must enable a Diagnostic Setting in Azure Monitor to |
| 44 | +send these data to a Log Analytics workspace for Call Diagnostics to |
| 45 | +analyze new call data. |
| 46 | + |
| 47 | + |
| 48 | + |
| 49 | +> [!IMPORTANT] |
| 50 | +> 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](#frequently-asked-questions) |
| 51 | +
|
| 52 | + |
| 53 | + |
| 54 | +Since Call Diagnostics is an application layer on top of data for your |
| 55 | +Azure Communications Service Resource you can query these call data and |
| 56 | +[build workbook reports on top of your data](../../../azure-monitor/logs/data-platform-logs.md#what-can-you-do-with-azure-monitor-logs) |
| 57 | + |
| 58 | +You can access Call Diagnostics from any Azure Communication Services |
| 59 | +Resource in your Azure portal. When you open your Azure Communications |
| 60 | +Services Resource, just look for the “Monitoring” section on the left |
| 61 | +side of the screen and select "Call Diagnostics." |
| 62 | + |
| 63 | +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. |
| 64 | + |
| 65 | +**Call Diagnostics has four main sections:** |
| 66 | + |
| 67 | +- [Call Search](#call-search) |
| 68 | + |
| 69 | +- [Call Overview](#call-overview) |
| 70 | + |
| 71 | +- [Call Issues](#call-issues) |
| 72 | + |
| 73 | +- [Call Timeline](#call-timeline) |
| 74 | + |
| 75 | +## Call Search |
| 76 | + |
| 77 | +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 |
| 78 | +see three sections, **Overview**, **Issues**, and **Timeline** for the |
| 79 | +selected call. |
| 80 | + |
| 81 | +The search field allows you to search by callID. See our documentation to [access your client call ID.](../troubleshooting-info.md#access-your-client-call-id) |
| 82 | + |
| 83 | + <!-- (**insert image)** --> |
| 84 | + |
| 85 | +> [!NOTE] |
| 86 | +> You can explore information icons and links within Call Diagnostics to learn functionality, definitions, and helpful tips. |
| 87 | +
|
| 88 | +## Call Overview |
| 89 | + |
| 90 | +Once you select a call from the Call Search page, your call details will |
| 91 | +display in the Call Overview tab. You’ll see a call summary highlighting |
| 92 | +the participants in the call and key metrics for their call quality. You |
| 93 | +can select a participant to drill into their call timeline details |
| 94 | +directly or navigate to the Call Issues tab for further analysis. |
| 95 | + |
| 96 | +<!-- (**<u>TODO insert image)</u>** --> |
| 97 | + |
| 98 | + |
| 99 | +<!-- > [!NOTE] |
| 100 | +> You can explore information icons and links on each page within Call Diagnostics to learn functionality, definitions, and helpful tips. --> |
| 101 | + |
| 102 | +<!-- (**insert image)** --> |
| 103 | + |
| 104 | +## Call Issues |
| 105 | + |
| 106 | +The Call Issues tab gives you a high-level analysis of any media quality |
| 107 | +and reliability issues that were detected during the call. |
| 108 | + |
| 109 | +Call Issues highlights detected issues commonly known to affect user’s call |
| 110 | +quality such as poor network conditions, speaking while muted, or device |
| 111 | +failures during a call. If you want to explore a detected issue, select |
| 112 | +the highlighted item and you'll see a pre-populated view of the |
| 113 | +related events in the Timeline tab. |
| 114 | + |
| 115 | +<!-- (**<u>TODO insert image)</u>** --> |
| 116 | + |
| 117 | + |
| 118 | +<!-- > [!NOTE] |
| 119 | +> You can explore information icons and links on each page within Call Diagnostics to learn functionality, definitions, and helpful tips. --> |
| 120 | + |
| 121 | +## Call Timeline |
| 122 | + |
| 123 | +When call issues are difficult to troubleshoot, you can explore the |
| 124 | +timeline tab to see a detailed sequence of events that occurred during |
| 125 | +the call. |
| 126 | + |
| 127 | +The timeline view is complex and designed for developers who need |
| 128 | +explore details of a call and interpret detailed debugging data. In |
| 129 | +large calls the timeline view can present an overwhelming amount of |
| 130 | +information, we recommend relying on filtering to narrow your search |
| 131 | +results and reduce complexity. |
| 132 | + |
| 133 | +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. |
| 134 | + |
| 135 | +<!-- (**<u>TODO insert image)</u>** --> |
| 136 | + |
| 137 | + |
| 138 | +<!-- > [!NOTE] |
| 139 | +> You can explore information icons and links on each page within Call Diagnostics to learn functionality, definitions, and helpful tips. --> |
| 140 | + |
| 141 | +<!-- # Common issues |
| 142 | +
|
| 143 | +Issue categories can include: |
| 144 | +
|
| 145 | +- Azure Communication Services issue |
| 146 | +
|
| 147 | +- Calling deployment issue |
| 148 | +
|
| 149 | +- Network issue |
| 150 | +
|
| 151 | +- User actions or inactions (e.g. not allowing device permissions), |
| 152 | + driving through a tunnel. |
| 153 | +
|
| 154 | +To help you get started, you will find below the steps to triage common |
| 155 | +issues using Call Diagnostics. |
| 156 | +
|
| 157 | +***“Other participants couldn’t hear me on the call”*** |
| 158 | +
|
| 159 | +Dive into the audio section for the participant to see if there are any |
| 160 | +issues detected. In the case below, we see that the microphone was muted |
| 161 | +unexpectedly. In other cases, we might see errors with the device’s set |
| 162 | +up and permissions. |
| 163 | +
|
| 164 | +(**<u>TODO insert image)</u>** |
| 165 | +
|
| 166 | +***“My video was choppy and pixelated”*** |
| 167 | +Explore the video section for the participant to see if a poor network |
| 168 | +connection in a call may have caused the issue. |
| 169 | +
|
| 170 | +(**<u>TODO insert image)</u>** |
| 171 | +
|
| 172 | +***“My call unexpectedly dropped”*** |
| 173 | +**<u>TODO -</u>** Show how you might drill down to show the end-user |
| 174 | +lost connection. |
| 175 | +
|
| 176 | +(**<u>TODO insert image)</u>** |
| 177 | +
|
| 178 | +***“Other participants couldn’t see me on the call”*** |
| 179 | +Show how you might drill down to show the status of the camera in the |
| 180 | +call and any detected failures. |
| 181 | +
|
| 182 | +(**<u>TODO insert image)</u>** |
| 183 | +
|
| 184 | +## Call quality resources |
| 185 | +
|
| 186 | +Ensuring good call quality starts with your calling setup, please |
| 187 | +explore our documentation to learn how you can use the UI Library to |
| 188 | +benefit from our quality and reliability tools \<[link to manage call |
| 189 | +quality](https://learn.microsoft.com/azure/communication-services/concepts/voice-video-calling/manage-call-quality)\>. --> |
| 190 | + |
| 191 | +## Frequently asked questions: |
| 192 | + |
| 193 | +- How do I setup Call Diagnostics? |
| 194 | + |
| 195 | + - Follow instructions to add diagnostic settings for your resource here [Enable logs via Diagnostic Settings in Azure Monitor.](../analytics/enable-logging.md) When prompted to select [select logs](../analytics/enable-logging.md#adding-a-diagnostic-setting) select "**allLogs**". |
| 196 | + - 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. Your data volume, retention, and CDC query usage in Log Analytics is billed through existing Azure data meters, monitor your data usage and retention policies for [cost considerations as needed](../../../azure-monitor/logs/cost-logs.md) |
| 197 | + |
| 198 | +- If Azure Communication Services participants join from different Azure Communication Services Resources, how will they display in Call Diagnostics? |
| 199 | + |
| 200 | + - 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. |
| 201 | + |
| 202 | + <!-- 2. If that ACS resource isn't part of **<u>your Azure subscription |
| 203 | + and / or hasn't enabled Diagnostics Settings to store call logs, |
| 204 | + there will not be any data available</u>** for Call Diagnostics. --> |
| 205 | + |
| 206 | +<!-- 1. If Teams participants join a call, how will they display in Call |
| 207 | + Diagnostics? |
| 208 | +
|
| 209 | + 1. If a Teams participant organized the call through Microsoft |
| 210 | + Teams, that participant will appear as a participant in Call |
| 211 | + Diagnostics, however they'll have fewer call details populated. |
| 212 | +
|
| 213 | + 2. If there were other Teams participants besides the Teams meeting |
| 214 | + organizer, those participants won't appear in Call |
| 215 | + Diagnostics. --> |
| 216 | + |
| 217 | + |
| 218 | +<!-- 1. How do I find a Call ID? |
| 219 | +
|
| 220 | + a. Link --> |
| 221 | + |
| 222 | +<!-- 1. My call ID should be here? |
| 223 | +
|
| 224 | + a. It could no longer be stored by your Log Analytics workspace, you may need to ensure you retain your call data in diagnostics settings. It's possible your callID is incorrect. (**ENG add details on which call ID to specifically pull in the event of multiple callIDs.**) |
| 225 | +
|
| 226 | + a. Maybe it’s not the ACS call ID, check “how do I find a callID?” to learn more. --> |
| 227 | + |
| 228 | +<!-- 1. My call had issues, but Call Diagnostics doesn’t show any issues. |
| 229 | +
|
| 230 | + a. Call Diagnostics relies on several common call issues to help diagnose calls. Issues can still occur outside of the existing telemetry or can be caused by unlisted call participants you aren’t allowed to view due to privacy restrictions. --> |
| 231 | + |
| 232 | +<!-- 1. What types of calls are visible in Call Diagnostics? |
| 233 | +
|
| 234 | + a. Call types included. |
| 235 | + 1. Includes call data for Web JS SDK, Native SKD, PSTN, Call Automation. |
| 236 | +
|
| 237 | + 1. Includes some Call Automation Bot data edges |
| 238 | +
|
| 239 | + a. Partial data. |
| 240 | +
|
| 241 | + a. Different SDKs, privacy considerations may prevent you from receiving those data. --> |
| 242 | + |
| 243 | + |
| 244 | +<!-- 1. What are limits of what our data reaches. |
| 245 | + 1. Privacy restrictions may prevent you from seeing the full call roster. |
| 246 | +
|
| 247 | +1. What are bots? |
| 248 | +
|
| 249 | +1. What capabilities does Search have? |
| 250 | +
|
| 251 | +1. What capabilities does Overview have? |
| 252 | +
|
| 253 | +1. What capabilities does Issues have? |
| 254 | +
|
| 255 | +1. What capabilities does Timeline have? |
| 256 | +
|
| 257 | + 1. You can zoom within the timeline by using SHIFT+mouse-scroll wheel and pan left and right by clicking and dragging within the timeline itself. --> |
| 258 | + |
| 259 | +<!-- 1. What types of issues might I find? |
| 260 | +
|
| 261 | + a. Participant’s call issues generally fall into these categories: |
| 262 | + 1. They can’t join a call. |
| 263 | +
|
| 264 | + 1. They can’t do something in a call (mute, start video, etc.). |
| 265 | +
|
| 266 | + 1. They get dropped from a call. |
| 267 | +
|
| 268 | + 1. They have a poor call experience (audio/video quality). --> |
| 269 | + |
| 270 | + |
| 271 | +<!-- FAQ - Clear cache - Ask Nan. |
| 272 | +People need to do X, in case your cache is stale or causing issues, |
| 273 | +
|
| 274 | +choose credential A vs. B |
| 275 | +
|
| 276 | +Clear your cache to ensure X, you may need clear your cache occasionally if you experience issues using Call Diagnostics. --> |
| 277 | + |
| 278 | +## Next steps |
| 279 | + |
| 280 | +- Learn how to manage call quality, see: [Improve and manage call quality](manage-call-quality.md) |
| 281 | + |
| 282 | +- Continue to learn other quality best practices, see: [Best practices: Azure Communication Services calling SDKs](../best-practices.md) |
| 283 | + |
| 284 | +- Learn how to use the Log Analytics workspace, see: [Log Analytics Tutorial](../../../../articles/azure-monitor/logs/log-analytics-tutorial.md) |
| 285 | + |
| 286 | +- Create your own queries in Log Analytics, see: [Get Started Queries](../../../../articles/azure-monitor/logs/get-started-queries.md) |
| 287 | + |
| 288 | +- Explore known call issues, see: [Known issues in the SDKs and APIs](../known-issues.md) |
| 289 | + |
| 290 | + |
| 291 | +<!-- added to the toc.yml file at row 583. |
| 292 | +
|
| 293 | + - name: Monitor and manage call quality |
| 294 | + items: |
| 295 | + - name: Manage call quality |
| 296 | + href: concepts/voice-video-calling/manage-call-quality.md |
| 297 | + displayName: diagnostics, Survey, feedback, quality, reliability, users, end, call, quick |
| 298 | + - name: End of Call Survey |
| 299 | + href: concepts/voice-video-calling/end-of-call-survey-concept.md |
| 300 | + displayName: diagnostics, Survey, feedback, quality, reliability, users, end, call, quick |
| 301 | + --> |
0 commit comments