Dołączanie do spotkania zespołów
Zestawy SDK usług Azure Communication Services umożliwiają użytkownikom dołączanie do zwykłych spotkań w usłudze Microsoft Teams. Oto jak to zrobić!
Wymagania wstępne
- Konto platformy Azure z aktywną subskrypcją. Utwórz konto bezpłatnie.
- Wdrożony zasób usług komunikacyjnych. Utwórz zasób usług komunikacyjnych.
- Token dostępu użytkownika umożliwiający włączenie klienta wywołującego. Aby uzyskać więcej informacji, zobacz Tworzenie tokenów dostępu i zarządzanie nimi.
- Opcjonalnie: ukończ przewodnik Szybki start, aby dodać połączenie głosowe do aplikacji
Instalacja zestawu SDK
Użyj polecenia , npm install
aby zainstalować wspólny zestaw SDK usług Azure Communication Services i wywołujący dla języka 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 CallAgent
obiekt wystąpienia.
Metoda createCallAgent
używa CommunicationTokenCredential
jako argumentu. Akceptuje token dostępu użytkownika.
Aby uzyskać dostęp deviceManager
do obiektu , możesz użyć getDeviceManager
metody w wystąpieniu CallClient
.
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()
Jak najlepiej zarządzać łącznością zestawu SDK z infrastrukturą firmy Microsoft
Wystąpienie Call Agent
pomaga zarządzać wywołaniami (aby dołączyć lub uruchomić wywołania). 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ń. Istnieją Call Agent
dwa możliwe stany:
Połączono — Call Agent
wartość Connected
connectionStatue oznacza, że zestaw SDK klienta jest połączony i może odbierać powiadomienia z infrastruktury firmy Microsoft.
Rozłączone — Call Agent
wartość Disconnected
connectionStatue stanów występuje problem uniemożliwiający prawidłowe nawiązywanie połączenia z zestawem SDK. Call Agent
należy utworzyć ponownie.
invalidToken
: Jeśli token wygasł lub jest nieprawidłoweCall Agent
wystąpienie 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óbachCall Agent
connectionIssue
wystąpi błąd.
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
zmiany ze stanu Połączono z Odłączone .
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);
Metody dołączania spotkań
Aby dołączyć do spotkania usługi Teams, użyj join
metody i przekaż link do spotkania lub współrzędne spotkania.
Dołącz przy użyciu linku spotkania:
const locator = { meetingLink: '<MEETING_LINK>'}
const call = callAgent.join(locator);
Dołącz przy użyciu współrzędnych spotkania (jest to obecnie w ograniczonej wersji zapoznawczej):
const locator = {
threadId: <thread id>,
organizerId: <organizer id>,
tenantId: <tenant id>,
messageId: <message id>
}
const call = callAgent.join(locator);
Konfigurowanie systemu
Wykonaj następujące kroki, aby skonfigurować system.
Tworzenie projektu programu Visual Studio
W przypadku aplikacji platforma uniwersalna systemu Windows w programie Visual Studio 2022 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 z pustą aplikacją, spakowanym szablonem (WinUI 3 w programie 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
Interfejsy API i biblioteki zestawu SDK wywołujących są publicznie dostępne za pośrednictwem pakietu NuGet.
Aby znaleźć, pobrać i zainstalować pakiet NuGet zestawu SDK wywołującego:
- Otwórz Menedżer pakietów NuGet, wybierając pozycję Narzędzia>NuGet Menedżer pakietów> Zarządzanie pakietami NuGet dla rozwiązania.
- Wybierz pozycję Przeglądaj, a następnie wprowadź ciąg Azure.Communication.Calling.WindowsClient w polu wyszukiwania.
- Upewnij się, że pole wyboru Uwzględnij wersję wstępną zostało zaznaczone.
- Wybierz pakiet Azure.Communication.Calling.WindowsClient, a następnie wybierz pozycję Azure.Communication.Calling.WindowsClient 1.4.0-beta.1 lub nowszą wersję.
- Zaznacz pole wyboru odpowiadające projektowi usług Azure Communication Services w okienku po prawej stronie.
- Wybierz Zainstaluj.
Metody dołączania spotkań
Aby dołączyć do spotkania usługi Teams, użyj CallAgent.join
metody i przekaż kontekst aplikacji, JoinMeetingLocator
i JoinCallOptions
.
Identyfikator spotkania i kod dostępu
Lokalizuje TeamsMeetingIdLocator
spotkanie przy użyciu identyfikatora spotkania i kodu dostępu. Można je znaleźć w informacjach o dołączeniach do spotkania w usłudze Teams.
Identyfikator spotkania usługi Teams będzie mieć długość 12 znaków i będzie składać się z cyfr liczbowych pogrupowanych w trójkach (tj. 000 000 000 000
).
Kod dostępu będzie składać się z 6 znaków alfabetu (tj. aBcDeF
). W kodzie dostępu jest uwzględniana wielkość liter.
String meetingId, passcode;
TeamsMeetingIdLocator locator = new TeamsMeetingIdLocator(meetingId, passcode);
Link do spotkania
Lokalizuje TeamsMeetingLinkLocator
spotkanie przy użyciu linku do spotkania usługi Teams. Można je znaleźć w informacjach o dołączeniach do spotkania w usłudze Teams.
String meetingLink;
TeamsMeetingLinkLocator locator = new TeamsMeetingLinkLocator(meetingLink);
Współrzędne spotkania
Lokalizuje TeamsMeetingCoordinatesLocator
spotkania przy użyciu identyfikatora organizatora, identyfikatora dzierżawy, identyfikatora wątku i identyfikatora wiadomości. Te informacje można znaleźć przy użyciu programu Microsoft Graph.
Guid organizerId, tenantId;
String threadId, messageId;
TeamsMeetingCoordinatesLocator locator = new TeamsMeetingCoordinatesLocator(threadId, organizerId, tenantId, messageId);
Dołączanie do spotkania przy użyciu lokalizatorów
Po utworzeniu tych lokalizatorów spotkań usługi Teams możesz użyć go do dołączenia do spotkania usługi Teams, jak CallAgent.join
pokazano poniżej.
JoinCallOptions options = new JoinCallOptions();
call = agent.join(
getApplicationContext(),
locator,
options);
Konfigurowanie systemu
Wykonaj następujące kroki, aby skonfigurować system.
Tworzenie projektu programu Visual Studio
W przypadku aplikacji platforma uniwersalna systemu Windows w programie Visual Studio 2022 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 z pustą aplikacją, spakowanym szablonem (WinUI 3 w programie 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
Interfejsy API i biblioteki zestawu SDK wywołujących są publicznie dostępne za pośrednictwem pakietu NuGet.
Aby znaleźć, pobrać i zainstalować pakiet NuGet zestawu SDK wywołującego:
- Otwórz Menedżer pakietów NuGet, wybierając pozycję Narzędzia>NuGet Menedżer pakietów> Zarządzanie pakietami NuGet dla rozwiązania.
- Wybierz pozycję Przeglądaj, a następnie wprowadź ciąg Azure.Communication.Calling.WindowsClient w polu wyszukiwania.
- Upewnij się, że pole wyboru Uwzględnij wersję wstępną zostało zaznaczone.
- Wybierz pakiet Azure.Communication.Calling.WindowsClient, a następnie wybierz pozycję Azure.Communication.Calling.WindowsClient 1.4.0-beta.1 lub nowszą wersję.
- Zaznacz pole wyboru odpowiadające projektowi usług Azure Communication Services w okienku po prawej stronie.
- Wybierz Zainstaluj.
Metody dołączania spotkań
Aby dołączyć do spotkania usługi Teams, użyj CallAgent.join
metody i przekaż JoinMeetingLocator
element i JoinCallOptions
.
Identyfikator spotkania i kod dostępu
Lokalizuje TeamsMeetingIdLocator
spotkanie przy użyciu identyfikatora spotkania i kodu dostępu. Można je znaleźć w informacjach o dołączeniach do spotkania w usłudze Teams.
Identyfikator spotkania usługi Teams będzie mieć długość 12 znaków i będzie składać się z cyfr liczbowych pogrupowanych w trójkach (tj. 000 000 000 000
).
Kod dostępu będzie składać się z 6 znaków alfabetu (tj. aBcDeF
). W kodzie dostępu jest uwzględniana wielkość liter.
String meetingId, passcode
let locator = TeamsMeetingIdLocator(meetingId: meetingId, passcode: passcode)
Link do spotkania
Lokalizuje TeamsMeetingLinkLocator
spotkanie przy użyciu linku do spotkania usługi Teams. Można je znaleźć w informacjach o dołączeniach do spotkania w usłudze Teams.
String meetingLink
let locator = TeamsMeetingLinkLocator(meetingLink: meetingLink)
Dołączanie do spotkania przy użyciu lokalizatorów
Po utworzeniu tych lokalizatorów spotkań usługi Teams możesz użyć go do dołączenia do spotkania usługi Teams, jak CallAgent.join
pokazano poniżej.
func joinTeamsMeeting() {
// Ask permissions
AVAudioSession.sharedInstance().requestRecordPermission { (granted) in
if granted {
let joinCallOptions = JoinCallOptions()
// Insert meeting locator code for specific join methods here
// for CallAgent callAgent
self.callAgent?.join(with: teamsMeetingLinkLocator, joinCallOptions: joinCallOptions)
}
}
}
Konfigurowanie systemu
Wykonaj następujące kroki, aby skonfigurować system.
Tworzenie projektu programu Visual Studio
W przypadku aplikacji platforma uniwersalna systemu Windows w programie Visual Studio 2022 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 z pustą aplikacją, spakowanym szablonem (WinUI 3 w programie 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
Interfejsy API i biblioteki zestawu SDK wywołujących są publicznie dostępne za pośrednictwem pakietu NuGet.
Aby znaleźć, pobrać i zainstalować pakiet NuGet zestawu SDK wywołującego:
- Otwórz Menedżer pakietów NuGet, wybierając pozycję Narzędzia>NuGet Menedżer pakietów> Zarządzanie pakietami NuGet dla rozwiązania.
- Wybierz pozycję Przeglądaj, a następnie wprowadź ciąg Azure.Communication.Calling.WindowsClient w polu wyszukiwania.
- Upewnij się, że pole wyboru Uwzględnij wersję wstępną zostało zaznaczone.
- Wybierz pakiet Azure.Communication.Calling.WindowsClient, a następnie wybierz pozycję Azure.Communication.Calling.WindowsClient 1.4.0-beta.1 lub nowszą wersję.
- Zaznacz pole wyboru odpowiadające projektowi usług Azure Communication Services w okienku po prawej stronie.
- Wybierz Zainstaluj.
Metody dołączania spotkań
Aby dołączyć do spotkania usługi Teams, użyj CallAgent.JoinAsync
metody i przekaż JoinMeetingLocator
element i JoinCallOptions
.
Identyfikator spotkania i kod dostępu
Lokalizuje TeamsMeetingIdLocator
spotkanie przy użyciu identyfikatora spotkania i kodu dostępu. Można je znaleźć w informacjach o dołączeniach do spotkania w usłudze Teams.
Identyfikator spotkania usługi Teams będzie mieć długość 12 znaków i będzie składać się z cyfr liczbowych pogrupowanych w trójkach (tj. 000 000 000 000
).
Kod dostępu będzie składać się z 6 znaków alfabetu (tj. aBcDeF
). W kodzie dostępu jest uwzględniana wielkość liter.
string meetingId, passcode;
TeamsMeetingIdLocator locator = new TeamsMeetingIdLocator(meetingId, passcode);
Link do spotkania
Lokalizuje TeamsMeetingLinkLocator
spotkanie przy użyciu linku do spotkania usługi Teams. Można je znaleźć w informacjach o dołączeniach do spotkania w usłudze Teams.
string meetingLink;
TeamsMeetingLinkLocator locator = new TeamsMeetingLinkLocator(meetingLink);
Współrzędne spotkania
Lokalizuje TeamsMeetingCoordinatesLocator
spotkania przy użyciu identyfikatora organizatora, identyfikatora dzierżawy, identyfikatora wątku i identyfikatora wiadomości. Te informacje można znaleźć przy użyciu programu Microsoft Graph.
Guid organizerId, tenantId;
string threadId, messageId;
TeamsMeetingCoordinatesLocator locator = new TeamsMeetingCoordinatesLocator(threadId, organizerId, tenantId, messageId);
Dołączanie do spotkania przy użyciu lokalizatorów
Po utworzeniu tych lokalizatorów spotkań usługi Teams możesz użyć go do dołączenia do spotkania usługi Teams, jak CallAgent.JoinAsync
pokazano poniżej.
var joinCallOptions = new JoinCallOptions() {
OutgoingAudioOptions = new OutgoingAudioOptions() { IsMuted = true },
OutgoingVideoOptions = new OutgoingVideoOptions() { Streams = new OutgoingVideoStream[] { cameraStream } }
};
var call = await callAgent.JoinAsync(locator, joinCallOptions);