You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
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.
16
18
17
19
## Prerequisites
20
+
18
21
- An Azure account with an active subscription. [Create an account for free](https://azure.microsoft.com/free/?WT.mc_id=A261C142F).
19
22
- A deployed Communication Services resource. [Create a Communication Services resource](../../quickstarts/create-communication-resource.md).
20
23
- 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
37
40
::: zone-end
38
41
39
42
## 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 | ✔️ | ✔️ |||||
41
52
42
53
## Reasons
43
54
44
55
The following table provides additional information about why action isn't available and provides tips how to make the action available.
| 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)` .|
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.
11
11
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.
13
13
14
14
In order to use the Capabilities call feature for Windows, the first step is to obtain the Capabilities feature API object:
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.
11
11
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.
13
13
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
15
17
16
-
## Obtaining capabilities feature
17
18
```swift
18
19
let capabilitiesCallFeature =call.feature(Features.capabilities)
19
20
```
20
21
21
22
## Get the capabilities of the local participant
23
+
22
24
Capabilities object has the capabilities of the local participants and is of type `ParticipantCapability`. Properties of Capabilities include:
23
25
24
26
-*isAllowed* indicates if a capability can be used.
@@ -29,6 +31,7 @@ var capabilities = capabilitiesCallFeature.capabilities
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.
11
11
12
+
The feature enables you to register for an event listener to listen for capability changes.
12
13
13
-
The feature allows you to register for an event listener, to listen to capability changes.
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.
11
11
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.
13
13
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:
### How to best manage SDK connectivity to Microsoft infrastructure
47
+
### Manage SDK connectivity to Microsoft infrastructure
48
48
49
49
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:
0 commit comments