Partager via


Afficher l’état de transcription des appels sur le client

Remarque

L’état de la transcription d’appel est disponible uniquement à partir des réunions Teams. Actuellement, il n’existe aucune prise en charge de l’état de transcription des appels pour Les appels Azure Communication Services vers Azure Communication Services.

Quand vous utilisez la transcription d’appel, vous pouvez indiquer à vos utilisateurs qu’un appel est en cours de transcription. Voici comment procéder.

Prérequis

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 de 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();

Avertissement

Jusqu’à la version 1.1.0 et la version bêta 1.1.0-beta.1 d’Azure Communication Services Calling Android SDK, isTranscriptionActive et addOnIsTranscriptionActiveChangedListener font partie de l’objet Call. Pour les nouvelles versions bêta, ces API ont été déplacées comme une fonctionnalité étendue de Call tout comme décrit ci-dessous.

La transcription des appels est une fonctionnalité étendue de l’objet Call principal. Vous devez d’abord obtenir l’objet de la fonctionnalité de transcription :

TranscriptionCallFeature callTranscriptionFeature = call.feature(Features.TRANSCRIPTION);

Ensuite, pour vérifier si l’appel est en cours d’enregistrement, vérifiez la propriété isTranscriptionActive de callTranscriptionFeature. Elle retourne boolean.

boolean isTranscriptionActive = callTranscriptionFeature.isTranscriptionActive();

Vous pouvez également vous abonner aux modifications apportées à la transcription :

private void handleCallOnIsTranscriptionChanged(PropertyChangedEvent args) {
    boolean isTranscriptionActive = callTranscriptionFeature.isTranscriptionActive();
}

callTranscriptionFeature.addOnIsTranscriptionActiveChangedListener(handleCallOnIsTranscriptionChanged);

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. Ce guide de démarrage rapide utilise le framework SwiftUI. Vous devez donc définir le Langage sur Swift et définir Interface sur SwiftUI.

Vous n’allez pas créer de tests au cours de ce guide démarrage rapide. N’hésitez pas à décocher la case Inclure des tests.

Screenshot that shows the window for creating a project within Xcode.

Installer le package et les dépendances à l’aide de CocoaPods

  1. 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
    
  2. Exécutez pod install.

  3. Ouvrez .xcworkspace à l’aide de 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. Vous définissez la valeur associée sur une chaîne qui sera incluse dans la boîte de dialogue utilisée par le système pour demander l’accès de 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 importdéclaration en haut du fichier pour importer la AzureCommunicationCalling bibliothèque. En outre, importez AVFoundation. Vous en aurez 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")
        }
})

Avertissement

Jusqu’à la version 1.1.0 et la version bêta 1.1.0-beta.1 d’Azure Communication Services Calling iOS SDK, isTranscriptionActive fait partie de l’objet Call, et didChangeTranscriptionStatefait 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 tout comme décrit ci-dessous.

La transcription des appels est une fonctionnalité étendue de l’objet Call principal. Vous devez d’abord obtenir l’objet de la fonctionnalité de transcription :

let callTranscriptionFeature = call.feature(Features.transcription)

Ensuite, pour vérifier si l’appel est en cours d’enregistrement, vérifiez la isTranscriptionActive propriété de callTranscriptionFeature. Elle retourne Bool.

let isTranscriptionActive = callTranscriptionFeature.isTranscriptionActive;

Vous pouvez également vous abonner à l’enregistrement des modifications en implémentant le délégué TranscriptionCallFeatureDelegate sur votre classe avec l’événement didChangeTranscriptionState :

callTranscriptionFeature.delegate = self

// didChangeTranscriptionState is a member of TranscriptionCallFeatureDelegate
public func transcriptionCallFeature(_ transcriptionCallFeature: TranscriptionCallFeature, didChangeTranscriptionState args: PropertyChangedEventArgs) {
    let isTranscriptionActive = callTranscriptionFeature.isTranscriptionActive
}

Configurer votre système

Créer le projet Visual Studio

Pour une application UWP, 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 n’importe quel Kit de développement logiciel (SDK) Windows ultérieur à 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. 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.

Les étapes suivantes illustrent comment rechercher, télécharger et installer le package NuGet du Kit de développement logiciel (SDK) Calling :

  1. Ouvrez le Gestionnaire de package NuGet en sélectionnant Outils>NuGet Package Manager>Manage NuGet Packages pour la Solution.
  2. Sélectionnez Parcourir, puis entrez Azure.Communication.Calling.WindowsClient dans la zone de recherche.
  3. Vérifiez que la case Inclure la préversion est cochée.
  4. Sélectionnez le package Azure.Communication.Calling.WindowsClient, puis Azure.Communication.Calling.WindowsClient1.4.0-beta.1 ou une version plus récente.
  5. Cochez la case correspondant au projet Communication Services sous l’onglet droit.
  6. Sélectionnez le bouton Installer.

La transcription des appels est une fonctionnalité étendue de l’objet Call principal. Vous devez d’abord obtenir l’objet de la fonctionnalité de transcription :

TranscriptionCallFeature transcriptionFeature = call.Features.Transcription;

Ensuite, pour vérifier si l’appel est en cours d’enregistrement, vérifiez la propriété IsTranscriptionActive de transcriptionFeature. Elle retourne boolean.

boolean isTranscriptionActive = transcriptionFeature.isTranscriptionActive;

Vous pouvez également vous abonner aux modifications apportées à la transcription :

private async void Call__OnIsTranscriptionActiveChanged(object sender, PropertyChangedEventArgs args)
    boolean isTranscriptionActive = transcriptionFeature.IsTranscriptionActive();
}

transcriptionFeature.IsTranscriptionActiveChanged += Call__OnIsTranscriptionActiveChanged;

Étapes suivantes