Observer les fonctionnalités de l’utilisateur
Ai-je l’autorisation d’activer la vidéo, ai-je l’autorisation d’activer le micro, ai-je l’autorisation de partager l’écran ? Ces autorisations sont des exemples de fonctionnalités de participant que vous pouvez apprendre à partir de l’API de fonctionnalités. L’apprentissage des fonctionnalités peut aider à créer une interface utilisateur qui affiche uniquement les boutons liés aux actions auxquelles l’utilisateur local dispose des autorisations nécessaires.
Prérequis
- Compte Azure avec un abonnement actif. Créez un compte gratuitement.
- Une ressource Communication Services déployée. Créez une ressource Communication Services.
- Un jeton d’accès utilisateur pour activer le client appelant. Pour plus d’informations, consultez Créer et gérer des jetons d’accès.
- Facultatif : suivez le guide de démarrage rapide pour ajouter des appels vocaux à votre application
Installer le SDK
Utilisez la commande npm install
pour installer le SDK Azure Communication Services Common et le SDK Azure Communication Services Calling pour JavaScript :
npm install @azure/communication-common --save
npm install @azure/communication-calling --save
Initialiser les objets nécessaires
Une instance CallClient
est requise pour la plupart des opérations d’appel. Lorsque vous créez une instance CallClient
, vous pouvez la configurer avec des options personnalisées comme une instance Logger
.
Avec l’instance CallClient
, vous pouvez créer une instance CallAgent
en appelant createCallAgent
. Cette méthode renvoie un objet d’instance CallAgent
de manière asynchrone.
La méthode createCallAgent
utilise CommunicationTokenCredential
comme argument. Elle accepte un jeton d’accès utilisateur.
Vous pouvez utiliser la méthode getDeviceManager
sur l’instance CallClient
pour accéder à deviceManager
.
const { CallClient } = require('@azure/communication-calling');
const { AzureCommunicationTokenCredential} = require('@azure/communication-common');
const { AzureLogger, setLogLevel } = require("@azure/logger");
// Set the logger's log level
setLogLevel('verbose');
// Redirect log output to console, file, buffer, REST API, or whatever location you want
AzureLogger.log = (...args) => {
console.log(...args); // Redirect log output to console
};
const userToken = '<USER_TOKEN>';
callClient = new CallClient(options);
const tokenCredential = new AzureCommunicationTokenCredential(userToken);
const callAgent = await callClient.createCallAgent(tokenCredential, {displayName: 'optional Azure Communication Services user name'});
const deviceManager = await callClient.getDeviceManager()
Comment gérer au mieux la connectivité du SDK à l’infrastructure Microsoft
L’instance Call Agent
vous aide à gérer les appels (pour rejoindre ou démarrer des appels). Pour fonctionner, votre SDK d’appel doit se connecter à l’infrastructure Microsoft pour recevoir des notifications d’appels entrants et coordonner d’autres détails de l’appel. Votre Call Agent
a deux états possibles :
Connecté : un Call Agent
dont la valeur connectionStatue est égale à Connected
signifie que le SDK client est connecté et capable de recevoir des notifications de l’infrastructure Microsoft.
Déconnecté : un Call Agent
dont la valeur connectionStatue est égale à Disconnected
indique qu’un problème empêche le SDK de se connecter correctement. Call Agent
doit être recréé.
invalidToken
: si un jeton a expiré ou n’est pas valide, l’instanceCall Agent
se déconnecte avec cette erreur.connectionIssue
: en cas de problème de connexion du client à l’infrastructure Microsoft, après plusieurs tentatives,Call Agent
lève l’erreurconnectionIssue
.
Vous pouvez vérifier si votre Call Agent
local est connecté à l’infrastructure Microsoft en inspectant la valeur actuelle de la propriété connectionState
. Pendant un appel actif, vous pouvez écouter l’événement connectionStateChanged
pour déterminer si Call Agent
passe de l’état connecté à l’état déconnecté.
const connectionState = callAgentInstance.connectionState;
console.log(connectionState); // it may return either of 'Connected' | 'Disconnected'
const connectionStateCallback = (args) => {
console.log(args); // it will return an object with oldState and newState, each of having a value of either of 'Connected' | 'Disconnected'
// it will also return reason, either of 'invalidToken' | 'connectionIssue'
}
callAgentInstance.on('connectionStateChanged', connectionStateCallback);
La fonction « fonctionnalités » est une fonction étendue de l'API Call
de base qui vous permet d'obtenir les capacités du participant local à l'appel en cours.
La fonctionnalité vous permet de vous inscrire à un écouteur d’événements, d’écouter les modifications de fonctionnalité.
Inscrivez-vous à la fonctionnalité des fonctionnalités :
const capabilitiesFeature = this.call.feature(Features.Capabilities);
Obtenir les fonctionnalités du participant local : L’objet fonctionnalités a les fonctionnalités des participants locaux et est de type ParticipantCapabilities
. Les propriétés des fonctionnalités sont les suivantes :
- isPresent indique si une fonctionnalité est présente.
- reason indique la raison de résolution des capacités.
const capabilities = capabilitiesFeature.capabilities;
S’abonner à capabilitiesChanged
l’événement :
capabilitiesFeature.on('capabilitiesChanged', (capabilitiesChangeInfo) => {
for (const [key, value] of Object.entries(capabilitiesChangeInfo.newValue)) {
if(key === 'turnVideoOn' && value.reason != 'FeatureNotSupported') {
(value.isPresent) ? this.setState({ canOnVideo: true }) : this.setState({ canOnVideo: false });
continue;
}
if(key === 'unmuteMic' && value.reason != 'FeatureNotSupported') {
(value.isPresent) ? this.setState({ canUnMuteMic: true }) : this.setState({ canUnMuteMic: false });
continue;
}
if(key === 'shareScreen' && value.reason != 'FeatureNotSupported') {
(value.isPresent) ? this.setState({ canShareScreen: true }) : this.setState({ canShareScreen: false });
continue;
}
if(key === 'spotlightParticipant' && value.reason != 'FeatureNotSupported') {
(value.isPresent) ? this.setState({ canSpotlight: true }) : this.setState({ canSpotlight: false });
continue;
}
if(key === 'raiseHand' && value.reason != 'FeatureNotSupported') {
(value.isPresent) ? this.setState({ canRaiseHands: true }) : this.setState({ canRaiseHands: false });
continue;
}
if(key === 'muteOthers' && value.reason != 'FeatureNotSupported') {
(value.isPresent) ? this.setState({ canMuteOthers: true }) : this.setState({ canMuteOthers: false });
continue;
}
if(key === 'reaction' && value.reason != 'FeatureNotSupported') {
(value.isPresent) ? this.setState({ canReact: true }) : this.setState({ canReact: false });
continue;
}
}
});
Fonctionnalités exposées
- turnVideoOn: possibilité d’activer la vidéo
- unmuteMic: possibilité d’activer le micro
- shareScreen: possibilité de partager l’écran
- removeParticipant: possibilité de supprimer un participant
- hangUpForEveryOne: possibilité de raccrocher pour tout le monde
- addCommunicationUser: possibilité d’ajouter un utilisateur de communication
- addTeamsUser: possibilité d’ajouter un utilisateur Teams
- addPhoneNumber: possibilité d’ajouter un numéro de téléphone
- manageLobby: possibilité de gérer la salle d’attente (bêta uniquement)
- spotlightParticipant : possibilité de mettre à la une les participants (bêta uniquement)
- removeParticipantsSpotlight: possibilité de supprimer le participant à la une (bêta uniquement)
- startLiveCaptions: possibilité de démarrer des légendes en direct (bêta uniquement)
- stopLiveCaptions: possibilité d’arrêter les légendes en direct (bêta uniquement)
- raiseHand: possibilité de lever la main (bêta uniquement)
- muteOthers: capacité à désactiver le micro par voie logicielle pour les participants distants dans la réunion
- reaction: capacité à réagir dans la réunion (bêta uniquement)
- viewAttendeeNames : Possibilité d’afficher les noms des participants à la réunion
Installer le SDK
Recherchez votre fichier build.gradle
au niveau du projet et ajoutez mavenCentral()
à la liste des référentiels sous buildscript
et allprojects
:
buildscript {
repositories {
...
mavenCentral()
...
}
}
allprojects {
repositories {
...
mavenCentral()
...
}
}
Ensuite, dans votre fichier build.gradle
au niveau du module, ajoutez les lignes suivantes à la section dependencies
:
dependencies {
...
implementation 'com.azure.android:azure-communication-calling:1.0.0'
...
}
Initialiser les objets nécessaires
Pour créer une instance CallAgent
, vous devez appeler la méthode createCallAgent
sur une instance CallClient
. Cet appel retourne de façon asynchrone un objet d’instance CallAgent
.
La méthode createCallAgent
prend CommunicationUserCredential
en tant qu’argument, qui encapsule un jeton d’accès.
Pour accéder à DeviceManager
, vous devez d’abord créer une instance callAgent
. Vous pouvez ensuite utiliser la méthode CallClient.getDeviceManager
pour obtenir DeviceManager
.
String userToken = '<user token>';
CallClient callClient = new CallClient();
CommunicationTokenCredential tokenCredential = new CommunicationTokenCredential(userToken);
android.content.Context appContext = this.getApplicationContext(); // From within an activity, for instance
CallAgent callAgent = callClient.createCallAgent(appContext, tokenCredential).get();
DeviceManager deviceManager = callClient.getDeviceManager(appContext).get();
Pour définir un nom d’affichage pour l’appelant, utilisez cette autre méthode :
String userToken = '<user token>';
CallClient callClient = new CallClient();
CommunicationTokenCredential tokenCredential = new CommunicationTokenCredential(userToken);
android.content.Context appContext = this.getApplicationContext(); // From within an activity, for instance
CallAgentOptions callAgentOptions = new CallAgentOptions();
callAgentOptions.setDisplayName("Alice Bob");
DeviceManager deviceManager = callClient.getDeviceManager(appContext).get();
CallAgent callAgent = callClient.createCallAgent(appContext, tokenCredential, callAgentOptions).get();
La fonction « fonctionnalités » est une fonction étendue de l'API Call
de base qui vous permet d'obtenir les capacités du participant local à l'appel en cours.
La fonctionnalité vous permet de vous inscrire à un écouteur d’événements, d’écouter les modifications de fonctionnalité.
Pour utiliser la fonctionnalité d’appel Fonctionnalités pour Windows, la première étape consiste à obtenir l’objet API de fonctionnalité Fonctionnalités :
Obtention la fonctionnalité Fonctionnalités
private CapabilitiesCallFeature capabilitiesCallFeature;
capabilitiesCallFeature = call.feature(Features.CAPABILITIES);
Obtenir les Fonctionnalités du participant local
L’objet Fonctionnalités dispose des capacités des participants locaux et est de type ParticipantCapability
. Les propriétés des fonctionnalités sont les suivantes :
- isAllowed indique si une fonctionnalité peut être utilisée.
- reason indique la raison de résolution des capacités.
List<ParticipantCapability> capabilities = capabilitiesCallFeature.getCapabilities();
S’abonner à un événement capabilitiesChanged
capabilitiesCallFeature.addOnCapabilitiesChangedListener(this::OnCapabilitiesChanged);
private void OnCapabilitiesChanged(CapabilitiesChangedEvent args)
{
String event = String.format("Capabilities Event: %s", args.getReason().toString());
Log.i("CapabilitiesInfo", event);
for (ParticipantCapability capability : args.getChangedCapabilities())
{
Log.i("CapabilitiesInfo", capability.getType().toString() + " is " capability.getReason().toString());
}
}
Fonctionnalités exposées
- TurnVideoOn : possibilité d’activer la vidéo
- UnmuteMicrophone : possibilité d’activer le microphone
- ShareScreen : possibilité de partager l’écran
- RemoveParticipant : possibilité de supprimer un participant
- HangUpForEveryone : possibilité de raccrocher pour tout le monde
- AddCommunicationUser : possibilité d’ajouter un utilisateur de communication
- AddTeamsUser : possibilité d’ajouter un utilisateur Teams
- AddPhoneNumber : possibilité d’ajouter un numéro de téléphone
- ManageLobby : possibilité de gérer la salle d’attente
- SpotlightParticipant : possibilité de mettre en avant un participant
- RemoveParticipantSpotlight : possibilité d’annuler la mise en avant d’un participant
- BlurBackground : possibilité de flouter l’arrière-plan
- CustomBackground : possibilité d’appliquer un arrière-plan personnalisé
- StartLiveCaptions: possibilité d’enclencher le sous-titrage en direct
- RaiseHand : possibilité de lever la main
- MuteOthers : capacité à désactiver le micro par voie logicielle pour les participants distants dans la réunion
Configurer votre système
Effectuez les étapes suivantes pour configurer votre système.
Créer le projet Visual Studio
Pour une application de plateforme Windows universelle, dans Visual Studio 2022, créez un projet Application vide (Windows universel). Après avoir entré le nom du projet, n’hésitez pas à choisir un kit de développement logiciel (SDK) Windows d’une version ultérieure à 10.0.17763.0.
Pour une application WinUI 3, créez un projet avec le modèle Application vide, Empaquetée (WinUI 3 dans Desktop) pour configurer une application WinUI 3 monopage. Le SDK d’application Windows version 1.3 ou ultérieure est nécessaire.
Installer le package et les dépendances à l’aide du Gestionnaire de package NuGet
Les API et les bibliothèques du Kit de développement logiciel (SDK) Appel sont accessibles au public via un package NuGet.
Pour rechercher, télécharger et installer le package NuGet du SDK d’appel :
- Ouvrez le Gestionnaire de package NuGet en sélectionnant Outils>Gestionnaire de package NuGet>Gérer les packages NuGet pour la solution.
- Sélectionnez Parcourir, puis entrez Azure.Communication.Calling.WindowsClient dans la zone de recherche.
- Vérifiez que la case Inclure la préversion est cochée.
- Sélectionnez le package Azure.Communication.Calling.WindowsClient, puis Azure.Communication.Calling.WindowsClient 1.4.0-beta.1 ou une version plus récente.
- Cochez la case qui correspond au projet Azure Communication Services dans le volet de droite.
- Sélectionnez Installer.
La fonction « fonctionnalités » est une fonction étendue de l'API Call
de base qui vous permet d'obtenir les capacités du participant local à l'appel en cours.
La fonctionnalité vous permet de vous inscrire à un écouteur d’événements, d’écouter les modifications de fonctionnalité.
Pour utiliser la fonctionnalité d’appel Fonctionnalités pour Windows, la première étape consiste à obtenir l’objet API de fonctionnalité Fonctionnalités :
Obtention la fonctionnalité Fonctionnalités
private CapabilitiesCallFeature capabilitiesCallFeature;
capabilitiesCallFeature = call.Features.Capabilities;
Obtenir les Fonctionnalités du participant local
L’objet Fonctionnalités dispose des capacités des participants locaux et est de type ParticipantCapability
. Les propriétés des fonctionnalités sont les suivantes :
- isAllowed indique si une fonctionnalité peut être utilisée.
- reason indique la raison de résolution des capacités.
var capabilities = capabilitiesCallFeature.Capabilities;
S’abonner à un événement capabilitiesChanged
capabilitiesCallFeature.CapabilitiesChanged += Call__OnCapabilitiesChangedAsync;
private async void Call__OnCapabilitiesChangedAsync(object sender, CapabilitiesChangedEventArgs args)
{
Trace.WriteLine(args.Reason.ToString());
foreach (var capability in args.ChangedCapabilities)
{
//Prints out capability kind and resolution reason in console
Trace.WriteLine(capability.Kind.ToString() + " is " + capability.Reason.ToString());
}
}
Fonctionnalités exposées
- TurnVideoOn : possibilité d’activer la vidéo
- UnmuteMicrophone : possibilité d’activer le microphone
- ShareScreen : possibilité de partager l’écran
- RemoveParticipant : possibilité de supprimer un participant
- HangUpForEveryone : possibilité de raccrocher pour tout le monde
- AddCommunicationUser : possibilité d’ajouter un utilisateur de communication
- AddTeamsUser : possibilité d’ajouter un utilisateur Teams
- AddPhoneNumber : possibilité d’ajouter un numéro de téléphone
- ManageLobby : possibilité de gérer la salle d’attente
- SpotlightParticipant : possibilité de mettre en avant un participant
- RemoveParticipantSpotlight : possibilité d’annuler la mise en avant d’un participant
- BlurBackground : possibilité de flouter l’arrière-plan
- CustomBackground : possibilité d’appliquer un arrière-plan personnalisé
- StartLiveCaptions: possibilité d’enclencher le sous-titrage en direct
- RaiseHand : possibilité de lever la main
- MuteOthers : capacité à désactiver le micro par voie logicielle pour les participants distants dans la réunion
Configurer votre système
Effectuez les étapes suivantes pour configurer votre système.
Créer le projet Xcode
Dans Xcode, créez un projet iOS et sélectionnez le modèle Single View App. Cet article utilise l’infrastructure SwiftUI. Vous devez donc définir Langage sur Swift et Interface sur SwiftUI.
Vous n’allez pas créer de tests dans cet article. N’hésitez pas à désactiver la case Inclure des tests.
Installer le package et les dépendances à l’aide de CocoaPods
Créez un Podfile pour votre application, comme cet exemple :
platform :ios, '13.0' use_frameworks! target 'AzureCommunicationCallingSample' do pod 'AzureCommunicationCalling', '~> 1.0.0' end
Exécutez
pod install
.Ouvrez
.xcworkspace
en utilisant Xcode.
Demander l’accès au microphone
Pour accéder au microphone de l’appareil, vous devez mettre à jour la liste des propriétés d’informations de votre application à l’aide de NSMicrophoneUsageDescription
. Définissez la valeur associée à une chaîne qui est incluse dans la boîte de dialogue utilisée par le système pour demander l’accès à l’utilisateur.
Cliquez avec le bouton droit sur l’entrée Info.plist de l’arborescence du projet, puis sélectionnez Ouvrir en tant que>Code source. Ajoutez les lignes suivantes à la section <dict>
tout en haut, puis enregistrez le fichier.
<key>NSMicrophoneUsageDescription</key>
<string>Need microphone access for VOIP calling.</string>
Configurer le framework d’application
Ouvrez le fichier ContentView.swift
de votre projet. Ajoutez une déclaration import
en haut du fichier pour importer la bibliothèque AzureCommunicationCalling
. En outre, importez AVFoundation
. Vous en avez besoin pour les demandes d’autorisations audio dans le code.
import AzureCommunicationCalling
import AVFoundation
Initialiser CallAgent
Pour créer une instance de CallAgent
à partir de CallClient
, vous devez utiliser une méthode callClient.createCallAgent
qui retourne de manière asynchrone un objet CallAgent
après qu’il a été initialisé.
Pour créer un client d’appel, transmettez un objet CommunicationTokenCredential
:
import AzureCommunication
let tokenString = "token_string"
var userCredential: CommunicationTokenCredential?
do {
let options = CommunicationTokenRefreshOptions(initialToken: token, refreshProactively: true, tokenRefresher: self.fetchTokenSync)
userCredential = try CommunicationTokenCredential(withOptions: options)
} catch {
updates("Couldn't created Credential object", false)
initializationDispatchGroup!.leave()
return
}
// tokenProvider needs to be implemented by Contoso, which fetches a new token
public func fetchTokenSync(then onCompletion: TokenRefreshOnCompletion) {
let newToken = self.tokenProvider!.fetchNewToken()
onCompletion(newToken, nil)
}
Transmettez l’objet CommunicationTokenCredential
que vous avez créé à CallClient
et définissez le nom complet :
self.callClient = CallClient()
let callAgentOptions = CallAgentOptions()
options.displayName = " iOS Azure Communication Services User"
self.callClient!.createCallAgent(userCredential: userCredential!,
options: callAgentOptions) { (callAgent, error) in
if error == nil {
print("Create agent succeeded")
self.callAgent = callAgent
} else {
print("Create agent failed")
}
})
La fonction « fonctionnalités » est une fonction étendue de l'API Call
de base qui vous permet d'obtenir les capacités du participant local à l'appel en cours.
La fonctionnalité vous permet de vous inscrire à un écouteur d’événements, d’écouter les modifications de fonctionnalité.
Pour utiliser la fonctionnalité d’appel Fonctionnalités pour Windows, la première étape consiste à obtenir l’objet API de fonctionnalité Fonctionnalités :
Obtention la fonctionnalité Fonctionnalités
let capabilitiesCallFeature =call.feature(Features.capabilities)
Obtenir les Fonctionnalités du participant local
L’objet Fonctionnalités dispose des capacités des participants locaux et est de type ParticipantCapability
. Les propriétés des fonctionnalités sont les suivantes :
- isAllowed indique si une fonctionnalité peut être utilisée.
- reason indique la raison de résolution des capacités.
var capabilities = capabilitiesCallFeature.capabilities
S’abonner à un événement capabilitiesChanged
capabilitiesCallFeature.delegate = CapabilitiesCallDelegate()
public class CapabilitiesCallDelegate : CapabilitiesCallFeatureDelegate
{
public func capabilitiesCallFeature(_ capabilitiesCallFeature: CapabilitiesCallFeature, didChangeCapabilities args: CapabilitiesChangedEventArgs) {
let changedReason = args.reason
let changedCapabilities = args.changedCapabilities
}
}
Fonctionnalités exposées
- TurnVideoOn : possibilité d’activer la vidéo
- UnmuteMicrophone : possibilité d’activer le microphone
- ShareScreen : possibilité de partager l’écran
- RemoveParticipant : possibilité de supprimer un participant
- HangUpForEveryone : possibilité de raccrocher pour tout le monde
- AddCommunicationUser : possibilité d’ajouter un utilisateur de communication
- AddTeamsUser : possibilité d’ajouter un utilisateur Teams
- AddPhoneNumber : possibilité d’ajouter un numéro de téléphone
- ManageLobby : possibilité de gérer la salle d’attente
- SpotlightParticipant : possibilité de mettre en avant un participant
- RemoveParticipantSpotlight : possibilité d’annuler la mise en avant d’un participant
- BlurBackground : possibilité de flouter l’arrière-plan
- CustomBackground : possibilité d’appliquer un arrière-plan personnalisé
- StartLiveCaptions: possibilité d’enclencher le sous-titrage en direct
- RaiseHand : possibilité de lever la main
- MuteOthers : capacité à désactiver le micro par voie logicielle pour les participants distants dans la réunion
Types d’appels pris en charge
La fonctionnalité est actuellement prise en charge uniquement pour le type d’appel salles Azure Communication Services et le type d’appel de réunion teams
Motifs
Le tableau suivant fournit des informations supplémentaires sur la raison pour laquelle l’action n’est pas disponible et fournit des conseils pour rendre l’action disponible.
Motif | Description | Résolution |
---|---|---|
Capable | L’action est autorisée. | |
CapabilityNotApplicableForTheCallType | Le type d’appel bloque l’action. | Envisagez d’autres types d’appel si vous avez besoin de cette action. Les types d’appels sont les suivants : appel de 1:1, appel de groupe, appel d’interopérabilité Teams 1:1, appel de groupe d’interopérabilité Teams, salle et réunion. |
ClientRestricted | L’environnement d’exécution bloque cette action | Débloquez l’action sur votre appareil en modifiant le système d’exploitation, les navigateurs, la plateforme ou le matériel. Vous trouverez l’environnement pris en charge dans notre documentation. |
UserPolicyRestricted | La stratégie de l’utilisateur Microsoft 365 bloque l’action. | Activez cette action en modifiant la stratégie affectée à l’organisateur de la réunion, l’initiateur de l’appel ou l’utilisateur Microsoft 365 à l’aide du Kit de développement logiciel (SDK) ACS. L’utilisateur cible dépend du type d’action. En savoir plus sur la stratégie Teams dans Teams. L’administrateur Teams peut modifier les stratégies. |
RoleRestricted | Le rôle affecté bloque l’action. | Promouvoir l’utilisateur à un rôle différent pour rendre l’action disponible. |
FeatureNotSupported | La fonctionnalité de fonctionnalités n’est pas prise en charge dans ce type d’appel. | Indiquez-nous dans le canal de commentaires Azure que vous souhaitez disposer de cette fonctionnalité pour ce type d’appel. |
MeetingRestricted | L’option de réunion Teams bloque l’action. | L’organisateur de réunion Teams ou la co-organisateur doit modifier l’option de réunion pour activer cette action. |
NotInitialized | La fonctionnalité de fonctionnalités n’est pas encore initialisée. | Abonnez-vous aux capabilitiesChanged d’événements sur this.call.feature(Features.Capabilities) pour savoir quand la fonctionnalité est initialisée. |
NotCapable | Le type d’utilisateur bloque l’action. | L’action n’est autorisée qu’à un type spécifique d’identité. Activez cette action à l’aide de l’identité Microsoft 365. |
TeamsPremiumLicenseRestricted | L’utilisateur Microsoft 365 doit disposer d’une licence Teams Premium attribuée. | Activez cette action en affectant une licence Teams Premium à l’organisateur de réunion Teams ou à l’utilisateur Microsoft 365 à l’aide du Kit de développement logiciel (SDK). L’utilisateur cible dépend du type d’action. L’administrateur Microsoft 365 peut attribuer une licence requise. |
ExplicitConsentRequired | Le consentement est requis pour autoriser l’action. | Fournissez le consentement pour l’enregistrement ou la transcription en appelant la méthode grantTeamsConsent() sous this.call.feature(Features.Recording) ou this.call.feature(Features.Transcription) . |