Udostępnij przez


Uzyskaj lokalne możliwości

Czy podczas rozmowy uczestnik ma uprawnienia do włączania wideo, włączania mikrofonu lub udostępniania ekranu?

Te uprawnienia są przykładami możliwości uczestnika, które można uzyskać z API możliwości. Za pomocą funkcji można utworzyć interfejs użytkownika, który wyświetla tylko przyciski związane z akcjami, które użytkownik lokalny może wykonać.

Wymagania wstępne

Instalacja zestawu SDK

Użyj polecenia npm install aby zainstalować zestaw SDK Common and Calling dla usług Azure Communication Services w języku JavaScript.

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

Inicjowanie wymaganych obiektów

Wystąpienie CallClient jest wymagane w przypadku większości operacji wywołania. Podczas tworzenia nowego CallClient wystąpienia można skonfigurować je za pomocą opcji niestandardowych, takich jak Logger wystąpienie.

CallClient Za pomocą wystąpienia można utworzyć CallAgent wystąpienie, wywołując element createCallAgent. Ta metoda asynchronicznie zwraca instancję obiektu CallAgent.

Metoda createCallAgent używa CommunicationTokenCredential jako argumentu. Akceptuje token dostępu użytkownika.

Aby uzyskać dostęp do getDeviceManager, możesz użyć metody CallClient na wystąpieniu 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()

Zarządzanie łącznością zestawu SDK z infrastrukturą firmy Microsoft

Wystąpienie Call Agent pomaga zarządzać połączeniami (aby dołączać lub rozpoczynać połączenia). Aby można było pracować z zestawem SDK wywołującym, należy połączyć się z infrastrukturą firmy Microsoft, aby otrzymywać powiadomienia o połączeniach przychodzących i koordynować inne szczegóły połączeń. Twój Call Agent ma dwa możliwe stany:

PołączonoCall Agent wartość Connected connectionStatue oznacza, że zestaw SDK klienta jest połączony i może odbierać powiadomienia z infrastruktury firmy Microsoft.

Rozłączono — wartość statusu połączenia Call Agent wskazuje na problem uniemożliwiający poprawne połączenie z SDK. Call Agent należy utworzyć ponownie.

  • invalidToken: Jeśli token wygasł lub jest nieprawidłowy, instancja rozłącza się z tym błędem.
  • connectionIssue: jeśli występuje problem z połączeniem klienta z infrastrukturą firmy Microsoft, po wielu ponownych próbach Call Agent uwidacznia błąd connectionIssue.

Możesz sprawdzić, czy środowisko lokalne Call Agent jest połączone z infrastrukturą firmy Microsoft, sprawdzając bieżącą connectionState wartość właściwości. Podczas aktywnego wywołania można nasłuchiwać zdarzenia connectionStateChanged, aby określić, czy Call Agent zmienia się ze stanu Połączono na stan Odłączono.

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

Możliwość przeglądania funkcji jest rozszerzoną cechą podstawowego interfejsu API Call. Umożliwia zdobycie możliwości uczestnika lokalnego w aktualnym połączeniu.

Funkcja umożliwia zarejestrowanie nasłuchiwacza zdarzeń, aby śledzić zmiany funkcji.

Uzyskiwanie funkcji możliwości

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

Zdobycie możliwości lokalnego uczestnika

Obiekt capabilities zawiera możliwości lokalnych uczestników i jest typu ParticipantCapabilities. Właściwości możliwości obejmują:

  • isPresent wskazuje, czy istnieje możliwość.
  • reason wskazuje przyczynę rozwiązania możliwości.
const capabilities =  capabilitiesFeature.capabilities;

Subskrybowanie capabilitiesChanged zdarzenia:

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

Uwidocznione możliwości

  • turnVideoOn: Możliwość włączania wideo
  • unmuteMic: możliwość wysyłania dźwięku
  • shareScreen: możliwość udostępniania ekranu
  • removeParticipant: Możliwość usunięcia uczestnika
  • hangUpForEveryOne: możliwość rozłączenia dla wszystkich
  • addCommunicationUser: możliwość dodawania użytkownika komunikacji
  • addTeamsUser: możliwość dodawania użytkownika usługi Teams
  • addPhoneNumber: możliwość dodawania numeru telefonu
  • manageLobby: możliwość zarządzania lobby (tylko wersja beta)
  • spotlightParticipant: Możliwość ustawienia uczestnika w centrum uwagi (tylko wersja beta)
  • removeParticipantsSpotlight: Możliwość usuwania wyróżnienia uczestników (tylko wersja beta)
  • startLiveCaptions: możliwość uruchamiania transkrypcji na żywo (tylko wersja beta)
  • stopLiveCaptions: możliwość zatrzymywania transkrypcji na żywo (tylko wersja beta)
  • raiseHand: Możliwość podnoszenia ręki (tylko beta)
  • muteOthers: Możliwość miękkiego wyciszenia zdalnych uczestników spotkania
  • reakcja: Zdolność do reagowania na spotkanie (tylko beta)
  • viewAttendeeNames: możliwość wyświetlania nazw uczestników na spotkaniu
  • forbidOthersAudio: Możliwość zakazu dźwięku uczestników w spotkaniu lub rozmowie grupowej
  • forbidOthersVideo: Możliwość zakazu wideo uczestników w spotkaniu lub rozmowie grupowej

Instalacja zestawu SDK

Znajdź plik projektu na poziomie build.gradle i dodaj mavenCentral() do listy repozytoriów w sekcji buildscript i allprojects:

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

Następnie w pliku build.gradle na poziomie modułu dodaj następujące wiersze do sekcji dependencies.

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

Inicjowanie wymaganych obiektów

Aby utworzyć CallAgent wystąpienie, należy wywołać metodę createCallAgent na wystąpieniu CallClient. To wywołanie zwraca asynchronicznie obiekt instancji CallAgent.

Metoda createCallAgent przyjmuje CommunicationUserCredential jako argument, który hermetyzuje token dostępu.

Aby uzyskać dostęp do DeviceManager, należy najpierw utworzyć wystąpienie callAgent. Następnie możesz użyć metody CallClient.getDeviceManager, aby uzyskać 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();

Aby ustawić nazwę wyświetlaną elementu wywołującego, użyj tej alternatywnej metody:

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

Możliwość przeglądania funkcji jest rozszerzoną cechą podstawowego interfejsu API Call. Umożliwia zdobycie możliwości uczestnika lokalnego w aktualnym połączeniu.

Funkcja umożliwia zarejestrowanie nasłuchiwacza zdarzeń, aby śledzić zmiany funkcji.

Aby użyć funkcji wywołania usług w systemie Windows, pierwszym krokiem jest uzyskanie obiektu interfejsu API funkcji.

Uzyskiwanie funkcji możliwości

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

Zdobycie możliwości lokalnego uczestnika

Obiekt capabilities zawiera możliwości lokalnych uczestników i jest typu ParticipantCapability. Właściwości możliwości obejmują:

  • isAllowed wskazuje, czy można użyć możliwości.
  • reason wskazuje przyczynę rozwiązania możliwości.
List<ParticipantCapability> capabilities = capabilitiesCallFeature.getCapabilities();

Subskrybowanie capabilitiesChanged zdarzenia


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

Uwidocznione możliwości

  • TurnVideoOn: możliwość włączania wideo
  • UnmuteMicrophone: Możliwość wyciszenie mikrofonu
  • ShareScreen: możliwość udostępniania ekranu
  • RemoveParticipant: Możliwość usunięcia uczestnika
  • HangUpForEveryone: Możliwość rozłączenia się dla wszystkich
  • AddCommunicationUser: możliwość dodawania użytkownika komunikacyjnego
  • AddTeamsUser: możliwość dodawania użytkownika aplikacji Teams
  • AddPhoneNumber: możliwość dodawania numeru telefonu
  • ManageLobby: Możliwość zarządzania lobby
  • SpotlightParticipant: Możliwość wyróżnienia uczestnika
  • RemoveParticipantSpotlight: możliwość usunięcia uczestnika z centrum uwagi
  • BlurBackground: możliwość rozmycia tła
  • CustomBackground: możliwość stosowania niestandardowego tła
  • StartLiveCaptions: możliwość uruchomienia napisów na żywo
  • RaiseHand: Zdolność do podnoszenia ręki
  • MuteOthers: Możliwość miękkiego wyciszenia zdalnych uczestników spotkania

Konfigurowanie systemu

Wykonaj następujące kroki, aby skonfigurować system.

Tworzenie projektu programu Visual Studio

W programie Visual Studio 2022, dla aplikacji uniwersalnej platformy Windows, utwórz nowy projekt Pusta aplikacja (uniwersalny system Windows). Po wprowadzeniu nazwy projektu możesz wybrać dowolny zestaw Windows SDK nowszy niż 10.0.17763.0.

W przypadku aplikacji WinUI 3 utwórz nowy projekt za pomocą szablonu Blank App, Packaged (WinUI 3 in Desktop), aby skonfigurować jednostronicową aplikację WinUI 3. Wymagany jest zestaw Windows App SDK w wersji 1.3 lub nowszej.

Instalowanie pakietu i zależności przy użyciu Menedżer pakietów NuGet

API i biblioteki Calling SDK są publicznie dostępne przez pakiet NuGet.

Aby znaleźć, pobrać i zainstalować pakiet NuGet do połączeń SDK:

  1. Otwórz Menedżer pakietów NuGet, wybierając pozycję > Zarządzanie pakietami NuGet dla rozwiązania.
  2. Wybierz pozycję Przeglądaj, a następnie wprowadź ciąg Azure.Communication.Calling.WindowsClient w polu wyszukiwania.
  3. Upewnij się, że pole wyboru Uwzględnij wersję wstępną zostało zaznaczone.
  4. Wybierz pakiet Azure.Communication.Calling.WindowsClient, a następnie wybierz pozycję Azure.Communication.Calling.WindowsClient1.4.0-beta.1 lub nowszą wersję.
  5. Zaznacz pole wyboru odpowiadające projektowi usług Azure Communication Services w okienku po prawej stronie.
  6. Wybierz Zainstaluj.

Możliwość przeglądania funkcji jest rozszerzoną cechą podstawowego interfejsu API Call. Umożliwia zdobycie możliwości uczestnika lokalnego w aktualnym połączeniu.

Funkcja umożliwia zarejestrowanie nasłuchiwacza zdarzeń, aby śledzić zmiany funkcji.

Aby użyć funkcji Capabilities dla systemu Windows, pierwszym krokiem jest uzyskanie obiektu interfejsu API tej funkcji.

Uzyskiwanie funkcji możliwości

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

Zdobycie możliwości lokalnego uczestnika

Obiekt capabilities zawiera możliwości lokalnych uczestników i jest typu ParticipantCapability. Właściwości możliwości obejmują:

  • isAllowed wskazuje, czy można użyć możliwości.
  • reason wskazuje przyczynę rozwiązania możliwości.
var capabilities = capabilitiesCallFeature.Capabilities;

Subskrybowanie capabilitiesChanged zdarzenia

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

Uwidocznione możliwości

  • TurnVideoOn: możliwość włączania wideo
  • UnmuteMicrophone: Możliwość wyciszenie mikrofonu
  • ShareScreen: możliwość udostępniania ekranu
  • RemoveParticipant: Możliwość usunięcia uczestnika
  • HangUpForEveryone: Możliwość rozłączenia się dla wszystkich
  • AddCommunicationUser: możliwość dodawania użytkownika komunikacyjnego
  • AddTeamsUser: możliwość dodawania użytkownika aplikacji Teams
  • AddPhoneNumber: możliwość dodawania numeru telefonu
  • ManageLobby: Możliwość zarządzania lobby
  • SpotlightParticipant: Możliwość wyróżnienia uczestnika
  • RemoveParticipantSpotlight: możliwość usunięcia uczestnika z centrum uwagi
  • BlurBackground: możliwość rozmycia tła
  • CustomBackground: możliwość stosowania niestandardowego tła
  • StartLiveCaptions: możliwość uruchomienia napisów na żywo
  • RaiseHand: Zdolność do podnoszenia ręki
  • MuteOthers: Możliwość miękkiego wyciszenia zdalnych uczestników spotkania

Konfigurowanie systemu

Wykonaj następujące kroki, aby skonfigurować system.

Tworzenie projektu Xcode

W programie Xcode utwórz nowy projekt systemu iOS i wybierz szablon Aplikacja z jednym widokiem. W tym artykule jest używana struktura SwiftUI, dlatego należy ustawić wartość Language na Swift i ustawić wartość Interface na SwiftUI.

Nie zamierzasz tworzyć testów w tym artykule. Możesz wyczyścić pole wyboru Uwzględnij testy .

Zrzut ekranu przedstawiający okno tworzenia projektu w programie Xcode.

Instalowanie pakietu i zależności przy użyciu narzędzia CocoaPods

  1. Utwórz plik Podfile dla aplikacji, podobnie jak w tym przykładzie:

    platform :ios, '13.0'
    use_frameworks!
    target 'AzureCommunicationCallingSample' do
        pod 'AzureCommunicationCalling', '~> 1.0.0'
    end
    
  2. Uruchom program pod install.

  3. Otwórz .xcworkspace za pomocą programu Xcode.

Żądanie dostępu do mikrofonu

Aby uzyskać dostęp do mikrofonu urządzenia, należy zaktualizować listę właściwości informacji aplikacji przy użyciu polecenia NSMicrophoneUsageDescription. Ustaw skojarzoną wartość na ciąg w oknie dialogowym, który system używa w celu zażądania dostępu od użytkownika.

Kliknij prawym przyciskiem myszy na wpisie Info.plist drzewa projektu, a następnie wybierz opcję Otwórz jako>Kod Źródłowy. Dodaj następujące wiersze w sekcji najwyższego poziomu <dict> , a następnie zapisz plik.

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

Konfigurowanie struktury aplikacji

Otwórz plik projektu ContentView.swift . Dodaj deklarację import na początku pliku, aby zaimportować bibliotekę AzureCommunicationCalling . Ponadto zaimportuj plik AVFoundation. Potrzebujesz tego do żądań uprawnień dźwięku w kodzie.

import AzureCommunicationCalling
import AVFoundation

Inicjowanie CallAgent

Aby utworzyć CallAgent wystąpienie z CallClient klasy, należy użyć callClient.createCallAgent metody, która asynchronicznie zwraca CallAgent obiekt po zainicjowaniu.

Aby utworzyć klienta wywołań, przekaż obiekt 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)
}

CommunicationTokenCredential Przekaż utworzony obiekt do CallClient, a następnie ustaw nazwę wyświetlaną:

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

Możliwość przeglądania funkcji jest rozszerzoną cechą podstawowego interfejsu API Call. Umożliwia zdobycie możliwości uczestnika lokalnego w aktualnym połączeniu.

Funkcja umożliwia zarejestrowanie nasłuchiwacza zdarzeń, aby śledzić zmiany funkcji.

Aby użyć funkcji wywołania usług w systemie Windows, pierwszym krokiem jest uzyskanie obiektu interfejsu API funkcji.

Uzyskiwanie funkcji możliwości

let capabilitiesCallFeature =call.feature(Features.capabilities)

Zdobycie możliwości lokalnego uczestnika

Obiekt capabilities zawiera możliwości lokalnych uczestników i jest typu ParticipantCapability. Właściwości możliwości obejmują:

  • isAllowed wskazuje, czy można użyć możliwości.
  • reason wskazuje przyczynę rozwiązania możliwości.
var capabilities = capabilitiesCallFeature.capabilities

Subskrybowanie capabilitiesChanged zdarzenia


capabilitiesCallFeature.delegate = CapabilitiesCallDelegate()

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

Uwidocznione możliwości

  • TurnVideoOn: możliwość włączania wideo
  • UnmuteMicrophone: Możliwość wyciszenie mikrofonu
  • ShareScreen: możliwość udostępniania ekranu
  • RemoveParticipant: Możliwość usunięcia uczestnika
  • HangUpForEveryone: Możliwość rozłączenia się dla wszystkich
  • AddCommunicationUser: możliwość dodawania użytkownika komunikacyjnego
  • AddTeamsUser: możliwość dodawania użytkownika aplikacji Teams
  • AddPhoneNumber: możliwość dodawania numeru telefonu
  • ManageLobby: Możliwość zarządzania lobby
  • SpotlightParticipant: Możliwość wyróżnienia uczestnika
  • RemoveParticipantSpotlight: możliwość usunięcia uczestnika z centrum uwagi
  • BlurBackground: możliwość rozmycia tła
  • CustomBackground: możliwość stosowania niestandardowego tła
  • StartLiveCaptions: możliwość uruchomienia napisów na żywo
  • RaiseHand: Zdolność do podnoszenia ręki
  • MuteOthers: Możliwość miękkiego wyciszenia zdalnych uczestników spotkania

Obsługiwane typy wywołań

W poniższych tabelach zdefiniowano możliwość uzyskania funkcji przy użyciu zestawu SDK do wywoływania usług Azure Communication Services.

Tożsamości i rodzaje połączeń

Tożsamości Spotkanie Teams Pokój rozmowa jeden na jeden Rozmowa grupowa 1:1 Rozmowa interoperacyjna w usłudze Teams Połączenie międzyoperacyjne w Microsoft Teams dla grup
Użytkownik usług komunikacyjnych ✔️ ✔️
Użytkownik platformy Microsoft 365 ✔️ ✔️

Przyczyny

Poniższa tabela zawiera dodatkowe informacje o tym, dlaczego akcja jest niedostępna i zawiera wskazówki dotyczące udostępniania akcji.

Przyczyna opis Rozwiązanie
Zdolny Akcja jest włączona.
Funkcja nie ma zastosowania dla tego typu połączenia Typ wywołania blokuje akcję. Jeśli potrzebujesz tej akcji, rozważ użycie innego typu wywołania. pl-PL: Typy połączeń to: połączenie 1:1, połączenie grupowe, połączenie międzyoperacyjne 1:1 Teams, połączenie grupowe międzyoperacyjne 1:1 Teams, pokój i spotkanie.
OgraniczonyDlaKlienta Środowisko uruchomieniowe blokuje tę akcję Odblokuj akcję na urządzeniu, zmieniając system operacyjny, przeglądarki, platformę lub sprzęt. Obsługiwane środowisko można znaleźć w naszej dokumentacji.
PolitykaUżytkownikaOgraniczona Zasady użytkownika platformy Microsoft 365 blokują akcję. Włącz tę akcję, zmieniając zasady przypisane do organizatora spotkania, inicjatora połączenia lub użytkownika platformy Microsoft 365 przy użyciu zestawu ACS SDK. Użytkownik docelowy zależy od typu akcji. Dowiedz się więcej o zasadach usługi Teams w usłudze Teams. Administrator usługi Teams może zmienić zasady.
OgraniczenieRoli Przypisana rola blokuje akcję. Awansuj użytkownika na inną rolę, aby akcja była dostępna.
FunkcjaNieobsługiwana Funkcja możliwości nie jest obsługiwana w tym typie wywołania. Poinformuj nas w kanale opinii na temat platformy Azure, że chcesz, aby ta funkcja została udostępniona dla tego typu wywołania.
SpotkanieRestricted Opcja spotkania w aplikacji Teams blokuje akcję. Organizator spotkania lub współorganizator spotkań w aplikacji Teams musi zmienić opcję spotkania, aby włączyć tę akcję.
Niezainicjalizowany Funkcja możliwości nie została jeszcze zainicjowana. Zasubskrybuj zdarzenie capabilitiesChanged , this.call.feature(Features.Capabilities) aby wiedzieć, kiedy jest inicjowana funkcja.
Niezdolny Typ użytkownika blokuje akcję. Akcja jest aktywowana tylko dla określonych tożsamości. Włącz tę akcję przy użyciu tożsamości platformy Microsoft 365.
Licencja Premium Teams Ograniczona Użytkownik platformy Microsoft 365 musi mieć przypisaną licencję usługi Teams Premium. Włącz tę akcję, przypisując licencję usługi Teams Premium do organizatora spotkania usługi Teams lub użytkownika platformy Microsoft 365 przy użyciu zestawu SDK. Użytkownik docelowy zależy od typu akcji. Administrator platformy Microsoft 365 może przypisać wymaganą licencję.
WymaganaWyraźnaZgoda Zgoda jest wymagana, aby zezwolić na akcję. Podaj zgodę na nagrywanie lub transkrypcję, wywołując metodę grantTeamsConsent() w obszarze this.call.feature(Features.Recording) lub this.call.feature(Features.Transcription) .

Następne kroki