Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Dowiedz się, jak zarządzać wywołaniami za pomocą zestawu SDK usług Azure Communication Services. Nauczymy się, jak wykonywać połączenia, zarządzać ich uczestnikami i właściwościami.
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.
- Element umożliwiający włączenie klienta do połączeń. Aby uzyskać więcej informacji na temat sposobu uzyskiwania
User Access Token
- Opcjonalnie: ukończ tutorial szybkiego startu, aby rozpocząć dodawanie połączeń wideo do aplikacji
Instalacja zestawu SDK
Użyj polecenia npm install
, aby zainstalować zestawy SDK zarówno do obsługi połączeń, jak i funkcji ogólnych dla języka JavaScript w usługach Azure Communication Services.
npm install @azure/communication-common --save
npm install @azure/communication-calling --save
Inicjowanie wymaganych obiektów
Utwórz wystąpienie CallClient
, aby zainicjować stos wywołań. Możesz skonfigurować rejestrowanie dla wywołań SDK za pomocą AzureLogger
wystąpienia i setLogLevel
metody. Dostęp do deviceManager
systemu operacyjnego można uzyskać za pomocą metody getDeviceManager
.
Następnie użyj metody createTeamsCallAgent
, aby utworzyć asynchronicznie TeamsCallAgent
wystąpienie, które będzie zarządzać przychodzącymi i wychodzącymi wywołaniami użytkownika usługi Teams. Metoda przyjmuje CommunicationTokenCredential
jako argument reprezentujący token dostępu dla użytkownika usługi Teams.
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 wherever desired. To console, file, buffer, REST API, etc...
AzureLogger.log = (...args) => {
console.log(...args); // Redirect log output to console
};
const userToken = '<USER_TOKEN>';
callClient = new CallClient();
const tokenCredential = new AzureCommunicationTokenCredential(userToken);
const teamsCallAgent = await callClient.createTeamsCallAgent(tokenCredential);
const deviceManager = await callClient.getDeviceManager();
Wykonaj połączenie
Rozpocznij synchroniczne połączenie indywidualne lub grupowe za pomocą startCall
API na teamsCallAgent
. Możesz podać jako parametr MicrosoftTeamsUserIdentifier
lub PhoneNumberIdentifier
, aby zdefiniować element docelowy wywołania. Metoda zwraca instancję TeamsCall
, która umożliwia subskrybowanie zdarzeń połączeń.
Uwaga
Rozpoczęcie grupowego połączenia za pomocą teamsCallAgent
wymaga czatu threadId
podczas korzystania z metody startCall
. Utworzone TeamsCall
wystąpienie ma właściwość threadId
odwołującą się do tego wątku. Zestaw SDK usług komunikacyjnych do dzwonienia nie synchronizuje listy uczestników czatu i połączeń. Firma Microsoft zachęca deweloperów do utrzymywania synchronizacji tej listy w celu zapewnienia najlepszego doświadczenia użytkownikom. Dowiedz się, jak zarządzać wątkiem czatu.
Rozpocznij pojedyncze połączenie VoIP do użytkownika Teams.
const userCallee = { microsoftTeamsUserId: '<MICROSOFT_TEAMS_USER_ID>' };
const oneToOneCall = teamsCallAgent.startCall(userCallee);
Rozpocznij połączenie telefoniczne jeden do jednego na numer telefonu E.164:
const phoneCallee = { phoneNumber: '<PHONE_NUMBER_E164_FORMAT>' }
const oneToOneCall = teamsCallAgent.startCall(phoneCallee );
Rozpocznij połączenie grupowe do użytkownika Teams za pomocą Voice-over IP (VoIP) i numeru telefonu.
const userCallee = { microsoftTeamsUserId: '<MICROSOFT_TEAMS_USER_ID>' }
const phoneCallee = { phoneNumber: '<PHONE_NUMBER_E164_FORMAT>'};
const groupCall = teamsCallAgent.startCall([userCallee, phoneCallee], { threadId: '<THREAD_ID>' });
Dołącz do połączenia
Dołącz do spotkania w Teams
Można dołączyć do spotkań usługi Teams za pomocą metody join
na wystąpieniu teamsCallAgent
. Użytkownicy usługi Teams mogą dołączać do spotkania usługi Teams, podając TeamsMeetingLinkLocator
, TeamsMeetingCoordinatesLocator
lub TeamsMeetingIdLocator
jako element.
Dołącz do spotkania Teams za pomocą adresu URL spotkania.
const meetingCall = teamsCallAgent.join({ meetingLink: '<MEETING_LINK>' });
Dołącz do spotkania usługi Teams przy użyciu kombinacji identyfikatora wątku, identyfikatora organizatora, identyfikatora dzierżawy i identyfikatora wiadomości:
const meetingCall = teamsCallAgent.join({ threadId: '<THREAD_ID>', organizerId: '<ORGANIZER_ID>', tenantId: '<TENANT_ID>', messageId: '<MESSAGE_ID>' });
Dołącz do spotkania usługi Teams przy użyciu kodu spotkania i kodu dostępu:
const meetingCall = teamsCallAgent.join({ meetingId: '<MEETING_CODE>', passcode: '<PASSCODE>'});
Dołącz do spotkania Teams przy użyciu identyfikatora i hasła.
Deweloperzy mogą łączyć uczestników ze spotkaniem w usłudze Teams na wiele sposobów. Jednym ze sposobów jest użycie identyfikatora spotkania i kodu dostępu, co umożliwia użytkownikom dołączanie do spotkania usługi Teams, do którego są zapraszani z urządzenia lub aplikacji. Aby dołączyć do spotkania, zawsze musisz podać zarówno identyfikator spotkania, jak i kod dostępu. W kodzie dostępu jest uwzględniana wielkość liter.
Format identyfikatora spotkania i kodu dostępu:
- Identyfikator spotkania: 12 cyfr.
- Kod dostępu: 6 znaków
Jak często trzeba odświeżyć identyfikator spotkania i kod dostępu?
- Identyfikator spotkania i kod dostępu nie zmieniają się po utworzeniu. Deweloperzy nie muszą odświeżać ani jednego.
- Organizator spotkania usługi Teams nie może ponownie wygenerować identyfikatora spotkania i kodu dostępu.
Czy istnieje różnica w doświadczeniu spotkania w Teams, jeśli osoba dołącza przez adres URL czy identyfikator spotkania i kod dostępu?
- Nie, uczestnicy mają takie samo doświadczenie, jeśli dołączają do spotkania Teams za pomocą adresu URL lub identyfikatora spotkania i kodu dostępu.
Jak deweloperzy powinni przechowywać kody dostępu i zarządzać nimi?
- Identyfikator spotkania i kod dostępu są danymi potrzebnymi do dołączenia do spotkania. Deweloperzy powinni traktować je jako wpisy tajne, które powinny być szyfrowane, a jeśli są przechowywane, upewnij się, że znajdują się w kontrolowanym środowisku dostępu.
- Jeśli współrzędne są uwidocznione, każdy może dołączyć do spotkania i zrujnować doświadczenie dla wszystkich obecnych na spotkaniu.
Jak uzyskać identyfikator spotkania i kod dostępu?
- Interfejs API programu Graph: użyj interfejsu API programu Graph, aby pobrać informacje o
onlineMeeting
zasobie i sprawdzić obiekt we właściwościjoinMeetingIdSettings
. - Teams: W aplikacji Teams przejdź do
Calendar
i otwórz szczegóły spotkania. Spotkania online mają identyfikator spotkania i kod dostępu w definicji spotkania. - Outlook: identyfikator spotkania i kod dostępu można znaleźć w wydarzeniach kalendarza lub w zaproszeniach na spotkanie e-mail.
- Deweloperzy nie mogą pobrać identyfikatora spotkania i kodu dostępu za pomocą wywołań w SDK ani uzyskać go z szczegółowych dzienników konsoli.
- Interfejs API programu Graph: użyj interfejsu API programu Graph, aby pobrać informacje o
Jak sprawdzić, czy identyfikator spotkania i kod dostępu są poprawne?
- Weryfikację identyfikatora spotkania i kodu dostępu można przeprowadzić za pośrednictwem: https://www.microsoft.com/en-us/microsoft-teams/join-a-meeting.
Odbieranie połączenia przychodzącego w Teams
Możesz subskrybować zdarzenie incomingCall
na wystąpieniu teamsCallAgent
, aby zarejestrować połączenia przychodzące do użytkownika Teams. Zdarzenie ma właściwość teamsIncomingCall
z wystąpieniem TeamsIncomingCall
, która umożliwia accept
lub reject
wywołania przychodzącego.
const incomingCallHandler = async (args: { teamsIncomingCall: TeamsIncomingCall }) => {
const incomingCall = args.teamsIncomingCall;
// Get Teams incoming call ID
const incomingCallId = incomingCall.id;
// Get information about this Call. This API is provided as a preview for developers
// and may change based on feedback that we receive. Do not use this API in a production environment.
// To use this API please use 'beta' release of Azure Communication Services Calling Web SDK
const callInfo = incomingCall.info;
// Get information about caller
const callerInfo = incomingCall.callerInfo
// Accept the call
const teamsCall = await incomingCall.accept();
// Reject the call
incomingCall.reject();
// Subscribe to callEnded event and get the call end reason
incomingCall.on('callEnded', args => {
console.log(args.callEndReason);
});
// callEndReason is also a property of IncomingCall
var callEndReason = incomingCall.callEndReason;
};
teamsCallAgent.on('incomingCall', incomingCallHandler);
Włączanie i wyłączanie wideo
Możesz uzyskać lokalną kolekcję transmisji wideo z właściwości localVideoStreams
w instancji TeamsCall
. Jeśli ta opcja jest włączona, kolekcja zawiera strumień udostępniania ekranu i kanały wideo z kamery. Strumienie wideo uczestników zdalnych można uzyskać, sprawdzając właściwość TeamsCall
.
remoteParticipants
gdzie każdy uczestnik ma kolekcję strumieni wideo we właściwości videoStreams
.
Wycisz i Wyłącz wyciszenie
Możesz użyć asynchronicznych interfejsów API mute
i unmute
w wystąpieniu TeamsCall
, aby lokalnie wyciszyć lub usunąć wyciszenie użytkowników Teams. Wyciszenie lokalne uniemożliwia wysyłanie dźwięku do innych uczestników.
//mute local device
await call.mute();
//unmute local device
await call.unmute();
Wycisz innych uczestników
Aby wyciszyć wszystkich innych uczestników lub wyciszyć określonego uczestnika, możesz użyć asynchronicznych interfejsów API na połączeniu muteAllRemoteParticipants
i przy zdalnym uczestniku mute
.
//mute all participants except yourself
await call.muteAllRemoteParticipants();
//mute a specific participant
await call.remoteParticipants[0].mute();
Uwaga
Interfejs API jest oferowany w wersji preview dla deweloperów i może zostać zmieniony w oparciu o opinie, które otrzymamy. Nie należy używać tego interfejsu API w środowisku produkcyjnym. Aby skorzystać z tego interfejsu API, użyj wersji beta webowego SDK do wywołań w Azure Communication Services.
Zarządzanie uczestnikami zdalnymi
Inni uczestnicy połączeń są dostępni w instancji TeamsCall
pod właściwością remoteParticipants
. Jest to kolekcja RemoteParticipant
obiektów. Możesz wyświetlić listę, dodać i usunąć innych uczestników z rozmowy.
Uwaga
Dodanie metody uczestnika wymaga czatu threadId
. Zestaw SDK usług komunikacyjnych do dzwonienia nie synchronizuje listy uczestników czatu i połączeń. Firma Microsoft zachęca deweloperów do utrzymywania synchronizacji tej listy w celu zapewnienia najlepszego doświadczenia użytkownikom. Dowiedz się, jak zarządzać wątkiem czatu.
Możesz dodać nowego użytkownika lub numeru telefonu usługi Teams do połączenia usługi Teams lub spotkania usługi Teams, wywołując metodę addParticipant
w obiekcie TeamsCall
. Metoda akceptuje identyfikatory MicrosoftTeamsUserIdentifier
lub PhoneNumberIdentifier
jako dane wejściowe i zwraca synchronicznie wystąpienie RemoteParticipant
i wyzwala zdarzenie remoteParticipantsUpdated
w wystąpieniu TeamsCall
.
Możesz usunąć uczestnika z połączenia usługi Teams lub spotkania usługi Teams, wywołując metodę removeParticipant
w wystąpieniu TeamsCall
asynchronicznie. Metoda akceptuje identyfikatory MicrosoftTeamsUserIdentifier
lub PhoneNumberIdentifier
jako dane wejściowe. Metoda jest rozwiązana, gdy RemoteParticipant
zostanie usunięty z kolekcji remoteParticipants
, a zdarzenie remoteParticipantsUpdated
na instancji TeamsCall
zostaje wyzwolone.
Wyświetl listę innych uczestników połączeń:
const participants = call.remoteParticipants; // [remoteParticipant, remoteParticipant....]
Dodaj użytkownika i numer telefonu usługi Teams do połączenia usługi Teams lub spotkania usługi Teams:
const teamsUser = { microsoftTeamsUserId: '<MICROSOFT_TEAMS_USER_ID>' };
const phoneUser = { phoneNumber: '<PHONE_NUMBER_E164_FORMAT>' }
const remoteParticipant = call.addParticipant(teamsUser , { threadId: '<THREAD_ID>' });
const remoteParticipant2 = call.addParticipant(phoneUser , { threadId: '<THREAD_ID>' });
Usuń użytkownika Teams i numer telefonu z połączenia lub spotkania w Teams.
const teamsUser = { microsoftTeamsUserId: '<MICROSOFT_TEAMS_USER_ID>' };
const phoneUser = { phoneNumber: '<PHONE_NUMBER_E164_FORMAT>' }
await call.removeParticipant(teamsUser);
await call.removeParticipant(phoneUser);
Uczestnicy zdalni
Uczestnicy zdalni reprezentują punkt końcowy połączony z trwającym połączeniem lub spotkaniem w aplikacji Teams. Klasa remoteParticipant
ma następujący zestaw właściwości i kolekcji:
-
identifier
: zwraca jeden z następujących identyfikatorów:CommunicationUserIdentifier
,MicrosoftTeamsUserIdentifier
,PhoneNumberIdentifier
lubUnknownIdentifier
.
const identifier = remoteParticipant.identifier;
-
state
: zwraca wartośćstring
reprezentującą stan uczestnika zdalnego. Stan może mieć jedną z następujących wartości:
Wartość stanu | Kiedy | opis |
---|---|---|
Idle |
Stan początkowy | Jest to pierwszy stan uczestnika |
Connecting |
Po Idle |
Stan przejściowy, gdy uczestnik nawiązuje połączenie. |
Ringing |
Po Connecting |
Uczestnik otrzymał incomingCall powiadomienie lub dzwoni klient usługi Teams |
Connected |
Po Ringing , Connecting , EarlyMedia lub InLobby |
Uczestnik zaakceptował zaproszenie do połączenia lub dołączył do połączenia. Media przepływają do uczestnika. |
Hold |
Po Connected |
Uczestnik połączenia jest wstrzymany. |
EarlyMedia |
Po Connecting |
Media są odtwarzane przed połączeniem się uczestnika z rozmową. |
InLobby |
Po Ringing , Connecting lub EarlyMedia |
Uczestnik znajduje się w lobby spotkania Teams. |
Disconnected |
Stan końcowy | Uczestnik jest odłączony od połączenia. Jeśli uczestnik zdalny utraci łączność sieciową, jego stan zmieni się na Disconnected po dwóch minutach. |
Stany uczestników zdalnych w rozmowach jeden na jeden lub grupowych:
Stany uczestników zdalnych na spotkaniach usługi Teams:
const state = remoteParticipant.state;
-
callEndReason
: zwraca obiekt zawierający dodatkowe informacje o przyczynie zakończenia wywołania. Właściwośćcode
zwraca liczbę skojarzona z przyczyną isubCode
zwraca liczbę skojarzona z kodem i przyczyną. Aby uzyskać więcej informacji na temat kodów błędów, zobacz Rozwiązywanie problemów z kodami odpowiedzi końca połączenia.
const callEndReason = remoteParticipant.callEndReason;
const callEndReasonCode = callEndReason.code
const callEndReasonSubCode = callEndReason.subCode
-
isMuted
: zwracaBoolean
wartość reprezentującą stan wyciszenia lokalnego.
const isMuted = remoteParticipant.isMuted;
-
isSpeaking
: Zwraca wartośćBoolean
reprezentującą stan wysyłania niepustego dźwięku.
const isSpeaking = remoteParticipant.isSpeaking;
-
videoStreams
: zwraca kolekcję obiektów wysyłanychRemoteVideoStream
przez uczestników.
const videoStreams = remoteParticipant.videoStreams; // [RemoteVideoStream, ...]
-
displayName
: zwraca obiektstring
, który reprezentuje nazwę wyświetlaną. Usługa Communication Services wywołująca zestaw SDK nie ustawia tej wartości dla użytkowników usługi Teams.
const displayName = remoteParticipant.displayName;
Wywołanie
-
id
: zwraca ciąg reprezentujący unikatowy identyfikator wywołania.
const callId = call.id;
• : info
Zwraca informacje o wywołaniu:
Uwaga
Interfejs API jest oferowany w wersji preview dla deweloperów i może zostać zmieniony w oparciu o opinie, które otrzymamy. Nie należy używać tego interfejsu API w środowisku produkcyjnym. Aby korzystać z tego interfejsu API, użyj wersji beta internetowego zestawu SDK do wywołań usług Azure Communication Services.
• info
: zwraca obiekt zawierający informacje o wywołaniu. Właściwość threadId
jest ciągiem reprezentującym identyfikator wątku czatu pokazany w kliencie usługi Teams.
const callInfo = call.info;
const threadId = call.info.threadId;
• remoteParticipants
: Zwraca kolekcję remoteParticipant
obiektów reprezentujących innych uczestników połączenia Teams lub spotkania Teams.
const remoteParticipants = call.remoteParticipants;
• callerInfo
: Zwraca obiekt CallerInfo
dla wywołań przychodzących. Właściwość identifier
może być jedną z następujących obiektów CommunicationUserIdentifier
, , MicrosoftTeamsUserIdentifier
, PhoneNumberIdentifier
lub UnknownIdentifier
. Właściwość displayName
jest ciągiem znaków reprezentującym nazwę do wyświetlenia, jeśli jest ustawiona.
const callerIdentity = call.callerInfo.identifier;
const callerIdentity = call.callerInfo.displayName;
• : state
zwraca ciąg reprezentujący stan wywołania. Właściwość może mieć jedną z następujących wartości:
Wartość stanu | Kiedy | opis |
---|---|---|
None |
Stan początkowy | Początkowy stan wywołania. |
Connecting |
Po None |
Stan, gdy rozmowa lub spotkanie w usłudze Teams jest nawiązane, dołączone lub przyjęte. |
Ringing |
Po Connecting |
Uczestnik zdalny otrzymał zdarzenie incomingCall lub dzwoni klient Teams. |
EarlyMedia |
Po Ringing lub Connecting |
Media są odtwarzane przed nawiązaniem połączenia. |
Connected |
Po Ringing EarlyMedia , InLobby LocalHold i RemoteHold |
Połączenie zostało nawiązane. Medium przepływa między lokalnymi punktami końcowymi a uczestnikami zdalnymi. |
LocalHold |
Po Connected |
Połączenie zostało wstrzymane przez lokalnego uczestnika. Żadne media nie przepływają między lokalnym punktem końcowym a uczestnikami zdalnymi. |
RemoteHold |
Po Connected |
Połączenie zostało wstrzymane przez uczestnika zdalnego. Żadne media nie przepływają między lokalnym punktem końcowym a uczestnikami zdalnymi. |
InLobby |
Po Ringing lub Connecting |
Uczestnik zdalny znajduje się w holu spotkania Teams. Żadne media nie przepływają między lokalnym punktem końcowym a uczestnikami zdalnymi. |
Disconnecting |
Po dowolnym stanie | Stan przejściowy przed przejściem wywołania do stanu Disconnected . |
Disconnected |
Stan końcowy | Końcowy stan połączenia. Jeśli połączenie sieciowe zostanie utracone, stan zmieni się na Disconnected po dwóch minutach. |
Stany dla wywołań jeden-do-jednego lub grup:
Stany spotkań usługi Teams:
const callState = call.state;
• callEndReason
: Zwraca obiekt CallEndReason
zawierający dodatkowe informacje o zakończonym wywołaniu. Właściwość code
zwraca liczbę skojarzona z przyczyną i subCode
zwraca liczbę skojarzona z kodem i przyczyną. Aby uzyskać więcej informacji na temat kodów błędów, zobacz Rozwiązywanie problemów z kodami odpowiedzi końca połączenia.
const callEndReason = call.callEndReason;
const callEndReasonCode = callEndReason.code
const callEndReasonSubCode = callEndReason.subCode
• direction
: Zwraca string
reprezentujący kierunek wywołania. Właściwość może mieć jedną z następujących wartości: "Przychodzące" lub Outgoing
.
const isIncoming = call.direction == 'Incoming';
const isOutgoing = call.direction == 'Outgoing';
• : isMuted
Zwraca Boolean
wartość reprezentującą stan wyciszenia lokalnego.
const muted = call.isMuted;
• isScreenSharingOn
: Zwraca Boolean
wartość true, jeśli wysyłasz strumień udostępniania ekranu do innych uczestników.
const isScreenSharingOn = call.isScreenSharingOn;
• localVideoStreams
: zwraca kolekcję LocalVideoStream
obiektów reprezentujących strumienie wideo wysyłane do uczestników zdalnych.
const localVideoStreams = call.localVideoStreams;
Zarządzanie wątkiem czatu
Ważne
Opcjonalny identyfikator czatu jest dostępny tylko w wersji 1.31.2/1.31.2-beta.2 lub nowszej zestawu Sdk wywołującego dla języka JavaScript. Jeśli używasz starszej wersji, upewnij się, że ręcznie podaj unikatowy identyfikator wątku.
Podanie identyfikatora czatu jest opcjonalne do nawiązywania połączeń grupowych i dodawania uczestników do istniejących połączeń. Związany czat i rozmowa mają oddzielne listy uczestników. Przed dodaniem uczestników do połączenia dodaj użytkownika do czatu, aby zapewnić najlepsze środowisko użytkownika i spełnić wymagania dotyczące barier informacyjnych. Dodanie użytkownika do połączenia bez dodawania użytkownika do czatu może spowodować wyjątki, jeśli zostanie skonfigurowana bariera informacyjna.
Rozważmy następujący scenariusz, w którym Alice wywołuje Boba, a następnie Alice dodaje Charliego, a 3 minuty później Alice usuwa Charliego z połączenia.
- Utwórz wątek czatu między Alice, Bob i Charlie. Zachowaj czat
threadId
na później. - Alicja wywołuje Boba i Charliego metodą
startCall
na instancjiTeamsCallAgent
. - Dodaj Dana do wątku czatu
threadId
za pomocą API Chat Graph, aby dodać członka - Alicja dodaje Dana do rozmowy przy użyciu
addParticipant
metody nacall
i określathreadId
. - Alice usuwa dan z wywołania przy użyciu
removeParticipant
metody oncall
i określathreadId
- Usuń Dana z wątku
threadId
czatu przy użyciu Chat Graph API do usunięcia członka
Jeśli użytkownik usługi Teams zatrzymuje nagrywanie połączeń, nagranie zostanie umieszczone w czacie skojarzonym z wątkiem. Podany identyfikator czatu ma wpływ na środowisko użytkowników usługi Teams w klientach usługi Teams.
Zalecenia dotyczące zarządzania identyfikatorem czatu:
- Eskalacja połączenia telefonicznego 1:1 przez dodanie innego uczestnika telefonu:
- Metoda
addParticipant
umożliwia podanie opcjonalnego identyfikatora czatu parametru. Jeśli parametr nie zostanie podany, zostanie utworzony nowy czat grupowy, a wszyscy uczestnicy zostaną dodani do listy uczestników rozmów i czatów. Jeśli parametr jest podany, użytkownicy usługi Teams mogą zobaczyć trwające połączenie skojarzone z tym czatem grupowym w aplikacji Teams. Nowy czat grupowy można utworzyć za pomocą interfejsu API programu Graph.addParticipant(participant: MicrosoftTeamsUserIdentifier | PhoneNumberIdentifier | MicrosoftTeamsAppIdentifier | UnknownIdentifier)
- Metoda
- Rozpocznij połączenie grupowe z jednym użytkownikiem Microsoft 365 i wieloma uczestnikami telefonicznymi:
- Interfejs API metody
startCall
umożliwia uruchomienie wywołania grupy z wieloma uczestnikami i opcjonalnie podanie identyfikatora czatu. Jeśli parametr nie zostanie podany, zostanie utworzony nowy czat grupowy, a wszyscy uczestnicy platformy Microsoft 365 zostaną dodani do listy uczestników rozmów i czatów. Jeśli parametr jest podany, użytkownicy usługi Teams mogą zobaczyć trwające połączenie skojarzone z tym czatem grupowym w aplikacji Teams. Nowy czat grupowy można utworzyć za pomocą interfejsu API programu Graph.startCall(MicrosoftTeamsUserIdentifier | PhoneNumberIdentifier | MicrosoftTeamsAppIdentifier | UnknownIdentifier)[])
- Użyj Graph API, aby uzyskać istniejący identyfikator czatu, w którym jedynym uczestnikiem jest użytkownik Teams, lub utwórz nowy czat grupowy z uczestnikami: identyfikator użytkownika Teams i "00000000-0000-0000-0000-000000000000".
- Interfejs API metody
- Rozpocznij połączenie grupowe z ponad 2 użytkownikami platformy Microsoft 365:
- (Opcjonalny sposób) Podczas nawiązywania połączenia grupowego z więcej niż 2 użytkownikami platformy Microsoft 365 przy użyciu ACS Calling SDK, SDK automatycznie utworzy wątek.
startCall(MicrosoftTeamsUserIdentifier | PhoneNumberIdentifier | MicrosoftTeamsAppIdentifier | UnknownIdentifier)[])
- W razie potrzeby deweloper może podać unikatowy identyfikator czatu, aby rozpocząć połączenie grupowe lub dodać uczestników. W takim przypadku pakiet ACS Calling SDK użyje podanego identyfikatora czatu, aby utworzyć połączenie grupowe. Wątek czatu jest tworzony dla użytkowników usługi Teams, a ten wątek jest skojarzony z wywołaniem grupy dla użytkowników w aplikacji Teams. Dzięki temu mogą rozmawiać podczas rozmowy. Zarządzanie wątkami czatu można wykonywać za pośrednictwem interfejsu API programu Graph
- (Opcjonalny sposób) Podczas nawiązywania połączenia grupowego z więcej niż 2 użytkownikami platformy Microsoft 365 przy użyciu ACS Calling SDK, SDK automatycznie utworzy wątek.