Loading...

Introducing Azure Communication Services Call Diagnostics feature for web applications!

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.

Screen Shot 2021-07-15 at 3.38.48 PM.png

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:

  1.    Media (audio, video, screen-sharing). Examples: noSpeakerDevicesEnumerated, speakingWhileMicrophoneIsMuted,  noMicrophoneDevicesEnumerated, cameraFreeze, cameraStartFailed, cameraStartTimedOut, microphoneNotFunctioning, microphoneMuteUnexpectedly, screenshareRecordingDisabled, microphonePermissionDenied, cameraPermissionDenied.
  2.   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:

 

 

 

const callQualityApi = call.api(Features.Diagnostics);

 

 

 

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.

 

 

 

callQualityApi.network.on('diagnosticChanged', diagnosticChangedListener); callQualityApi.media.on('diagnosticChanged', diagnosticChangedListener);

 

 

 

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:

 

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 more
Azure Communication Services Blog
Azure Communication Services Blog

Azure Communication Services Blog articles

Share post:

Related posts

Announcing latest Azure Cosmos DB Python SDK: Powering the Future of AI with OpenAI

We’re thrilled to announce the stable release of Azure Cosmos DB Python SDK version 4.14.0! This release brings together months of innov...

1 day ago

How Azure CLI handles your tokens and what you might be ignoring

Running az login feels like magic. A browser pops up, you pick an account, and from then on, everything just works. No more passwords, no more...

2 days ago

Boost your Azure Cosmos DB Efficiency with Azure Advisor Insights

Azure Cosmos DB is Microsoft’s globally distributed, multi-model database service, trusted for mission-critical workloads that demand high ava...

4 days ago

Microsoft Azure Fundamentals #5: Complex Error Handling Patterns for High-Volume Microsoft Dataverse Integrations in Azure

🚀 1. Problem Context When integrating Microsoft Dataverse with Azure services (e.g., Azure Service Bus, Azure Functions, Logic Apps, Azure SQ...

4 days ago

Using the Secret Management PowerShell Module with Azure Key Vault and Azure Automation

Automation account credential resources are the easiest way to manage credentials for Azure Automation runbooks. The Secret Management module ...

5 days ago

Microsoft Azure Fundamentals #4: Azure Service Bus Topics and Subscriptions for multi-system CRM workflows in Microsoft Dataverse / Dynamics 365

🚀 1. Scenario Overview In modern enterprise environments, a single business event in Microsoft Dataverse (CRM) can trigger workflows across m...

5 days ago

Easily connect AI workloads to Azure Blob Storage with adlfs

Microsoft works with the fsspec open-source community to enhance adlfs. This update delivers faster file operations and improved reliability f...

6 days ago

Microsoft Azure Fundamentals #3: Maximizing Event-Driven Architecture in Microsoft Power Platform

🧩 1. Overview Event-driven architecture (EDA) transforms how systems communicate.Instead of traditional request–response or batch integration...

6 days ago

Azure Developer CLI (azd) – October 2025

This post announces the October release of the Azure Developer CLI (`azd`). The post Azure Developer CLI (azd) – October 2025 appeared f...

7 days ago

Microsoft Azure Fundamentals #2: Designing Real-Time Bi-Directional Sync Between Dataverse and Azure SQL for Multi-Region Deployments

Here’s a detailed technical breakdown of designing a real-time bi-directional sync between Dataverse and Azure SQL for multi-region deployment...

7 days ago
Stay up to date with latest Microsoft Dynamics 365 and Power Platform news!
* Yes, I agree to the privacy policy