Skip to content

Commit 4c5c34a

Browse files
authored
Merge pull request #298905 from vac0224/vc-manage-lobby-2025-04-30
Lobby and Capabilities
2 parents 8fa718a + bcc1301 commit 4c5c34a

File tree

7 files changed

+106
-57
lines changed

7 files changed

+106
-57
lines changed

articles/communication-services/how-tos/calling-sdk/capabilities.md

Lines changed: 29 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
---
2-
title: Get local user capabilities
2+
title: Get local capabilities
33
titleSuffix: An Azure Communication Services how-to guide
44
description: Use Azure Communication Services SDK to get capabilities of the local user in a call.
55
author: elavarasid
@@ -11,10 +11,13 @@ ms.date: 03/24/2023
1111
ms.custom: template-how-to
1212
zone_pivot_groups: acs-plat-web-ios-android-windows
1313
---
14-
# Observe user's capabilities
14+
15+
# Get local capabilities
16+
1517
Do I have permission to turn on video, do I have permission to turn on mic, do I have permission to share screen? Those permissions are examples of participant capabilities that you can learn from the capabilities API. Learning the capabilities can help build a user interface that only shows the buttons related to the actions the local user has permissions to.
1618

1719
## Prerequisites
20+
1821
- An Azure account with an active subscription. [Create an account for free](https://azure.microsoft.com/free/?WT.mc_id=A261C142F).
1922
- A deployed Communication Services resource. [Create a Communication Services resource](../../quickstarts/create-communication-resource.md).
2023
- A user access token to enable the calling client. For more information, see [Create and manage access tokens](../../quickstarts/identity/access-tokens.md).
@@ -37,26 +40,36 @@ Do I have permission to turn on video, do I have permission to turn on mic, do I
3740
::: zone-end
3841

3942
## Supported call types
40-
The feature is currently supported only for Azure Communication Services Rooms call type and teams meeting call type
43+
44+
The following tables define the ability to get capabilities using the Azure Communication Services Calling SDK.
45+
46+
### Identities and call types
47+
48+
| Identities | Teams meeting | Room | 1:1 call | Group call | 1:1 Teams interop call | Group Teams interop call |
49+
| --- | --- | --- | --- | --- | --- | --- |
50+
| Communication Services user | ✔️ | ✔️ | | | | |
51+
| Microsoft 365 user | ✔️ | ✔️ | | | | |
4152

4253
## Reasons
4354

4455
The following table provides additional information about why action isn't available and provides tips how to make the action available.
4556

46-
| Reason | Description | Resolution |
47-
|---------------------------------------|------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
48-
| Capable | Action is allowed. | |
49-
| CapabilityNotApplicableForTheCallType | Call type blocks the action. | Consider other type of call if you need this action. The call types are: 1:1 call, group call, 1:1 Teams interop call, 1:1 Teams interop group call, Room, and Meeting. |
50-
| ClientRestricted | The runtime environment is blocking this action | Unblock the action on your device by changing operating system, browsers, platform, or hardware. You can find supported environment in our documentation. |
51-
| UserPolicyRestricted | Microsoft 365 user's policy blocks the action. | Enable this action by changing policy that is assigned to the organizer of the meeting, initiator of the call or Microsoft 365 user using ACS SDK. The target user depends on the type of action. Learn more about Teams policy in Teams. Teams administrator can change policies. |
52-
| RoleRestricted | Assigned role blocks the action. | Promote user to different role to make the action available. |
53-
| FeatureNotSupported | The capabilities feature isn't supported in this call type. | Let us know in Azure Feedback channel that you would like to have this feature available for this call type. |
54-
| MeetingRestricted | Teams meeting option blocks the action. | Teams meeting organizer or co-organizer needs to change meeting option to enable this action. |
55-
| NotInitialized | The capabilities feature isn't initialized yet. | Subscribe to event `capabilitiesChanged` on `this.call.feature(Features.Capabilities)` to know when capability is initialized. |
56-
| NotCapable | User type blocks the action. | The action is only allowed to specific type of identity. Enable this action by using Microsoft 365 identity. |
57-
| TeamsPremiumLicenseRestricted | Microsoft 365 user needs to have Teams Premium license assigned. | Enable this action by assigning Teams Premium license to the Teams meeting organizer or the Microsoft 365 user using SDK. The target user depends on the type of action. Microsoft 365 admin can assign required license. |
58-
| ExplicitConsentRequired | Consent is required to allow the action. | Provide the consent for recording or transcription by calling method `grantTeamsConsent()` under `this.call.feature(Features.Recording)` or `this.call.feature(Features.Transcription)` .|
57+
| Reason | Description | Resolution |
58+
| --- | --- | --- |
59+
| Capable | Action is enabled. | |
60+
| CapabilityNotApplicableForTheCallType | Call type blocks the action. | Consider other type of call if you need this action. The call types are: 1:1 call, group call, 1:1 Teams interop call, 1:1 Teams interop group call, Room, and Meeting. |
61+
| ClientRestricted | The runtime environment is blocking this action | Unblock the action on your device by changing operating system, browsers, platform, or hardware. You can find supported environment in our documentation. |
62+
| UserPolicyRestricted | Microsoft 365 user's policy blocks the action. | Enable this action by changing policy that is assigned to the organizer of the meeting, initiator of the call or Microsoft 365 user using ACS SDK. The target user depends on the type of action. Learn more about Teams policy in Teams. Teams administrator can change policies. |
63+
| RoleRestricted | Assigned role blocks the action. | Promote user to different role to make the action available. |
64+
| FeatureNotSupported | The capabilities feature isn't supported in this call type. | Let us know in Azure Feedback channel that you would like to have this feature available for this call type. |
65+
| MeetingRestricted | Teams meeting option blocks the action. | Teams meeting organizer or co-organizer needs to change meeting option to enable this action. |
66+
| NotInitialized | The capabilities feature isn't initialized yet. | Subscribe to event `capabilitiesChanged` on `this.call.feature(Features.Capabilities)` to know when capability is initialized. |
67+
| NotCapable | User type blocks the action. | The action is only enabled for specific identities. Enable this action by using Microsoft 365 identity. |
68+
| TeamsPremiumLicenseRestricted | Microsoft 365 user needs to have Teams Premium license assigned. | Enable this action by assigning Teams Premium license to the Teams meeting organizer or the Microsoft 365 user using SDK. The target user depends on the type of action. Microsoft 365 admin can assign required license. |
69+
| ExplicitConsentRequired | Consent is required to allow the action. | Provide the consent for recording or transcription by calling method `grantTeamsConsent()` under `this.call.feature(Features.Recording)` or `this.call.feature(Features.Transcription)` .|
70+
5971
## Next steps
72+
6073
- [Learn how to manage video](./manage-video.md)
6174
- [Learn how to manage calls](./manage-calls.md)
6275
- [Learn how to record calls](./record-calls.md)

articles/communication-services/how-tos/calling-sdk/includes/capabilities/capabilities-android.md

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -7,19 +7,21 @@ ms.author: zehangzheng
77
---
88
[!INCLUDE [Install SDK](../install-sdk/install-sdk-android.md)]
99

10-
Capabilities feature is an extended feature of the core `Call` API and allows you to obtain the capabilities of the local participant in the current call.
10+
The ability to view capabilities is an extended feature of the core `Call` API. It enables you to obtain the capabilities of the local participant in the current call.
1111

12-
The feature allows you to register for an event listener, to listen to capability changes.
12+
The feature enables you to register for an event listener to listen for capability changes.
1313

1414
In order to use the Capabilities call feature for Windows, the first step is to obtain the Capabilities feature API object:
1515

16-
## Obtaining capabilities feature
16+
## Get the capabilities feature
17+
1718
```java
1819
private CapabilitiesCallFeature capabilitiesCallFeature;
1920
capabilitiesCallFeature = call.feature(Features.CAPABILITIES);
2021
```
2122

2223
## Get the capabilities of the local participant
24+
2325
Capabilities object has the capabilities of the local participants and is of type `ParticipantCapability`. Properties of Capabilities include:
2426

2527
- *isAllowed* indicates if a capability can be used.
@@ -30,6 +32,7 @@ List<ParticipantCapability> capabilities = capabilitiesCallFeature.getCapabiliti
3032
```
3133

3234
## Subscribe to `capabilitiesChanged` event
35+
3336
```java
3437

3538
capabilitiesCallFeature.addOnCapabilitiesChangedListener(this::OnCapabilitiesChanged);
@@ -46,7 +49,8 @@ private void OnCapabilitiesChanged(CapabilitiesChangedEvent args)
4649
```
4750

4851
## Capabilities Exposed
49-
- *TurnVideoOn*: Ability to turn video on
52+
53+
- *TurnVideoOn*: Ability to turn on video
5054
- *UnmuteMicrophone*: Ability to unmute microphone
5155
- *ShareScreen*: Ability to share screen
5256
- *RemoveParticipant*: Ability to remove a participant
@@ -61,4 +65,4 @@ private void OnCapabilitiesChanged(CapabilitiesChangedEvent args)
6165
- *CustomBackground*: Ability to apply a custom background
6266
- *StartLiveCaptions*: Ability to start live captions
6367
- *RaiseHand*: Ability to raise hand
64-
- *MuteOthers*: Ability to soft mute remote participant(s) in the meeting
68+
- *MuteOthers*: Ability to soft mute remote participants in the meeting

articles/communication-services/how-tos/calling-sdk/includes/capabilities/capabilities-ios.md

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -7,18 +7,20 @@ ms.author: zehangzheng
77
---
88
[!INCLUDE [Install SDK](../install-sdk/install-sdk-ios.md)]
99

10-
Capabilities feature is an extended feature of the core `Call` API and allows you to obtain the capabilities of the local participant in the current call.
10+
The ability to view capabilities is an extended feature of the core `Call` API. It enables you to obtain the capabilities of the local participant in the current call.
1111

12-
The feature allows you to register for an event listener, to listen to capability changes.
12+
The feature enables you to register for an event listener to listen for capability changes.
1313

14-
In order to use the Capabilities call feature for Windows, the first step is to obtain the Capabilities feature API object:
14+
To use the Capabilities call feature for Windows, the first step is to obtain the Capabilities feature API object:
15+
16+
## Get the capabilities feature
1517

16-
## Obtaining capabilities feature
1718
```swift
1819
let capabilitiesCallFeature =call.feature(Features.capabilities)
1920
```
2021

2122
## Get the capabilities of the local participant
23+
2224
Capabilities object has the capabilities of the local participants and is of type `ParticipantCapability`. Properties of Capabilities include:
2325

2426
- *isAllowed* indicates if a capability can be used.
@@ -29,6 +31,7 @@ var capabilities = capabilitiesCallFeature.capabilities
2931
```
3032

3133
## Subscribe to `capabilitiesChanged` event
34+
3235
```swift
3336

3437
capabilitiesCallFeature.delegate = CapabilitiesCallDelegate()
@@ -43,7 +46,8 @@ public class CapabilitiesCallDelegate : CapabilitiesCallFeatureDelegate
4346
```
4447

4548
## Capabilities Exposed
46-
- *TurnVideoOn*: Ability to turn video on
49+
50+
- *TurnVideoOn*: Ability to turn on video
4751
- *UnmuteMicrophone*: Ability to unmute microphone
4852
- *ShareScreen*: Ability to share screen
4953
- *RemoveParticipant*: Ability to remove a participant
@@ -58,4 +62,4 @@ public class CapabilitiesCallDelegate : CapabilitiesCallFeatureDelegate
5862
- *CustomBackground*: Ability to apply a custom background
5963
- *StartLiveCaptions*: Ability to start live captions
6064
- *RaiseHand*: Ability to raise hand
61-
- *MuteOthers*: Ability to soft mute remote participant(s) in the meeting
65+
- *MuteOthers*: Ability to soft mute remote participants in the meeting

articles/communication-services/how-tos/calling-sdk/includes/capabilities/capabilities-web.md

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -7,17 +7,18 @@ ms.author: elavarasid
77
---
88
[!INCLUDE [Install SDK](../install-sdk/install-sdk-web.md)]
99

10-
Capabilities feature is an extended feature of the core `Call` API and allows you to obtain the capabilities of the local participant in the current call.
10+
The ability to view capabilities is an extended feature of the core `Call` API. It enables you to obtain the capabilities of the local participant in the current call.
1111

12+
The feature enables you to register for an event listener to listen for capability changes.
1213

13-
The feature allows you to register for an event listener, to listen to capability changes.
14+
## Get the capabilities feature
1415

15-
**Register to capabilities feature:**
1616
>```js
1717
>const capabilitiesFeature = this.call.feature(Features.Capabilities);
1818
>```
1919
20-
**Get the capabilities of the local participant:**
20+
## Get the capabilities of the local participant
21+
2122
Capabilities object has the capabilities of the local participants and is of type `ParticipantCapabilities`. Properties of Capabilities include:
2223
2324
- *isPresent* indicates if a capability is present.
@@ -28,6 +29,7 @@ const capabilities = capabilitiesFeature.capabilities;
2829
```
2930
3031
**Subscribe to `capabilitiesChanged` event:**
32+
3133
```js
3234
capabilitiesFeature.on('capabilitiesChanged', (capabilitiesChangeInfo) => {
3335
for (const [key, value] of Object.entries(capabilitiesChangeInfo.newValue)) {
@@ -71,7 +73,8 @@ capabilitiesFeature.on('capabilitiesChanged', (capabilitiesChangeInfo) => {
7173
});
7274
```
7375

74-
**Capabilities Exposed**
76+
## Capabilities Exposed
77+
7578
- *turnVideoOn*: Ability to turn on video
7679
- *unmuteMic*: Ability to send audio
7780
- *shareScreen*: Ability to share screen
@@ -86,7 +89,7 @@ capabilitiesFeature.on('capabilitiesChanged', (capabilitiesChangeInfo) => {
8689
- *startLiveCaptions*: Ability to start live captions (beta only)
8790
- *stopLiveCaptions*: Ability to stop live captions (beta only)
8891
- *raiseHand*: Ability to raise hand (beta only)
89-
- *muteOthers*: Ability to soft mute remote participant(s) in the meeting
92+
- *muteOthers*: Ability to soft mute remote participants in the meeting
9093
- *reaction*: Ability to react in the meeting (beta only)
9194
- *viewAttendeeNames*: Ability to view attendee names in the meeting
9295
- *forbidOthersAudio*: Ability to forbid attendees' audio in the meeting or group call

articles/communication-services/how-tos/calling-sdk/includes/capabilities/capabilities-windows.md

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -7,19 +7,21 @@ ms.author: zehangzheng
77
---
88
[!INCLUDE [Install SDK](../install-sdk/install-sdk-windows.md)]
99

10-
Capabilities feature is an extended feature of the core `Call` API and allows you to obtain the capabilities of the local participant in the current call.
10+
The ability to view capabilities is an extended feature of the core `Call` API. It enables you to obtain the capabilities of the local participant in the current call.
1111

12-
The feature allows you to register for an event listener, to listen to capability changes.
12+
The feature enables you to register for an event listener to listen for capability changes.
1313

14-
In order to use the Capabilities call feature for Windows, the first step is to obtain the Capabilities feature API object:
14+
To use the Capabilities call feature for Windows, the first step is to obtain the Capabilities feature API object:
15+
16+
## Get the capabilities feature
1517

16-
## Obtaining capabilities feature
1718
```C#
1819
private CapabilitiesCallFeature capabilitiesCallFeature;
1920
capabilitiesCallFeature = call.Features.Capabilities;
2021
```
2122

2223
## Get the capabilities of the local participant
24+
2325
Capabilities object has the capabilities of the local participants and is of type `ParticipantCapability`. Properties of Capabilities include:
2426

2527
- *isAllowed* indicates if a capability can be used.
@@ -30,6 +32,7 @@ var capabilities = capabilitiesCallFeature.Capabilities;
3032
```
3133

3234
## Subscribe to `capabilitiesChanged` event
35+
3336
```C#
3437
capabilitiesCallFeature.CapabilitiesChanged += Call__OnCapabilitiesChangedAsync;
3538

@@ -45,7 +48,8 @@ private async void Call__OnCapabilitiesChangedAsync(object sender, CapabilitiesC
4548
```
4649

4750
## Capabilities Exposed
48-
- *TurnVideoOn*: Ability to turn video on
51+
52+
- *TurnVideoOn*: Ability to turn on video
4953
- *UnmuteMicrophone*: Ability to unmute microphone
5054
- *ShareScreen*: Ability to share screen
5155
- *RemoveParticipant*: Ability to remove a participant
@@ -60,4 +64,4 @@ private async void Call__OnCapabilitiesChangedAsync(object sender, CapabilitiesC
6064
- *CustomBackground*: Ability to apply a custom background
6165
- *StartLiveCaptions*: Ability to start live captions
6266
- *RaiseHand*: Ability to raise hand
63-
- *MuteOthers*: Ability to soft mute remote participant(s) in the meeting
67+
- *MuteOthers*: Ability to soft mute remote participants in the meeting

articles/communication-services/how-tos/calling-sdk/includes/install-sdk/install-sdk-web.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ const callAgent = await callClient.createCallAgent(tokenCredential, {displayName
4444
const deviceManager = await callClient.getDeviceManager()
4545
```
4646

47-
### How to best manage SDK connectivity to Microsoft infrastructure
47+
### Manage SDK connectivity to Microsoft infrastructure
4848

4949
The `Call Agent` instance helps you manage calls (to join or start calls). In order to work your calling SDK needs to connect to Microsoft infrastructure to get notifications of incoming calls and coordinate other call details. Your `Call Agent` has two possible states:
5050

0 commit comments

Comments
 (0)