Freigeben über


Abrufen Sie lokale Fähigkeiten

Verfügt ein Teilnehmer während eines Anrufs über die Berechtigung zum Aktivieren von Video, Aktivieren des Mikrofons oder Freigeben des Bildschirms?

Diese Berechtigungen sind Beispiele für Teilnehmerfunktionen, die Sie aus dem Funktions-API-Vorgang lernen können. Sie können Funktionen verwenden, um eine Benutzeroberfläche zu erstellen, die nur die Schaltflächen im Zusammenhang mit den Aktionen anzeigt, die der lokale Benutzer ausführen kann.

Voraussetzungen

Installieren des SDKs

Verwenden Sie den Befehl npm install, um die Common und Calling SDKs von Azure Communication Services für JavaScript zu installieren:

npm install @azure/communication-common --save
npm install @azure/communication-calling --save

Initialisieren erforderlicher Objekte

Für die meisten Anrufvorgänge ist eine CallClient-Instanz erforderlich. Wenn Sie eine neue CallClient-Instanz erstellen, können Sie diese mit benutzerdefinierten Optionen wie einer Logger-Instanz konfigurieren.

Mit der CallClient-Instanz können Sie eine CallAgent-Instanz erstellen, indem Sie den Agent für die Anruferstellung (createCallAgent) aufrufen. Durch diese Methode wird ein CallAgent-Instanzobjekt asynchron zurückgegeben.

Die Methode createCallAgent verwendet CommunicationTokenCredential als Argument, welches ein Benutzerzugriffstoken akzeptiert.

Sie können die Methode getDeviceManager für die Instanz CallClient verwenden, um auf deviceManager zuzugreifen.

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

Verwalten der SDK-Konnektivität mit der Microsoft-Infrastruktur

Die Call Agent-Instanz unterstützt Sie bei der Verwaltung von Anrufen (Annehmen oder Starten von Anrufen). Damit Ihr Calling SDK funktioniert, muss eine Verbindung mit der Microsoft-Infrastruktur hergestellt werden, um Benachrichtigungen über eingehende Anrufe zu erhalten und andere Anrufdetails zu koordinieren. Ihre Call Agent-Instanz kann zwei Status haben:

Connected (Verbunden) – Der connectionState-Wert Call Agent für Connected bedeutet, dass das Client-SDK verbunden ist und Benachrichtigungen von der Microsoft-Infrastruktur empfangen kann.

Getrennt: Der connectionState-Wert Call Agent für Disconnected weist darauf hin, dass das SDK nicht ordnungsgemäß verbunden werden kann. Call Agent muss neu erstellt werden.

  • invalidToken: Wenn ein Token abgelaufen oder ungültig ist, wird die Call Agent-Instanz mit diesem Fehler getrennt.
  • connectionIssue: Wenn ein Problem mit dem Client bei der Verbindung zur Microsoft-Infrastruktur auftritt, zeigt Call Agent nach vielen Versuchen den connectionIssue Fehler an.

Sie können überprüfen, ob Ihre lokale Call Agent-Instanz mit der Microsoft-Infrastruktur verbunden ist, indem Sie den aktuellen Wert der connectionState-Eigenschaft prüfen. Während eines aktiven Anrufs können Sie auf das connectionStateChanged-Ereignis lauschen, um zu bestimmen, ob sich der Call Agent-Status von Connected in Disconnected ändert.

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

Die Möglichkeit zum Anzeigen von Funktionen ist ein erweitertes Feature der Kern-API Call . Sie können die Funktionen des lokalen Teilnehmers im aktuellen Anruf abrufen.

Mit dem Feature können Sie sich für einen Ereignislistener registrieren, um Funktionsänderungen zu überwachen.

Fähigkeiten-Funktion erhalten

const capabilitiesFeature = this.call.feature(Features.Capabilities);

Abrufen der Fähigkeiten des lokalen Teilnehmers

Das Capabilities-Objekt verfügt über die Funktionen der lokalen Teilnehmer und ist vom Typ ParticipantCapabilities. Zu den Eigenschaften der Funktionen gehören:

  • isPresent gibt an, ob eine Fähigkeit vorhanden ist.
  • reason gibt den Grund für die Auflösung der Fähigkeit an.
const capabilities =  capabilitiesFeature.capabilities;

Abonnieren des capabilitiesChanged-Ereignisses:

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;
        }
        if(key === 'forbidOthersAudio' && value.reason != 'FeatureNotSupported') {
            (value.isPresent) ? this.setState({ canForbidOthersAudio: true }) : this.setState({ canForbidOthersAudio: false });
            continue;
        }
        if(key === 'forbidOthersVideo' && value.reason != 'FeatureNotSupported') {
            (value.isPresent) ? this.setState({ canForbidOthersVideo: true }) : this.setState({ canForbidOthersVideo: false });
            continue;
        }
    }
});

Verfügbar gemachte Fähigkeiten

  • turnVideoOn: Möglichkeit zum Aktivieren von Video
  • unmuteMic: Möglichkeit zum Senden von Audio
  • shareScreen: Möglichkeit zum Freigeben des Bildschirms
  • removeParticipant: Möglichkeit zum Entfernen eines Teilnehmers
  • hangUpForEveryOne: Möglichkeit zum Auflegen für alle
  • addCommunicationUser: Möglichkeit zum Hinzufügen eines Kommunikationsbenutzers
  • addTeamsUser: Möglichkeit zum Hinzufügen eines Teams-Benutzers
  • addPhoneNumber: Möglichkeit zum Hinzufügen einer Telefonnummer
  • manageLobby: Möglichkeit zum Verwalten des Wartebereichs (nur Beta)
  • spotlightParticipant: Möglichkeit, den Teilnehmer in den Fokus zu rücken (Spotlight) (nur Beta)
  • removeParticipantsSpotlight: Möglichkeit, den Teilnehmer aus dem Fokus zu rücken (Spotlight) (nur Beta)
  • startLiveCaptions: Möglichkeit, Liveuntertitel zu starten (nur Beta)
  • stopLiveCaptions: Möglichkeit zum Beenden von Liveuntertiteln (nur Beta)
  • raiseHand: Fähigkeit, Hand zu heben (nur Beta)
  • muteOthers: Möglichkeit zum Stummschalten von Remoteteilnehmern in der Besprechung
  • reaction: Fähigkeit, in der Besprechung zu reagieren (nur Beta)
  • viewAttendeeNames: ermöglicht das Anzeigen von Teilnehmernamen in der Besprechung
  • forbidOthersAudio: Möglichkeit, die Audioausgabe der Teilnehmenden in der Besprechung oder beim Gruppenanruf zu verbieten
  • forbidOthersVideo: Möglichkeit, die Videoausgabe der Teilnehmenden in der Besprechung oder beim Gruppenanruf zu verbieten

Installieren des SDKs

Wählen Sie Ihre Datei build.gradle auf Projektebene aus, und fügen Sie mavenCentral() der Liste der Repositorys unter buildscript und allprojects hinzu:

buildscript {
    repositories {
    ...
        mavenCentral()
    ...
    }
}
allprojects {
    repositories {
    ...
        mavenCentral()
    ...
    }
}

Fügen Sie anschließend in der Datei build.gradle auf Modulebene die folgenden Zeilen im Abschnitt dependencies hinzu:

dependencies {
    ...
    implementation 'com.azure.android:azure-communication-calling:1.0.0'
    ...
}

Initialisieren der erforderlichen Objekte

Zum Erstellen einer CallAgent-Instanz müssen Sie die createCallAgent-Methode für eine CallClient-Instanz aufrufen. Dieser Aufruf gibt asynchron ein CallAgent-Instanzobjekt zurück.

Die createCallAgent-Methode verwendet CommunicationUserCredential als Argument, womit ein Zugriffstoken gekapselt wird.

Um auf DeviceManager zuzugreifen, müssen Sie zuerst eine callAgent-Instanz erstellen. Anschließend können Sie die CallClient.getDeviceManager-Methode zum Abrufen von DeviceManager verwenden.

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

Zum Festlegen eines Anzeigenamens für den Anrufer verwenden Sie diese alternative Methode:

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

Die Möglichkeit zum Anzeigen von Funktionen ist ein erweitertes Feature der Kern-API Call . Sie können die Funktionen des lokalen Teilnehmers im aktuellen Anruf abrufen.

Mit dem Feature können Sie sich für einen Ereignislistener registrieren, um Funktionsänderungen zu überwachen.

Um die Funktionsaufruf-Funktion für Windows zu verwenden, besteht der erste Schritt darin, das API-Objekt für die Funktionsfähigkeit abzurufen.

Fähigkeiten-Funktion erhalten

private CapabilitiesCallFeature capabilitiesCallFeature;
capabilitiesCallFeature = call.feature(Features.CAPABILITIES);

Abrufen der Fähigkeiten des lokalen Teilnehmers

Das Capabilities-Objekt verfügt über die Funktionen der lokalen Teilnehmer und ist vom Typ ParticipantCapability. Zu den Eigenschaften der Funktionen gehören:

  • isAllowed gibt an, ob eine Funktion verwendet werden kann.
  • reason gibt den Grund für die Auflösung der Fähigkeit an.
List<ParticipantCapability> capabilities = capabilitiesCallFeature.getCapabilities();

Abonnieren des capabilitiesChanged-Ereignisses


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

Verfügbar gemachte Fähigkeiten

  • TurnVideoOn: Möglichkeit zum Aktivieren von Video
  • UnmuteMicrophone: Möglichkeit zum Aufheben der Stummschaltung des Mikrofons
  • ShareScreen: Möglichkeit zum Freigeben des Bildschirms
  • RemoveParticipant: Möglichkeit zum Entfernen eines Teilnehmers
  • HangUpForEveryone: Möglichkeit zum Auflegen für alle
  • AddCommunicationUser: Möglichkeit zum Hinzufügen eines Kommunikationsbenutzers
  • AddTeamsUser: Möglichkeit zum Hinzufügen eines Teams-Benutzers
  • AddPhoneNumber: Möglichkeit zum Hinzufügen einer Telefonnummer
  • ManageLobby: Möglichkeit zum Verwalten des Wartebereichs
  • SpotlightParticipant: Möglichkeit, den Teilnehmer in den Fokus zu rücken (Spotlight)
  • RemoveParticipantSpotlight: Möglichkeit, den Teilnehmer aus dem Fokus zu rücken (Spotlight)
  • BlurBackground: Möglichkeit zum Weichzeichnen des Hintergrunds
  • CustomBackground: Möglichkeit zum Anwenden eines benutzerdefinierten Hintergrunds
  • StartLiveCaptions: Möglichkeit, Liveuntertitel zu starten
  • RaiseHand: Möglichkeit, die Hand zu heben
  • Andere stummschalten: Möglichkeit zum sanften Stummschalten von Remoteteilnehmern im Meeting

Einrichten des Systems

Führen Sie die unten angegebenen Schritte aus, um Ihr System einzurichten.

Erstellen des Visual Studio-Projekts

Erstellen Sie für eine UWP-App (Universelle Windows-Plattform) in Visual Studio 2022 ein neues Projekt vom Typ Leere App (universelles Windows). Nachdem Sie den Projektnamen eingegeben haben, können Sie ein beliebiges Windows SDK höher als Version 10.0.17763.0 auswählen.

Für eine WinUI 3-App erstellen Sie ein neues Projekt mit der Vorlage Leere App, Gepackt (WinUI 3 in Desktop), um eine WinUI 3-Single-Page-Webanwendung einzurichten. Windows-App SDK-Version 1.3 oder höher ist erforderlich.

Installieren Sie das Paket und die Abhängigkeiten mit dem NuGet-Paket-Manager

Die Calling SDK-APIs und -Bibliotheken sind über ein NuGet-Paket öffentlich verfügbar.

So können Sie das NuGet-Paket für das Calling SDK suchen, herunterladen und installieren:

  1. Öffnen Sie den NuGet-Paket-Manager, indem Sie Tools>NuGet-Paket-Manager>NuGet-Pakete für Lösung verwalten auswählen.
  2. Wählen Sie Durchsuchen aus, und geben Sie dann Azure.Communication.Calling.WindowsClient in das Suchfeld ein.
  3. Stellen Sie sicher, dass das Kontrollkästchen Vorabversion einbeziehen aktiviert ist.
  4. Wählen Sie das Paket Azure.Communication.Calling.WindowsClient aus, und wählen Sie dann Azure.Communication.Calling.WindowsClient1.4.0-beta.1 oder eine neuere Version aus.
  5. Aktivieren Sie das Kontrollkästchen für das Azure Communication Services-Projekt im rechten Bereich.
  6. Wählen Sie Installieren aus.

Die Möglichkeit zum Anzeigen von Funktionen ist ein erweitertes Feature der Kern-API Call . Sie können die Funktionen des lokalen Teilnehmers im aktuellen Anruf abrufen.

Mit dem Feature können Sie sich für einen Ereignislistener registrieren, um Funktionsänderungen zu überwachen.

Um die Fähigkeitsaufruf-Funktion für Windows zu verwenden, besteht der erste Schritt darin, dass Sie das API-Objekt für die Funktion "Capabilities" abrufen:

Fähigkeiten-Funktion erhalten

private CapabilitiesCallFeature capabilitiesCallFeature;
capabilitiesCallFeature = call.Features.Capabilities;

Abrufen der Fähigkeiten des lokalen Teilnehmers

Das Capabilities-Objekt verfügt über die Funktionen der lokalen Teilnehmer und ist vom Typ ParticipantCapability. Zu den Eigenschaften der Funktionen gehören:

  • isAllowed gibt an, ob eine Funktion verwendet werden kann.
  • reason gibt den Grund für die Auflösung der Fähigkeit an.
var capabilities = capabilitiesCallFeature.Capabilities;

Abonnieren des capabilitiesChanged-Ereignisses

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

Verfügbar gemachte Fähigkeiten

  • TurnVideoOn: Möglichkeit zum Aktivieren von Video
  • UnmuteMicrophone: Möglichkeit zum Aufheben der Stummschaltung des Mikrofons
  • ShareScreen: Möglichkeit zum Freigeben des Bildschirms
  • RemoveParticipant: Möglichkeit zum Entfernen eines Teilnehmers
  • HangUpForEveryone: Möglichkeit zum Auflegen für alle
  • AddCommunicationUser: Möglichkeit zum Hinzufügen eines Kommunikationsbenutzers
  • AddTeamsUser: Möglichkeit zum Hinzufügen eines Teams-Benutzers
  • AddPhoneNumber: Möglichkeit zum Hinzufügen einer Telefonnummer
  • ManageLobby: Möglichkeit zum Verwalten des Wartebereichs
  • SpotlightParticipant: Möglichkeit, den Teilnehmer in den Fokus zu rücken (Spotlight)
  • RemoveParticipantSpotlight: Möglichkeit, den Teilnehmer aus dem Fokus zu rücken (Spotlight)
  • BlurBackground: Möglichkeit zum Weichzeichnen des Hintergrunds
  • CustomBackground: Möglichkeit zum Anwenden eines benutzerdefinierten Hintergrunds
  • StartLiveCaptions: Möglichkeit, Liveuntertitel zu starten
  • RaiseHand: Möglichkeit, die Hand zu heben
  • Andere stummschalten: Möglichkeit zum sanften Stummschalten von Remoteteilnehmern im Meeting

Einrichten des Systems

Führen Sie die unten angegebenen Schritte aus, um Ihr System einzurichten.

Erstellen des Xcode-Projekts

Erstellen Sie in Xcode ein neues iOS-Projekt, und wählen Sie die Vorlage Single View App aus. In diesem Artikel wird das SwiftUI-Framework verwendet. Legen Sie daher Sprache auf Swift und Schnittstelle auf SwiftUI fest.

Sie werden in diesem Artikel keine Tests erstellen. Sie können das Kontrollkästchen Tests einschließen deaktivieren.

Screenshot: Fenster zum Erstellen eines Projekts in Xcode.

Installieren des Pakets und der Abhängigkeiten mithilfe von CocoaPods

  1. Erstellen Sie eine Podfile-Datei für die Anwendung, wie in diesem Beispiel:

    platform :ios, '13.0'
    use_frameworks!
    target 'AzureCommunicationCallingSample' do
        pod 'AzureCommunicationCalling', '~> 1.0.0'
    end
    
  2. Führen Sie pod install aus.

  3. Öffnen Sie .xcworkspace mithilfe von Xcode.

Anfordern des Zugriffs auf das Mikrofon

Um auf das Mikrofon des Geräts zuzugreifen, müssen Sie die Liste der Informationseigenschaften Ihrer App mithilfe von NSMicrophoneUsageDescription aktualisieren. Legen Sie den zugehörigen Wert auf eine Zeichenfolge fest. Diese wird in den Dialog aufgenommen, mit dem das System den Zugriff beim Benutzer anfordert.

Klicken Sie mit der rechten Maustaste auf den Eintrag info.plist in der Projektstruktur, und wählen Sie dann Öffnen als>Quellcode aus. Fügen Sie im Abschnitt <dict> der obersten Ebene die folgenden Zeilen hinzu, und speichern Sie dann die Datei.

<key>NSMicrophoneUsageDescription</key>
<string>Need microphone access for VOIP calling.</string>

Einrichten des App-Frameworks

Öffnen Sie die Datei ContentView.swift Ihres Projekts. Fügen Sie am Anfang der Datei eine import-Deklaration hinzu, um die AzureCommunicationCalling-Bibliothek zu importieren. Importieren Sie außerdem AVFoundation. Sie ist für Audioberechtigungsanforderungen im Code erforderlich.

import AzureCommunicationCalling
import AVFoundation

Initialisieren von „CallAgent“

Um eine CallAgent-Instanz auf der Grundlage von CallClient zu erstellen, müssen Sie eine Methode vom Typ callClient.createCallAgent verwenden, die asynchron ein Objekt vom Typ CallAgent zurückgibt, nachdem es initialisiert wurde.

Übergeben Sie für die Erstellung eines Anrufclients ein Objekt vom Typ 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)
}

Übergeben Sie das von Ihnen erstellte CommunicationTokenCredential-Objekt an CallClient, und legen Sie den Anzeigenamen fest:

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")
        }
})

Die Möglichkeit zum Anzeigen von Funktionen ist ein erweitertes Feature der Kern-API Call . Sie können die Funktionen des lokalen Teilnehmers im aktuellen Anruf abrufen.

Mit dem Feature können Sie sich für einen Ereignislistener registrieren, um Funktionsänderungen zu überwachen.

Um die Funktionsaufruf-Funktion für Windows zu verwenden, besteht der erste Schritt darin, das API-Objekt für die Funktionsfähigkeit abzurufen.

Fähigkeiten-Funktion erhalten

let capabilitiesCallFeature =call.feature(Features.capabilities)

Abrufen der Fähigkeiten des lokalen Teilnehmers

Das Capabilities-Objekt verfügt über die Funktionen der lokalen Teilnehmer und ist vom Typ ParticipantCapability. Zu den Eigenschaften der Funktionen gehören:

  • isAllowed gibt an, ob eine Funktion verwendet werden kann.
  • reason gibt den Grund für die Auflösung der Fähigkeit an.
var capabilities = capabilitiesCallFeature.capabilities

Abonnieren des capabilitiesChanged-Ereignisses


capabilitiesCallFeature.delegate = CapabilitiesCallDelegate()

public class CapabilitiesCallDelegate : CapabilitiesCallFeatureDelegate
{
    public func capabilitiesCallFeature(_ capabilitiesCallFeature: CapabilitiesCallFeature, didChangeCapabilities args: CapabilitiesChangedEventArgs) {
        let changedReason = args.reason
        let changedCapabilities = args.changedCapabilities
    }
}

Verfügbar gemachte Fähigkeiten

  • TurnVideoOn: Möglichkeit zum Aktivieren von Video
  • UnmuteMicrophone: Möglichkeit zum Aufheben der Stummschaltung des Mikrofons
  • ShareScreen: Möglichkeit zum Freigeben des Bildschirms
  • RemoveParticipant: Möglichkeit zum Entfernen eines Teilnehmers
  • HangUpForEveryone: Möglichkeit zum Auflegen für alle
  • AddCommunicationUser: Möglichkeit zum Hinzufügen eines Kommunikationsbenutzers
  • AddTeamsUser: Möglichkeit zum Hinzufügen eines Teams-Benutzers
  • AddPhoneNumber: Möglichkeit zum Hinzufügen einer Telefonnummer
  • ManageLobby: Möglichkeit zum Verwalten des Wartebereichs
  • SpotlightParticipant: Möglichkeit, den Teilnehmer in den Fokus zu rücken (Spotlight)
  • RemoveParticipantSpotlight: Möglichkeit, den Teilnehmer aus dem Fokus zu rücken (Spotlight)
  • BlurBackground: Möglichkeit zum Weichzeichnen des Hintergrunds
  • CustomBackground: Möglichkeit zum Anwenden eines benutzerdefinierten Hintergrunds
  • StartLiveCaptions: Möglichkeit, Liveuntertitel zu starten
  • RaiseHand: Möglichkeit, die Hand zu heben
  • Andere stummschalten: Möglichkeit zum sanften Stummschalten von Remoteteilnehmern im Meeting

Unterstützte Anruftypen

In den folgenden Tabellen wird die Möglichkeit definiert, Funktionen mithilfe des Azure Communication Services Calling SDK abzurufen.

Identitäten und Anruftypen

Identitäten Teams-Besprechung Zimmer 1:1-Anruf Gruppenanruf 1:1 Teams-Interoperabilitätsanruf Teams-Gruppeninteropanruf
Communication Services-Benutzer ✔️ ✔️
Microsoft 365-Benutzer ✔️ ✔️

Ursachen

Die folgende Tabelle enthält zusätzliche Informationen dazu, warum die Aktion nicht verfügbar ist, und enthält Tipps zum Verfügbarmachen der Aktion.

`Reason` BESCHREIBUNG Lösung
Berechtigt Die Aktion ist aktiviert.
FunktionNichtAnwendbarFürDiesenAnruftyp Der Anruftyp blockiert die Aktion. Berücksichtigen Sie andere Arten von Aufrufen, wenn Sie diese Aktion benötigen. Die Anruftypen sind: 1:1-Anruf, Gruppenanruf, 1:1 Teams-Interoperabilitätsanruf, 1:1 Teams-Interoperabilitätsgruppenanruf, Raum und Besprechung.
ClientRestricted Die Laufzeitumgebung blockiert diese Aktion Heben Sie die Blockierung der Aktion auf Ihrem Gerät auf, indem Sie Das Betriebssystem, Browser, Plattform oder Hardware ändern. Sie finden die unterstützte Umgebung in unserer Dokumentation.
BenutzerRichtlinieEingeschränkt Die Microsoft 365-Benutzerrichtlinie blockiert die Aktion. Aktivieren Sie diese Aktion, indem Sie die Richtlinie ändern, die dem Organisator der Besprechung, Initiator des Anrufs oder Microsoft 365-Benutzers mit ACS SDK zugewiesen ist. Der Zielbenutzer hängt vom Aktionstyp ab. Erfahren Sie mehr über die Teams-Richtlinie in Teams. Der Teams-Administrator kann Richtlinien ändern.
Rollenbeschränkt Zugewiesene Rollen blockieren die Aktion. Höherstufen des Benutzers zu einer anderen Rolle, um die Aktion verfügbar zu machen.
FeatureNotSupported Das Feature Funktionen wird in diesem Anruftyp nicht unterstützt. Teilen Sie uns im Azure Feedback-Kanal mit, dass dieses Feature für diesen Anruftyp verfügbar sein soll.
MeetingRestricted Die Microsoft Teams-Besprechungsoption blockiert die Aktion. Der Organisator oder Mitorganisator des Teams muss die Besprechungsoption ändern, um diese Aktion zu aktivieren.
NotInitialized Das Feature „Funktionen“ wurde noch nicht initialisiert. Abonnieren Sie das Ereignis capabilitiesChanged auf this.call.feature(Features.Capabilities), um zu wissen, wann die Funktion initialisiert wird.
Nicht fähig Der Benutzertyp blockiert die Aktion. Die Aktion ist nur für bestimmte Identitäten aktiviert. Aktivieren Sie diese Aktion mithilfe der Microsoft 365-Identität.
Teams Premium Lizenz Eingeschränkt Microsoft 365-Benutzer muss die Microsoft Teams Premium-Lizenz zugewiesen haben. Aktivieren Sie diese Aktion, indem Sie Teams Premium-Lizenz dem Teams-Besprechungsorganisator oder dem Microsoft 365-Benutzer mit SDK zuweisen. Der Zielbenutzer hängt vom Aktionstyp ab. Microsoft 365-Administrator kann erforderliche Lizenz zuweisen.
Ausdrückliche Zustimmung erforderlich Die Zustimmung ist erforderlich, um die Aktion zuzulassen. Geben Sie die Zustimmung zur Aufzeichnung oder Transkription, indem Sie die Methode grantTeamsConsent() unter this.call.feature(Features.Recording) oder this.call.feature(Features.Transcription) aufrufen.

Nächste Schritte