Introducing Azure Communication Services Call Diagnostics feature for web applications!
Introducing Azure Communication Services Call Diagnostics feature for web applications!
Today we are happy to announce that the Call Diagnostics feature is available in ACS web Calling SDK to help you to build applications with improved management of in-call experience quality. Many factors can influence the call quality: poor network, hardware issues, low volume, OS and permission errors, freezes, etc. You, as a developer, might not know about a specific issue affecting specific call quality or reliability. Microsoft constantly monitors and analyses technical parameters of calls and exposes hints within API. You can use the tips to provide a better experience to your users. For example, you can suggest in UI (or force) to turn off the camera if bandwidth is not enough for both audio and video simultaneously. Or tip the user that they speak while being muted. The SDK does not have access, collect or analyze any personal data.
Here are the diagnostics the Azure Communications Services JS SDK exposes:
- Someone is on the video call and can’t see or hear the other party.
- Someone is speaking while being muted.
- Someone is experiencing bad video quality.
- If your device is not connected to a network.
- If during a call the WiFi signal goes on and off.
- Low bandwidth, no internet connection.
- All speakers are unplugged.
- All microphones are unplugged.
- Camera, microphone, speaker failures.
- Permission’s errors.
Let go deeper to the Call Diagnostic APIs, which supports two types of modalities:
- Media (audio, video, screen-sharing). Examples: noSpeakerDevicesEnumerated, speakingWhileMicrophoneIsMuted, noMicrophoneDevicesEnumerated, cameraFreeze, cameraStartFailed, cameraStartTimedOut, microphoneNotFunctioning, microphoneMuteUnexpectedly, screenshareRecordingDisabled, microphonePermissionDenied, cameraPermissionDenied.
- Network (everything related to user’s network). Examples: noNetwork, networkRelaysNotReachable, networkReconnect, networkReceiveQuality.
The exhaustive list of available call diagnostics per each group could be found in our documentation - Call diagnostics.
Call diagnostics is an extended feature of the core Call API. It's very simple to add the Call diagnostic feature to your app:
Now all you need to do is subscribe to an event listener and once the diagnostic has been received, you will get a call-back.
For more details on implementation please go to official documentation - Call diagnostics.
If you don’t have an active web application, you can download the web sample with already built-in diagnostics from our GitHub and run it.
Supported platforms
Call Diagnostics feature is available in JS Calling SDK starting 1.2.0-beta.1 and supported on the following desktop and mobile browsers:
- Safari
- Edge
- Chrome
The User Facing diagnostics for other platforms (iOS, Android, Windows) are on roadmap
Price
There is no additional fee for call diagnostics.
Getting started
Check out our getting started guides:
- Create a Communication Services resource
- Create and manage user access tokens
- Add video calling to your app
Give us your feedback
Your feedback is our main factor in prioritizing work items. Please share your ideas, opinions, and suggestions on our GitHub. We appreciate your help!
Published on:
Learn moreRelated posts
Automating Business PDFs Using Azure Document Intelligence and Power Automate
In today’s data-driven enterprises, critical business information often arrives in the form of PDFs—bank statements, invoices, policy document...
Azure Developer CLI (azd) Dec 2025 – Extensions Enhancements, Foundry Rebranding, and Azure Pipelines Improvements
This post announces the December release of the Azure Developer CLI (`azd`). The post Azure Developer CLI (azd) Dec 2025 – Extensions En...
Unlock the power of distributed graph databases with JanusGraph and Azure Apache Cassandra
Connecting the Dots: How Graph Databases Drive Innovation In today’s data-rich world, organizations face challenges that go beyond simple tabl...
Azure Boards integration with GitHub Copilot
A few months ago we introduced the Azure Boards integration with GitHub Copilot in private preview. The goal was simple: allow teams to take a...
Microsoft Dataverse – Monitor batch workloads with Azure Monitor Application Insights
We are announcing the ability to monitor batch workload telemetry in Azure Monitor Application Insights for finance and operations apps in Mic...
Copilot Studio: Connect An Azure SQL Database As Knowledge
Copilot Studio can connect to an Azure SQL database and use its structured data as ... The post Copilot Studio: Connect An Azure SQL Database ...
Retirement of Global Personal Access Tokens in Azure DevOps
In the new year, we’ll be retiring the Global Personal Access Token (PAT) type in Azure DevOps. Global PATs allow users to authenticate across...
Azure Cosmos DB vNext Emulator: Query and Observability Enhancements
The Azure Cosmos DB Linux-based vNext emulator (preview) is a local version of the Azure Cosmos DB service that runs as a Docker container on ...