Gérer l’enregistrement d’appel sur le client
Important
Les fonctionnalités décrites dans cet article sont actuellement en préversion publique. Cette préversion est fournie sans contrat de niveau de service et n’est pas recommandée pour les charges de travail de production. Certaines fonctionnalités peuvent être limitées ou non prises en charge. Pour plus d’informations, consultez Conditions d’Utilisation Supplémentaires relatives aux Évaluations Microsoft Azure.
L’enregistrement d’appel permet à vos utilisateurs d’enregistrer les appels qu’ils effectuent avec Azure Communication Services. Dans cet article, vous allez apprendre à gérer l’enregistrement côté client. Avant de commencer, vous devez configurer l’enregistrement côté serveur.
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 : avoir suivi le guide de démarrage rapide permettant d’ajouter l’appel vocal à votre application.
Support
Les tableaux suivants définissent la prise en charge de l’enregistrement dans Azure Communication Services.
Identités et types d’appels
Les tableaux suivants montrent la prise en charge de l’enregistrement pour un type d’appel et une identité spécifiques.
Identities | Réunion Teams | Salle | Appel 1:1 | Appel de groupe | Appel d’interopérabilité Teams 1:1 | Appel d’interopérabilité Teams de groupe |
---|---|---|---|---|---|---|
Utilisateur de Communication Services | ✔️[1] | ✔️[2] | ✔️[2] | ✔️[2] | ✔️[1] | ✔️[1][2] |
Utilisateur Microsoft 365 | ✔️[1] | ✔️[2] | ✔️[1] | ✔️[1][2] |
[1] Ces types d’appel prennent en charge l’enregistrement cloud et de conformité Teams.
[2] Ces types d’appel prennent en charge l’enregistrement Azure Communication Services.
Opérations
Les tableaux suivants montrent la prise en charge des API individuelles dans le Kit de développement logiciel (SDK) d’appel pour des types d’identité individuels.
Opérations | Utilisateur de Communication Services | Utilisateur Microsoft 365 |
---|---|---|
Recevoir une notification indiquant que l’enregistrement est commencé ou arrêté | ✔️ | ✔️ |
Obtenir l’état de l’enregistrement | ✔️ | ✔️ |
Recevoir une notification indiquant que l’enregistrement est disponible | ✔️[1] | ✔️[1] |
Découvrir si un consentement explicite est requis | ✔️[2] | ✔️[2] |
Donner un consentement explicite pour être enregistré | ✔️[2] | ✔️[2] |
[1] L’utilisateur n’est pas informé que l’enregistrement est disponible. Vous pouvez obtenir un enregistrement cloud Teams via l’API Microsoft Graph. Vous pouvez vous abonner à une notification dans Azure Communication Services lorsque l’enregistrement est disponible.
[2] Cette fonctionnalité est disponible uniquement dans les réunions Teams et les appels d’interopérabilité Teams de groupe.
SDK
Les tableaux suivants montrent la prise en charge de l’enregistrement dans les kits SDK Azure Communication Services individuels.
Platforms | web | Interface utilisateur web | iOS | Interface utilisateur iOS | Android | Interface utilisateur Android | Windows |
---|---|---|---|---|---|---|---|
Est pris en charge | ✔️ | ✔️[1] | ✔️[1] | ✔️[1] | ✔️[1] | ✔️[1] | ✔️[1] |
[1] Ces kits SDK ne prennent pas en charge les consentements explicites.
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);
Remarque
Cette API est fournie en tant que préversion pour les développeurs et peut être modifiée en fonction des commentaires que nous recevons. N’utilisez pas cette API dans un environnement de production. Pour utiliser cette API, utilisez la version bêta du kit de développement logiciel (SDK) Calling Azure Communication Services pour le web.
Enregistrement cloud
L’enregistrement des appels est une fonctionnalité étendue de l’API Appel principale. Vous devez d’abord importer les fonctionnalités d’appel à partir du SDK Calling :
import { Features} from "@azure/communication-calling";
Vous pouvez ensuite récupérer l’objet API des fonctionnalités d’enregistrement à partir de l’instance d’appel :
const callRecordingApi = call.feature(Features.Recording);
Pour vérifier si l’appel est en train d’être enregistré, inspectez la propriété isRecordingActive
de callRecordingApi
. Elle retourne Boolean
.
const isRecordingActive = callRecordingApi.isRecordingActive;
Vous pouvez également vous abonner à l’enregistrement des modifications :
const isRecordingActiveChangedHandler = () => {
console.log(callRecordingApi.isRecordingActive);
};
callRecordingApi.on('isRecordingActiveChanged', isRecordingActiveChangedHandler);
Vous pouvez obtenir la liste des enregistrements à l’aide de la propriété recordings
de callRecordingApi
. Cela retourne RecordingInfo[]
qui contient l’état actuel de l’enregistrement cloud.
const recordings = callRecordingApi.recordings;
recordings.forEach(r => {
console.log("State: ${r.state}");
Vous pouvez également vous abonner à recordingsUpdated
et obtenir une collection d’enregistrements mis à jour. Cet événement se déclenche chaque fois qu’il existe une mise à jour d’enregistrement.
const cloudRecordingsUpdatedHandler = (args: { added: SDK.RecordingInfo[], removed: SDK.RecordingInfo[]}) => {
console.log('Recording started by: ');
args.added?.forEach(a => {
console.log('State: ${a.state}');
});
console.log('Recording stopped by: ');
args.removed?.forEach(r => {
console.log('State: ${r.state}');
});
};
callRecordingApi.on('recordingsUpdated', cloudRecordingsUpdatedHandler );
Consentement explicite
Lorsque votre réunion ou appel Teams est configuré pour exiger un consentement explicite pour l’enregistrement et la transcription, vous devez recueillir le consentement de tous les participants de l’appel avant de pouvoir les enregistrer. Vous pouvez donner un consentement de manière proactive lorsque vous rejoignez la réunion ou de manière réactive lorsque l’enregistrement commence. Tant qu’un consentement explicite n’est pas donné, l’audio, la vidéo et le partage d’écran des participants sont désactivés pendant l’enregistrement.
Vous pouvez vérifier si l’enregistrement de la réunion nécessite un consentement explicite via la propriété isTeamsConsentRequired
. Si la valeur est définie sur true
, un consentement explicite est requis pour le call
.
const isConsentRequired = callRecordingApi.isTeamsConsentRequired;
Si vous avez déjà obtenu le consentement de l’utilisateur pour l’enregistrement, vous pouvez appeler la méthode grantTeamsConsent()
pour indiquer le consentement explicite au service. Ce consentement est valide pour une session call
uniquement, les utilisateurs doivent redonner leur consentement s’ils rejoignent la réunion.
callRecordingApi.grantTeamsConsent();
Les tentatives d’activation de l’audio, de la vidéo ou du partage d’écran échouent lorsque l’enregistrement est actif. Le consentement explicite est requis, mais n’est pas encore donné. Vous pouvez reconnaître ce cas de figure en vérifiant la propriété reason
de la classe ParticipantCapabilities
pour les fonctionnalités turnVideoOn
, unmuteMic
et shareScreen
. Vous trouverez ces fonctionnalités dans call.feature(Features.Capabilities)
. Ces fonctionnalités retournent la raison ExplicitConsentRequired
puisque les utilisateurs doivent donner un consentement explicite.
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();
Enregistrer les appels
Remarque
Cette API est fournie en tant que préversion pour les développeurs et peut être modifiée en fonction des commentaires que nous recevons. N’utilisez pas cette API dans un environnement de production. Pour utiliser cette API, utilisez la version bêta du kit de développement logiciel (SDK) Calling Azure Communication Services pour Android.
L’enregistrement des appels est une fonctionnalité étendue de l’objet Call
principal.
Avertissement
Jusqu’à la version 1.1.0 et la version bêta 1.1.0-beta.1 du SDK Calling Azure Communication Services pour Android, isRecordingActive
et addOnIsRecordingActiveChangedListener
faisaient partie de l’objet Call
. Pour les nouvelles versions bêta, ces API ont été déplacées comme une fonctionnalité étendue de Call
.
Vous devez d’abord obtenir l’objet de la fonctionnalité d’enregistrement :
RecordingCallFeature callRecordingFeature = call.feature(Features.RECORDING);
Ensuite, pour vérifier si l’appel est en train d’être enregistré, inspectez la propriété isRecordingActive
de callRecordingFeature
. Elle retourne boolean
.
boolean isRecordingActive = callRecordingFeature.isRecordingActive();
Vous pouvez également vous abonner à l’enregistrement des modifications :
private void handleCallOnIsRecordingChanged(PropertyChangedEvent args) {
boolean isRecordingActive = callRecordingFeature.isRecordingActive();
}
callRecordingFeature.addOnIsRecordingActiveChangedListener(handleCallOnIsRecordingChanged);
Si vous souhaitez démarrer l’enregistrement à partir de votre application, suivez d'abord la présentation de l’enregistrement d’appel pour savoir comment configurer l’enregistrement d’appel.
Une fois que vous avez configuré l’enregistrement d’appel sur votre serveur, à partir de votre application Android, vous devez obtenir la valeur ServerCallId
de l’appel, puis l’envoyer à votre serveur pour démarrer le processus d’enregistrement. Vous trouverez la valeur ServerCallId
à l’aide de getServerCallId()
à partir de la classe CallInfo
. Vous trouverez la classe CallInfo
dans l’objet de classe à l’aide de getInfo()
.
try {
String serverCallId = call.getInfo().getServerCallId().get();
// Send serverCallId to your recording server to start the call recording.
} catch (ExecutionException | InterruptedException e) {
} catch (UnsupportedOperationException unsupportedOperationException) {
}
Lorsque vous démarrez l’enregistrement à partir du serveur, l’événement handleCallOnIsRecordingChanged
se déclenche et la valeur de callRecordingFeature.isRecordingActive()
est true
.
Tout comme le démarrage de l’enregistrement d’appel, si vous souhaitez arrêter l’enregistrement d’appel, vous devez obtenir ServerCallId
et l’envoyer à votre serveur d’enregistrement afin qu’il puisse arrêter l’enregistrement d’appel :
try {
String serverCallId = call.getInfo().getServerCallId().get();
// Send serverCallId to your recording server to stop the call recording.
} catch (ExecutionException | InterruptedException e) {
} catch (UnsupportedOperationException unsupportedOperationException) {
}
Lorsque vous arrêtez l’enregistrement à partir du serveur, l’événement handleCallOnIsRecordingChanged
se déclenche et la valeur de callRecordingFeature.isRecordingActive()
est false
.
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")
}
})
Enregistrer les appels
Remarque
Cette API est fournie en tant que préversion pour les développeurs et peut être modifiée en fonction des commentaires que nous recevons. N’utilisez pas cette API dans un environnement de production. Pour utiliser cette API, utilisez la version bêta du kit de développement logiciel (SDK) Calling Azure Communication Services pour iOS.
L’enregistrement des appels est une fonctionnalité étendue de l’objet Call
principal.
Avertissement
Jusqu’à la version 1.1.0 et la version bêta 1.1.0-beta.1 du SDK Calling Azure Communication Services pour iOS, isRecordingActive
faisait partie de l’objet Call
, et didChangeRecordingState
faisait partie du délégué CallDelegate
. Pour les nouvelles versions bêta, ces API ont été déplacées comme une fonctionnalité étendue de Call
.
Vous devez d’abord obtenir l’objet de la fonctionnalité d’enregistrement :
let callRecordingFeature = call.feature(Features.recording)
Ensuite, pour vérifier si l’appel est en train d’être enregistré, inspectez la propriété isRecordingActive
de callRecordingFeature
. Elle retourne Bool
.
let isRecordingActive = callRecordingFeature.isRecordingActive;
Vous pouvez également vous abonner aux modifications d’enregistrement en implémentant le délégué RecordingCallFeatureDelegate
sur votre classe avec l’événement didChangeRecordingState
:
callRecordingFeature.delegate = self
// didChangeRecordingState is a member of RecordingCallFeatureDelegate
public func recordingCallFeature(_ recordingCallFeature: RecordingCallFeature, didChangeRecordingState args: PropertyChangedEventArgs) {
let isRecordingActive = recordingFeature.isRecordingActive
}
Si vous souhaitez démarrer l’enregistrement à partir de votre application, suivez d'abord la présentation de l’enregistrement d’appel pour savoir comment configurer l’enregistrement d’appel.
Une fois que vous avez configuré l’enregistrement d’appel sur votre serveur, à partir de votre application iOS, vous devez obtenir la valeur ServerCallId
de l’appel, puis l’envoyer à votre serveur pour démarrer le processus d’enregistrement. Vous trouverez la valeur ServerCallId
à l’aide de getServerCallId()
à partir de la classe CallInfo
. Vous trouverez la classe CallInfo
dans l’objet de classe à l’aide de getInfo()
.
// Send serverCallId to your recording server to start the call recording.
let serverCallId = call.info.getServerCallId(){ (serverId, error) in }
Lorsque vous démarrez l’enregistrement à partir du serveur, l’événement didChangeRecordingState
se déclenche et la valeur de recordingFeature.isRecordingActive
est true
.
Tout comme le démarrage de l’enregistrement d’appel, si vous souhaitez arrêter l’enregistrement d’appel, vous devez obtenir ServerCallId
et l’envoyer à votre serveur d’enregistrement afin qu’il puisse arrêter l’enregistrement d’appel :
// Send serverCallId to your recording server to stop the call recording.
let serverCallId = call.info.getServerCallId(){ (serverId, error) in }
Lorsque vous arrêtez l’enregistrement à partir du serveur, l’événement didChangeRecordingState
se déclenche et la valeur de recordingFeature.isRecordingActive
est false
.
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.
Enregistrer les appels
L’enregistrement des appels est une fonctionnalité étendue de l’objet Call
principal. Vous devez d’abord obtenir l’objet de la fonctionnalité d’enregistrement :
RecordingCallFeature recordingFeature = call.Features.Recording;
Ensuite, pour vérifier si l’appel est en train d’être enregistré, inspectez la propriété IsRecordingActive
de recordingFeature
. Elle retourne boolean
.
boolean isRecordingActive = recordingFeature.IsRecordingActive;
Vous pouvez également vous abonner à l’enregistrement des modifications :
private async void Call__OnIsRecordingActiveChanged(object sender, PropertyChangedEventArgs args)
boolean isRecordingActive = recordingFeature.IsRecordingActive;
}
recordingFeature.IsRecordingActiveChanged += Call__OnIsRecordingActiveChanged;
Enregistrement de conformité
L’enregistrement de conformité est un enregistrement basé sur la stratégie Microsoft Teams. Vous pouvez l’activer à l’aide du didacticiel suivant : Présentation de l’enregistrement basé sur une stratégie Teams pour les appels.
L’enregistrement basé sur une stratégie démarre automatiquement lorsqu’un utilisateur qui a la stratégie rejoint un appel. Pour obtenir une notification d’Azure Communication Services sur l’enregistrement, utilisez le code suivant :
const callRecordingApi = call.feature(Features.Recording);
const isComplianceRecordingActive = callRecordingApi.isRecordingActive;
const isComplianceRecordingActiveChangedHandler = () => {
console.log(callRecordingApi.isRecordingActive);
};
callRecordingApi.on('isRecordingActiveChanged', isComplianceRecordingActiveChangedHandler);
Vous pouvez également implémenter l’enregistrement de conformité en utilisant un bot d’enregistrement personnalisé. Consultez l’exemple GitHub.