Skip to content

Commit 2e3b173

Browse files
author
Jill Grant
authored
Merge pull request #263069 from tophpalmer/master
Updating Calling docs for brevity
2 parents 5dc6f75 + cd639ba commit 2e3b173

File tree

2 files changed

+64
-69
lines changed

2 files changed

+64
-69
lines changed

articles/communication-services/concepts/voice-video-calling/calling-sdk-features.md

Lines changed: 63 additions & 66 deletions
Original file line numberDiff line numberDiff line change
@@ -15,27 +15,36 @@ ms.custom: devx-track-js
1515
---
1616
# Calling SDK overview
1717

18+
Azure Communication Services allows end-user browsers, apps, and services to drive voice and video communication. This page focuses on Calling client SDK, which can be embedded in websites and native applications. This page provides detailed descriptions of Calling client features such as platform and browser support information. Services programmatically manage and access calls using the [Call Automation APIs](../call-automation/call-automation.md). The [Rooms API](../rooms/room-concept.md) is an optional Azure Communication Services API that adds additional features to a voice or video call, such as roles and permissions.
19+
1820
[!INCLUDE [Survey Request](../../includes/survey-request.md)]
1921

22+
To build your own user experience with the Calling SDK, check out [Calling quickstarts](../../quickstarts/voice-video-calling/getting-started-with-calling.md) or [Calling hero sample](../../samples/calling-hero-sample.md).
23+
24+
If you'd like help with the end-user experience, the Azure Communication Services UI Library provides a collection of open-source production-ready UI components to drop into your application. With this set of prebuilt controls, you can create beautiful communication experiences using [Microsoft's Fluent design language](https://developer.microsoft.com/en-us/fluentui#/). If you want to learn more about the UI Library, visit [the overview site](../ui-library/ui-library-overview.md) or [Storybook](https://aka.ms/acsstorybook).
2025

21-
The Calling SDK enables end-user devices to drive voice and video communication experiences. This page provides detailed descriptions of Calling features, including platform and browser support information. To get started right away, check out [Calling quickstarts](../../quickstarts/voice-video-calling/getting-started-with-calling.md) or [Calling hero sample](../../samples/calling-hero-sample.md).
26+
Once you start development, check out the [known issues page](../known-issues.md) to find bugs we're working on.
2227

23-
Once you've started development, check out the [known issues page](../known-issues.md) to find bugs we're working on.
28+
**SDK links**
2429

25-
Key features of the Calling SDK:
30+
| Platform | Web (JavaScript) | Windows (.NET) | iOS | Android | Other |
31+
| -------------- | ---------- | ---- | -------------- | -------------- | ------------------------------ |
32+
| Calling | [npm](https://www.npmjs.com/package/@azure/communication-calling) | [NuGet](https://www.nuget.org/packages/Azure.Communication.Calling.WindowsClient) | [GitHub](https://github.com/Azure/Communication/releases) | [Maven](https://search.maven.org/artifact/com.azure.android/azure-communication-calling/)| |
33+
| UI Library| [npm](https://www.npmjs.com/package/@azure/communication-react) | - | [GitHub](https://github.com/Azure/communication-ui-library-ios) | [GitHub](https://github.com/Azure/communication-ui-library-android) | [GitHub](https://github.com/Azure/communication-ui-library), [Storybook](https://azure.github.io/communication-ui-library/?path=/story/overview--page) |
2634

35+
**Key features**
36+
- **Device Management and Media** - The Calling SDK provides facilities for binding to audio and video devices, encodes content for efficient transmission over the communications dataplane, and renders content to output devices and views that you specify. APIs are also provided for screen and application sharing.
37+
- **PSTN** - The Calling SDK can initiate voice calls with the traditional publicly switched telephone network, [using phone numbers you acquire in the Azure portal](../../quickstarts/telephony/get-phone-number.md) or programmatically. You can also bring your own numbers using session border controllers.
38+
- **Teams Meetings & Calling** - The Calling SDK can [join Teams meetings](../../quickstarts/voice-video-calling/get-started-teams-interop.md) and interact with the Teams voice and video dataplane.
39+
- **Encryption** - The Calling SDK encrypts traffic and prevents tampering on the wire.
2740
- **Addressing** - Azure Communication Services provides generic [identities](../identity-model.md) that are used to address communication endpoints. Clients use these identities to authenticate to the service and communicate with each other. These identities are used in Calling APIs that provide clients visibility into who is connected to a call (the roster).
2841
- **User Access Security**
29-
- **Roster** control, **Schedule** control, and user **roles/permissions** are enforced through [Virtual Rooms](../rooms/room-concept.md).
42+
- **Roster** control, **schedule** control, and user **roles/permissions** are enforced through [Virtual Rooms](../rooms/room-concept.md).
3043
- Ability for a user to **Initiate a new call** or to **Join an existing call** can be managed through [User Identities and Tokens](../identity-model.md)
31-
- **Encryption** - The Calling SDK encrypts traffic and prevents tampering on the wire.
32-
- **Device Management and Media** - The Calling SDK provides facilities for binding to audio and video devices, encodes content for efficient transmission over the communications dataplane, and renders content to output devices and views that you specify. APIs are also provided for screen and application sharing.
33-
- **PSTN** - The Calling SDK can initiate voice calls with the traditional publicly switched telephone network, [using phone numbers you acquire in the Azure portal](../../quickstarts/telephony/get-phone-number.md) or programmatically.
34-
- **Teams Meetings** - The Calling SDK can [join Teams meetings](../../quickstarts/voice-video-calling/get-started-teams-interop.md) and interact with the Teams voice and video dataplane.
3544
- **Notifications** - The Calling SDK provides APIs allowing clients to be notified of an incoming call. In situations where your app isn't running in the foreground, patterns are available to [fire pop-up notifications](../notifications.md) ("toasts") to inform end-users of an incoming call.
36-
- **User Facing Diagnostics (UFD)** - The Calling SDK provides [events](user-facing-diagnostics.md) that are designed to provide insights into underlying issues that could affect call quality. Developers can subscribe to triggers such as weak network signals or muted microphones, ensuring that they're always aware of any factors impacting the calls.
3745
- **Media Stats** - The Calling SDK provides comprehensive insights into [the metrics](media-quality-sdk.md) of your VoIP and video calls. With this information, developers have a clearer understanding of call quality and can make informed decisions to further enhance their communication experience.
3846
- **Video Constraints** - The Calling SDK provides APIs that gain the ability to regulate [video quality among other parameters](../../quickstarts/voice-video-calling/get-started-video-constraints.md) during video calls by adjusting parameters such as resolution and frame rate supporting different call situations for different levels of video quality
47+
- **User Facing Diagnostics (UFD)** - The Calling SDK provides [events](user-facing-diagnostics.md) that are designed to provide insights into underlying issues that could affect call quality. Developers can subscribe to triggers such as weak network signals or muted microphones, ensuring that they're always aware of any factors impacting the calls.
3948

4049
## Detailed capabilities
4150

@@ -90,63 +99,44 @@ The following list presents the set of features that are currently available in
9099
| | Custom background image | ✔️ ||||
91100

92101

93-
1. The capability to Mute Others is currently in public preview.
94-
2. The Share Screen capability can be achieved using Raw Media, if you want to learn, **how to add Raw Media**, visit [the quickstart guide](../../quickstarts/voice-video-calling/get-started-raw-media-access.md).
95-
3. The Calling SDK doesn't have an explicit API, you need to use the OS (android & iOS) API to achieve it.
96-
97-
## UI Library
98-
99-
UI Library makes it easy for you to build modern communications user experiences using Azure Communication Services. It provides a library of production-ready UI components to drop into your application.
100-
101-
With this set of prebuilt controls, you can create beautiful designs using [the fluent UI SDK](https://developer.microsoft.com/en-us/fluentui#/) components and audio/video communication experiences. If you want to learn more about the UI Library, you can visit [the overview site](../ui-library/ui-library-overview.md), where you find details about web and mobile platforms.
102-
103-
## Calling SDK streaming support
104-
105-
The Azure Communication Services Calling SDK supports the following streaming configurations:
106-
107-
| Limit | Web | Windows/Android/iOS |
108-
| ------------------------------------------------------------- | --------------------------- | -------------------------- |
109-
| **Maximum # of outgoing local streams that can be sent simultaneously** | 1 video and 1 screen sharing | 1 video + 1 screen sharing |
110-
| **Maximum # of incoming remote streams that can be rendered simultaneously** | 9 videos + 1 screen sharing on desktop browsers*, 4 videos + 1 screen sharing on web mobile browsers | 9 videos + 1 screen sharing |
111-
112-
\* Starting from Azure Communication Services Web Calling SDK version [1.16.3](https://github.com/Azure/Communication/blob/master/releasenotes/acs-javascript-calling-library-release-notes.md#1163-stable-2023-08-24)
113-
While the Calling SDK don't enforce these limits, your users might experience performance degradation if they're exceeded. Use the API of [Optimal Video Count](../../how-tos/calling-sdk/manage-video.md?pivots=platform-web#remote-video-quality) to determine how many current incoming video streams your web environment can support.
114-
115-
## Calling SDK timeouts
116-
117-
The following timeouts apply to the Communication Services Calling SDKs:
118-
119-
| Action | Timeout in seconds |
120-
| --------------------------------------------------------------------------- | ------------------ |
121-
| Reconnect/removal participant | 60 |
122-
| Add or remove new modality from a call (Start/stop video or screen sharing) | 40 |
123-
| Call Transfer operation timeout | 60 |
124-
| 1:1 call establishment timeout | 85 |
125-
| Group call establishment timeout | 85 |
126-
| PSTN call establishment timeout | 115 |
127-
| Promote 1:1 call to a group call timeout | 115 |
128-
129-
## Maximum call duration
130-
131-
**The maximum call duration is 30 hours**, participants that reach the maximum call duration lifetime of 30 hours will be disconnected from the call.
102+
<sup>1</sup> The capability to Mute Others is currently in public preview.
103+
<sup>2</sup> The Share Screen capability can be achieved using Raw Media APIs. To learn more visit [the raw media access quickstart guide](../../quickstarts/voice-video-calling/get-started-raw-media-access.md).
104+
<sup>3</sup> The Calling SDK doesn't have an explicit API for these functions, you should use the Android & iOS OS APIs to achieve instead.
132105

133106
## JavaScript Calling SDK support by OS and browser
134107

135108
The following table represents the set of supported browsers, which are currently available. **We support the most recent three major versions of the browser (most recent three minor versions for Safari)** unless otherwise indicated.
136109

137110
| Platform | Chrome | Safari | Edge | Firefox | Webview |
138111
| ------------ | ------ | ------ | ------ | ------- | ------- |
139-
| Android | ✔️ || ✔️ || ✔️ * |
112+
| Android | ✔️ || ✔️ || ✔️ |
140113
| iOS | ✔️ | ✔️ ||| ✔️ |
141114
| macOS | ✔️ | ✔️ | ✔️ | ✔️ ||
142115
| Windows | ✔️ || ✔️ | ✔️ ||
143116
| Ubuntu/Linux | ✔️ |||||
144117

145118
- Outgoing Screen Sharing isn't supported on iOS or Android mobile browsers.
146119
- Firefox support is in public preview.
147-
- Currently, the calling SDK only supports Android System WebView on Android, iOS WebView(WKWebView) in public preview. Other types of embedded browsers or WebView on other OS platforms aren't officially supported, for example, GeckoView, Chromium Embedded Framework (CEF), Microsoft Edge WebView2.
148-
Running JavaScript Calling SDK on these platforms isn't actively tested, it might or might not work.
149-
- [An iOS app on Safari can't enumerate/select mic and speaker devices](../known-issues.md#enumerating-devices-isnt-possible-in-safari-when-the-application-runs-on-ios-or-ipados) (for example, Bluetooth); this issue is a limitation of the OS, and there's always only one device, OS controls default device selection.
120+
- Currently, the calling SDK only supports Android System WebView on Android, iOS WebView(WKWebView) in public preview. Other types of embedded browsers or WebView on other OS platforms aren't officially supported, for example, GeckoView, Chromium Embedded Framework (CEF), Microsoft Edge WebView2. Running JavaScript Calling SDK on these platforms isn't actively tested, it might or might not work.
121+
- [An iOS app on Safari can't enumerate/select mic and speaker devices](../known-issues.md#enumerating-devices-isnt-possible-in-safari-when-the-application-runs-on-ios-or-ipados) (for example, Bluetooth). This issue is a limitation of iOS, and the operating system controls default device selection.
122+
123+
## Calling client - browser security model
124+
125+
### Use WebRTC over HTTPS
126+
127+
WebRTC APIs like `getUserMedia` require that the app that calls these APIs is served over HTTPS. For local development, you can use `http://localhost`.
128+
129+
### Embed the Communication Services Calling SDK in an iframe
130+
131+
A new [permissions policy (also called a feature policy)](https://www.w3.org/TR/permissions-policy-1/#iframe-allow-attribute) is available in various browsers. This policy affects calling scenarios by controlling how applications can access a device's camera and microphone through a cross-origin iframe element.
132+
133+
If you want to use an iframe to host part of the app from a different domain, you must add the `allow` attribute with the correct value to your iframe.
134+
135+
For example, this iframe allows both camera and microphone access:
136+
137+
```html
138+
<iframe allow="camera *; microphone *">
139+
```
150140

151141
## Android Calling SDK support
152142

@@ -161,29 +151,36 @@ Running JavaScript Calling SDK on these platforms isn't actively tested, it migh
161151
- Xcode 12.0+
162152
- Support for **iPadOS** 13.0+
163153

164-
## Calling client - browser security model
165154

166-
### User WebRTC over HTTPS
167-
168-
WebRTC APIs like `getUserMedia` require that the app that calls these APIs is served over HTTPS.
155+
## Maximum call duration
169156

170-
For local development, you can use `http://localhost`.
157+
**The maximum call duration is 30 hours**, participants that reach the maximum call duration lifetime of 30 hours will be disconnected from the call.
171158

172-
### Embed the Communication Services Calling SDK in an iframe
159+
## Limits to the number of simultaneous video streams
173160

174-
A new [permissions policy (also called a feature policy)](https://www.w3.org/TR/permissions-policy-1/#iframe-allow-attribute) is available in various browsers. This policy affects calling scenarios by controlling how applications can access a device's camera and microphone through a cross-origin iframe element.
161+
The Azure Communication Services Calling SDK supports the following streaming configurations:
175162

176-
If you want to use an iframe to host part of the app from a different domain, you must add the `allow` attribute with the correct value to your iframe.
163+
| Limit | Web | Windows/Android/iOS |
164+
| ------------------------------------------------------------- | --------------------------- | -------------------------- |
165+
| **Maximum # of outgoing local streams that can be sent simultaneously** | 1 video and 1 screen sharing | 1 video + 1 screen sharing |
166+
| **Maximum # of incoming remote streams that can be rendered simultaneously** | 9 videos + 1 screen sharing on desktop browsers*, 4 videos + 1 screen sharing on web mobile browsers | 9 videos + 1 screen sharing |
177167

178-
For example, this iframe allows both camera and microphone access:
168+
\* Starting from Azure Communication Services Web Calling SDK version [1.16.3](https://github.com/Azure/Communication/blob/master/releasenotes/acs-javascript-calling-library-release-notes.md#1163-stable-2023-08-24)
169+
While the Calling SDK does not enforce these limits, your users might experience performance degradation if they're exceeded. Use the API of [Optimal Video Count](../../how-tos/calling-sdk/manage-video.md?pivots=platform-web#remote-video-quality) to determine how many current incoming video streams your web environment can support.
179170

180-
```html
181-
<iframe allow="camera *; microphone *">
182-
```
171+
## Calling SDK timeouts
183172

184-
## Known issues
173+
The following timeouts apply to the Communication Services Calling SDKs:
185174

186-
Once you've started development, check out the [known issues page](../known-issues.md) to find bugs we're working on.
175+
| Action | Timeout in seconds |
176+
| --------------------------------------------------------------------------- | ------------------ |
177+
| Reconnect/removal participant | 60 |
178+
| Add or remove new modality from a call (Start/stop video or screen sharing) | 40 |
179+
| Call Transfer operation timeout | 60 |
180+
| 1:1 call establishment timeout | 85 |
181+
| Group call establishment timeout | 85 |
182+
| PSTN call establishment timeout | 115 |
183+
| Promote 1:1 call to a group call timeout | 115 |
187184

188185
## Next steps
189186

articles/communication-services/quickstarts/voice-video-calling/getting-started-with-calling.md

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,9 +14,7 @@ ms.custom: mode-other, devx-track-js, devx-track-azurecli
1414

1515
# Quickstart: Add voice calling to your app
1616

17-
Get started with Azure Communication Services by using the Communication Services Calling SDK to add voice and video calling to your app.
18-
19-
[!INCLUDE [Emergency Calling Notice](../../includes/emergency-calling-notice-include.md)]
17+
Get started with Azure Communication Services by using the Calling SDK to add voice and video calling to your app.
2018

2119
::: zone pivot="platform-windows"
2220
[!INCLUDE [Calling with Windows](./includes/get-started/get-started-windows.md)]

0 commit comments

Comments
 (0)