Verwalten von Aufrufen für Teams Benutzer mit Communication Services Aufrufen des SDK
Lernen Sie, wie Sie Anrufe mit den Azure Communication Services SDKS verwalten können. Wir erfahren, wie Sie Anrufe tätigen sowie ihre Teilnehmer und Eigenschaften verwalten.
Voraussetzungen
- Ein Azure-Konto mit einem aktiven Abonnement. Sie können kostenlos ein Konto erstellen.
- Eine bereitgestellte Communication Services-Ressource. Erstellen Sie eine Communication Services-Ressource.
- Ein
User Access Token
, um den Anrufclient zu aktivieren. Weitere Informationen zum Abrufen einesUser Access Token
- Optional: Vervollständigen Sie den Schnellstart für die ersten Schritte zum Hinzufügen von Videogesprächen zu Ihrer Anwendung
Das SDK installieren
Verwenden Sie den Befehl npm install
, um das Azure Communication Services Calling SDK sowie allgemeine SDKs für JavaScript zu installieren.
npm install @azure/communication-common --save
npm install @azure/communication-calling --save
Initialisieren erforderlicher Objekte
Erstellen Sie eine CallClient
-Instanz, um den Anrufstapel zu initiieren. Sie können die Protokollierung der SDK-Aufrufe mit der AzureLogger
-Instanz und der setLogLevel
-Methode konfigurieren. Zugriff auf den deviceManager
für das Betriebssystem erhalten Sie über die Methode getDeviceManager
.
Verwenden Sie dann die Methode createTeamsCallAgent
, um asynchron eine TeamsCallAgent
-Instanz zu erstellen, die eingehende und ausgehende Anrufe für einen Teams-Benutzer verwaltet. Die Methode akzeptiert CommunicationTokenCredential
als Argument, das Zugriffstoken für Teams-Benutzer darstellt.
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();
Tätigen eines Anrufs
Starten Sie einen synchronen Eins-zu-Eins-Gruppenanruf mit der startCall
-API von teamsCallAgent
. Sie können MicrosoftTeamsUserIdentifier
oder PhoneNumberIdentifier
als Parameter übergeben, um das Ziel des Anrufs zu definieren. Die Methode gibt die TeamsCall
-Instanz zurück, die Ihnen das Abonnieren von Anrufereignissen ermöglicht.
Hinweis
Das Starten eines Gruppenanrufs mit teamsCallAgent
erfordert die threadId
des Chats beim Aufrufen der startCall
-Methode. Die erstellte TeamsCall
-Instanz weist die Eigenschaft threadId
auf, die diesen Thread erfasst. Das Communication Services-Anruf-SDK erhält keine Synchronizität der Teilnehmer in der Chat- und der Anrufliste aufrecht. Microsoft fordert Entwickler auf, die Listen im Sinne einer optimalen Benutzererfahrung synchron zu halten. Lernen Sie, wie man Chat-Threads verwaltet.
Starten eines Eins-zu-Eins-VoIP-Anrufs an Teams-Benutzer:
const userCallee = { microsoftTeamsUserId: '<MICROSOFT_TEAMS_USER_ID>' };
const oneToOneCall = teamsCallAgent.startCall(userCallee);
Starten eines Eins-zu-Eins-Telefonanruf an eine E.164-Telefonnummer:
const phoneCallee = { phoneNumber: '<PHONE_NUMBER_E164_FORMAT>' }
const oneToOneCall = teamsCallAgent.startCall(phoneCallee );
Starten eines Gruppenanrufs an Teams-Benutzer mit VoIP und Telefonnummer:
const userCallee = { microsoftTeamsUserId: '<MICROSOFT_TEAMS_USER_ID>' }
const phoneCallee = { phoneNumber: '<PHONE_NUMBER_E164_FORMAT>'};
const groupCall = teamsCallAgent.startCall([userCallee, phoneCallee], { threadId: '<THREAD_ID>' });
Join a call
An einer Teams-Besprechung teilnehmen
Sie können Teams-Besprechungen mit der Methode join
der teamsCallAgent
-Instanz beitreten. Teams-Benutzer können an einer Teams-Besprechung teilnehmen, indem sie einen TeamsMeetingLinkLocator
, TeamsMeetingCoordinatesLocator
oder TeamsMeetingIdLocator
angeben.
Teilnehmen an einer Teams-Besprechung mit Besprechungs-URL:
const meetingCall = teamsCallAgent.join({ meetingLink: '<MEETING_LINK>' });
Teilnehmen an Teams-Besprechungen mit einer Kombination aus Thread-ID, Organisator-ID, Mandanten-ID und Nachrichten-ID:
const meetingCall = teamsCallAgent.join({ threadId: '<THREAD_ID>', organizerId: '<ORGANIZER_ID>', tenantId: '<TENANT_ID>', messageId: '<MESSAGE_ID>' });
Teilnehmen an einer Teams-Besprechung mit Besprechungscode und Passcode:
const meetingCall = teamsCallAgent.join({ meetingId: '<MEETING_CODE>', passcode: '<PASSCODE>'});
Teilnehmen an einer Teams-Besprechung mit Besprechungs-ID und Passcode:
Fachkräfte in der Entwicklung können teilnehmende Personen auf mehrere Arten mit einer Teams-Besprechung verbinden. Eine Möglichkeit besteht darin, die Besprechungs-ID und Passcode, mit der Personen an der Teams-Besprechung teilnehmen können, zu der sie von einem Gerät oder einer Anwendung eingeladen werden. Sie müssen immer sowohl die Besprechungs-ID als auch den Passcode angeben, um an der Besprechung teilzunehmen. Bei dem Passcode müssen Sie die Groß-/Kleinschreibung beachten.
Das Format der Besprechungs-ID und des Passcode lautet:
- Besprechungs-ID: 12 Ziffern.
- Passcode: 6 Zeichen
Wie oft müssen Sie die Besprechungs-ID und den Passcode aktualisieren?
- Die Besprechungs-ID und der Passcode werden nicht geändert, nachdem sie erstellt wurden. Fachkräfte in der Entwicklung müssen nichts davon aktualisieren.
- Die Person, die die Besprechung in Teams organiesiert, kann die Besprechungs-ID und den Passcode nicht neu generieren.
Macht es einen Unterschied bei einer Teams-Besprechung, wenn eine Person über URL oder die Besprechungs-ID und den Passcode teilnimmt?
- Nein, teilnehmende Personen haben dieselbe Erfahrung, wenn sie entweder über die Teams-Besprechungs-URL oder die Besprechungs-ID oder die Kennung an einer Teams-Besprechung teilnehmen.
Wie sollten Fachkräfte in der Entwicklung den Passcode speichern und verwalten?
- Die Besprechungs-ID und der Passcode sind Koordinaten für die Teilnahme an der Besprechung. Fachkräfte in der Entwicklung sollten ihn als geheime Schlüssel behandeln, die verschlüsselt werden sollten, und wenn sie gespeichert werden, stellen Sie sicher, dass sie sich in einer zugriffsgesteuerten Umgebung befinden.
- Wenn die Koordinaten verfügbar gemacht werden, kann jeder an der Besprechung teilnehmen und so die Erfahrung für alle Teilnehmer der Besprechung beeinträchtigt werden.
Wie erhalte ich die Besprechungs-ID und den Passcode?
- Graph-API: Verwenden Sie die Graph-API, um Informationen zur
onlineMeeting
-Ressource abzurufen und das Objekt in der EigenschaftjoinMeetingIdSettings
zu überprüfen. - Teams: Wechseln Sie in Ihrer Teams-Anwendung zur
Calendar
-App und öffnen Sie Details zu einer Besprechung. Onlinebesprechungen haben die Besprechungs-ID und den Passcode in der Definition der Besprechung. - Outlook: Sie finden die Besprechungs-ID und den Passcode in den Kalenderereignissen oder in E-Mail-Besprechungseinladungen.
- Entwickler können die Besprechungs-ID und den Passcode nicht über das aufrufende SDK abrufen oder aus Verbose-Protokollen abrufen.
- Graph-API: Verwenden Sie die Graph-API, um Informationen zur
Wie kann ich überprüfen, ob die Besprechungs-ID und der Passcode korrekt sind?
- Die Besprechungs-ID und der Passcode können wie folgt überprüft werden: https://www.microsoft.com/en-us/microsoft-teams/join-a-meeting.
Empfangen eines eingehenden Teams-Anrufs
Sie können das incomingCall
-Ereignis der teamsCallAgent
-Instanz abonnieren, um eingehende Anrufe für den Teams-Benutzer zu registrieren. Das Ereignis weist eine Eigenschaft teamsIncomingCall
mit TeamsIncomingCall
-Instanz auf, die Ihnen das accept
oder reject
des eingehenden Anrufs ermöglicht.
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);
Aktivieren und Deaktivieren von Video
Sie können Ihre lokale Videostreamsammlung aus der Eigenschaft localVideoStreams
in der TeamsCall
-Instanz abrufen. Wenn die Sammlung aktiviert ist, enthält sie einen Bildschirmfreigabe-Datenstrom und Kameravideofeeds. Sie können Videostreams von Remoteteilnehmern abrufen, indem Sie die Eigenschaft TeamsCall
untersuchen.remoteParticipants
, wobei jeder Teilnehmer über eine Sammlung von Videostreams in der Eigenschaft videoStreams
verfügt.
Stumm schalten aktiveren und deaktivieren
Sie können die asynchronen APIs mute
und unmute
der TeamsCall
-Instanz verwenden, um Teams-Benutzer lokal stummzuschalten bzw. ihre Stummschaltung aufzuheben. Das lokale Stummschalten verhindert, dass Audiosignale an andere Teilnehmer gesendet werden.
//mute local device
await call.mute();
//unmute local device
await call.unmute();
Andere Teilnehmer stummschalten
Um alle anderen Teilnehmer stummzuschalten oder einen bestimmten Teilnehmer stummzuschalten, können Sie die asynchronen APIs muteAllRemoteParticipants
für den Anruf und mute
für den Remote-Teilnehmer verwenden:
//mute all participants except yourself
await call.muteAllRemoteParticipants();
//mute a specific participant
await call.remoteParticipants[0].mute();
Hinweis
Diese API wird als Vorschau für Entwickler bereitgestellt. Je nachdem, welches Feedback wir dazu erhalten, werden möglicherweise Änderungen vorgenommen. Verwenden Sie diese API nicht in einer Produktionsumgebung. Verwenden Sie zum Verwenden dieser API die Betaversion des Azure Communication Services Calling Web SDK.
Verwalten von Remoteteilnehmern
Die anderen Anrufteilnehmer stehen in der TeamsCall
-Instanz unter der Eigenschaft remoteParticipants
zur Verfügung. Es handelt sich um eine Sammlung von RemoteParticipant
-Objekten. Sie können die anderen teilnehmenden Personen des Anrufs auflisten, hinzufügen oder entfernen.
Hinweis
Das Hinzufügen einer Teilnehmermethode erfordert die threadId
des Chats. Das Communication Services-Anruf-SDK erhält keine Synchronizität der Teilnehmer in der Chat- und der Anrufliste aufrecht. Microsoft fordert Entwickler auf, die Listen im Sinne einer optimalen Benutzererfahrung synchron zu halten. Lernen Sie, wie man Chat-Threads verwaltet.
Sie können dem Teams-Anruf oder der Teams-Besprechung einen neuen Teams-Benutzer oder eine Telefonnummer hinzufügen, indem Sie die Methode addParticipant
des TeamsCall
-Objekts aufrufen. Die Methode akzeptiert die Bezeichner MicrosoftTeamsUserIdentifier
oder PhoneNumberIdentifier
als Eingabe, gibt synchron die Instanz von RemoteParticipant
zurück und löst das Ereignis remoteParticipantsUpdated
in der TeamsCall
-Instanz aus.
Sie können einen Teilnehmer aus dem Teams-Anruf- oder der Teams-Besprechung entfernen, indem Sie die removeParticipant
-Methode der TeamsCall
-Instanz asynchron aufrufen. Die Methode akzeptiert die Bezeichner MicrosoftTeamsUserIdentifier
oder PhoneNumberIdentifier
als Eingabe. Die Methode wird aufgelöst, wenn RemoteParticipant
aus der Sammlung remoteParticipants
entfernt wird, und das Ereignis remoteParticipantsUpdated
der TeamsCall
-Instanz wird ausgelöst.
Auflisten anderer Anrufteilnehmer:
const participants = call.remoteParticipants; // [remoteParticipant, remoteParticipant....]
Hinzufügen von Teams-Benutzern und Telefonnummern zum Teams-Anruf oder der Teams-Besprechung:
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>' });
Entfernen von Teams-Benutzern und Telefonnummern aus dem Teams-Anruf oder der Teams-Besprechung:
const teamsUser = { microsoftTeamsUserId: '<MICROSOFT_TEAMS_USER_ID>' };
const phoneUser = { phoneNumber: '<PHONE_NUMBER_E164_FORMAT>' }
await call.removeParticipant(teamsUser);
await call.removeParticipant(phoneUser);
Remoteteilnehmer
Remoteteilnehmer stellen einen Endpunkt dar, der mit dem laufenden Teams-Anruf oder der Teams-Besprechung verbunden ist. Die Klasse remoteParticipant
weist den folgenden Satz von Eigenschaften und Sammlungen auf:
identifier
: Gibt einen der folgenden Bezeichner zurück:CommunicationUserIdentifier
,MicrosoftTeamsUserIdentifier
,PhoneNumberIdentifier
oderUnknownIdentifier
.
const identifier = remoteParticipant.identifier;
state
: Gibt einenstring
zurück, der den Zustand eines Remoteteilnehmers darstellt. Der Zustand kann einen der folgenden Werte haben:
Zustandswert | When | Beschreibung |
---|---|---|
Idle |
Anfangszustand | Dies ist der erste Zustand des Teilnehmers |
Connecting |
Nach Idle |
Übergangszustand während sich der Teilnehmer mit dem Anruf verbindet. |
Ringing |
Nach Connecting |
Der Teilnehmer hat eine incomingCall -Benachrichtigung erhalten, oder der Teams-Client läutet |
Connected |
Nach Ringing , Connecting , EarlyMedia oder InLobby |
Der Teilnehmer hat die Anrufeinladung angenommen oder ist dem Anruf beigetreten. Die Medien fließen zum Teilnehmer. |
Hold |
Nach Connected |
Die teilnehmende Person ist im Anruf gehalten worden. |
EarlyMedia |
Nach Connecting |
Die Medienwiedergabe erfolgt, bevor ein Teilnehmer eine Verbindung mit dem Anruf herstellt |
InLobby |
Nach Ringing , Connecting oder EarlyMedia |
Der Teilnehmer befindet sich im Wartebereich für Teams-Besprechungen. |
Disconnected |
Endzustand | Der Teilnehmer wird vom Anruf getrennt. Wenn der Remoteteilnehmer seine Netzwerkkonnektivität verliert, ändert sich der Zustand nach zwei Minuten in Disconnected . |
Status von Remote-Teilnehmern in 1:1- oder Gruppenanrufen:
Status von Remote-Teilnehmern in Teams-Besprechungen:
const state = remoteParticipant.state;
callEndReason
: Gibt ein Objekt zurück, das zusätzliche Informationen zum Grund des Beendens des Aufrufs enthält. Eigenschaftcode
gibt eine Zahl zurück, die dem Grund zugeordnet ist, undsubCode
gibt eine Zahl zurück, die dem Code und dem Grund zugeordnet ist. Weitere Informationen zu Fehlercodes finden Sie unter Problembehandlung von Anrufendantwortcodes.
const callEndReason = remoteParticipant.callEndReason;
const callEndReasonCode = callEndReason.code
const callEndReasonSubCode = callEndReason.subCode
isMuted
: Gibt den WertBoolean
zurück, der einen Status der lokalen Stummschaltung darstellt.
const isMuted = remoteParticipant.isMuted;
isSpeaking
: Gibt den WertBoolean
zurück, der den Status eines gesendeten, nicht leeren Audiosignals darstellt.
const isSpeaking = remoteParticipant.isSpeaking;
videoStreams
: Gibt eine Sammlung vonRemoteVideoStream
-Objekten zurück, die von Teilnehmern gesendet werden.
const videoStreams = remoteParticipant.videoStreams; // [RemoteVideoStream, ...]
displayName
: Gibt einenstring
zurück, der den Anzeigenamen darstellt. Das Communication Services Anruf-SDK legt diesen Wert für Teams-Benutzer nicht fest.
const displayName = remoteParticipant.displayName;
Call
id
: Gibt eine Zeichenfolge zurück, die einen eindeutigen Anrufbezeichner darstellt.
const callId = call.id;
• info
: Gibt Informationen über den Anruf zurück:
Hinweis
Diese API wird als Vorschau für Entwickler bereitgestellt. Je nachdem, welches Feedback wir dazu erhalten, werden möglicherweise Änderungen vorgenommen. Verwenden Sie diese API nicht in einer Produktionsumgebung. Zum Verwenden dieser API nutzen Sie bitte das 'Beta'-Release des Azure Communication Services Calling Web SDK
• info
: Gibt ein Objekt zurück, das Informationen zum Anruf enthält. Die Eigenschaft threadId
ist eine Zeichenfolge, die die Thread-ID des Chats darstellt, die im Teams-Client angezeigt wird.
const callInfo = call.info;
const threadId = call.info.threadId;
• remoteParticipants
: Gibt eine Sammlung von remoteParticipant
-Objekten zurück, die andere Teilnehmer im Teams-Anruf oder der Teams-Besprechung darstellen.
const remoteParticipants = call.remoteParticipants;
• callerInfo
: Gibt das CallerInfo
Objekt für eingehende Anrufe zurück. Die Eigenschaft identifier
kann eins der folgenden Objekte sein: CommunicationUserIdentifier
, MicrosoftTeamsUserIdentifier
, PhoneNumberIdentifier
oder UnknownIdentifier
. Die Eigenschaft displayName
ist eine Zeichenfolge, die den anzuzeigenden Namen darstellt, falls sie festgelegt wurde.
const callerIdentity = call.callerInfo.identifier;
const callerIdentity = call.callerInfo.displayName;
• state
: Gibt eine Zeichenfolge zurück, die den Zustand des Anrufs darstellt. Die Eigenschaft kann einen der folgenden Werte haben:
Zustandswert | When | Beschreibung |
---|---|---|
None |
Anfangszustand | Der anfängliche Zustand des Anrufs. |
Connecting |
Nach None |
Der Zustand, wenn ein Teams-Anruf oder eine Teams-Besprechung getätigt, ihm beigetreten oder er angenommen wird. |
Ringing |
Nach Connecting |
Der Remoteteilnehmer hat das incomingCall -Ereignis empfangen, oder der Teams-Client läutet. |
EarlyMedia |
Nach Ringing oder Connecting |
Die Medienwiedergabe erfolgt, bevor der Anruf verbunden ist. |
Connected |
Nach Ringing , EarlyMedia , InLobby , LocalHold und RemoteHold |
Der Anruf ist verbunden. Medien werden zwischen den lokalen Endpunkten und den Remoteteilnehmern übertragen. |
LocalHold |
Nach Connected |
Der Anruf wurde von einem lokalen Teilnehmer auf Halten gesetzt. Zwischen dem lokalen Endpunkt und den Remoteteilnehmern werden keine Medien übertragen. |
RemoteHold |
Nach Connected |
Der Anruf wurde von einem Remoteteilnehmer auf Halten gesetzt. Zwischen dem lokalen Endpunkt und den Remoteteilnehmern werden keine Medien übertragen. |
InLobby |
Nach Ringing oder Connecting |
Der Remoteteilnehmer befindet sich im Wartebereich für Teams-Besprechungen. Zwischen dem lokalen Endpunkt und den Remoteteilnehmern werden keine Medien übertragen. |
Disconnecting |
Nach jedem Zustand | Der Übergangszustand, bevor der Anruf in den Zustand Disconnected übergeht. |
Disconnected |
Endzustand | Der Endzustand des Anrufs. Wenn die Netzwerkverbindung unterbrochen wird, ändert sich der Zustand nach zwei Minuten in Disconnected . |
Status für 1:1- oder Gruppenanrufe:
Status für Teams-Besprechungen:
const callState = call.state;
• callEndReason
: Gibt das Objekt CallEndReason
zurück, das zusätzliche Informationen über den beendeten Anruf enthält. Die Eigenschaft code
gibt eine Zahl zurück, die dem Grund zugeordnet ist, und subCode
gibt eine Zahl zurück, die dem Code und dem Grund zugeordnet ist. Weitere Informationen zu Fehlercodes finden Sie unter Problembehandlung von Anrufendantwortcodes.
const callEndReason = call.callEndReason;
const callEndReasonCode = callEndReason.code
const callEndReasonSubCode = callEndReason.subCode
• direction
: Gibt einen string
zurück, der die Richtung des Aufrufs angibt. Die Eigenschaft kann einen der folgenden Werte haben: „Eingehend“ oder Outgoing
.
const isIncoming = call.direction == 'Incoming';
const isOutgoing = call.direction == 'Outgoing';
• isMuted
: Gibt einen Boolean
-Wert zurück, der einen Zustand der lokalen Stummschaltung darstellt.
const muted = call.isMuted;
• isScreenSharingOn
: Gibt den Boolean
-Wert „Wahr“ zurück, wenn Sie einen Bildschirmfreigabe-Datenstrom an andere Teilnehmer senden.
const isScreenSharingOn = call.isScreenSharingOn;
• localVideoStreams
: Gibt eine Sammlung von LocalVideoStream
-Objekten zurück, die Videodatenströme darstellt, die an Remoteteilnehmer gesendet werden.
const localVideoStreams = call.localVideoStreams;
Chat-Thread verwalten
Wichtig
Die optionale Chat-ID ist nur in der Version 1.29.1 oder höher des Calling SDK für JavaScript verfügbar. Wenn Sie eine frühere Version verwenden, stellen Sie sicher, dass Sie manuell eine eindeutige Chat-ID angeben.
Das Angeben einer Chat-ID ist zum Durchführen von Gruppenanrufen und zum Hinzufügen von Teilnehmern zu vorhandenen Anrufen optional. Zugeordnete Chats und Anrufe weisen eine separate Teilnehmerliste auf. Bevor Sie dem Anruf Teilnehmer hinzufügen, fügen Sie den Benutzer zum Chat hinzu, um die beste Benutzererfahrung zu bieten und die Anforderungen an die Informationsbarriere zu erfüllen. Das Hinzufügen eines Benutzers zum Anruf, ohne ihn dem Chat hinzuzufügen, kann zu Ausnahmen führen, wenn eine Informationsbarriere eingerichtet ist.
Stellen Sie sich folgendes Szenario vor: Alice telefoniert mit Bob, dann fügt Alice Charlie hinzu, und 3 Minuten später entfernt Alice Charlie aus dem Anruf.
- Erstellen Sie einen Chat-Thread zwischen Alice, Bob und Charlie. Halten Sie den Chat
threadId
für später. - Alice ruft Bob und Charlie mithilfe der
startCall
-Methode derTeamsCallAgent
-Instanz auf. - Fügen Sie Dan zum Chat-Thread mit
threadId
hinzu, und verwenden Sie Chat Graph-API zum Hinzufügen von Mitgliedern - Alice fügt Dan zum Anruf hinzu und verwendet dazu die Methode
addParticipant
voncall
und gibt diethreadId
an - Alice entfernt Dan aus dem Anruf mit der Methode
removeParticipant
voncall
und gibt diethreadId
an - Entfernen Sie Dan aus dem Chat-Thread mit
threadId
unter Verwendung der Chat Graph-API zum Entfernen von Mitgliedern
Wenn ein Teams-Benutzer die Gesprächsaufzeichnung beendet, wird die Aufzeichnung in den mit dem Thema verbundenen Chat gestellt. Die angegebene Chat-ID wirkt sich auf Teams-Benutzer in Teams-Clients aus.
Empfehlungen für die Verwaltung der Chat-ID:
- Eskalation des 1:1-Telefonanrufs durch Hinzufügen eines weiteren Telefonteilnehmers:
- Mit der Methode
addParticipant
können Sie eine optionale Parameterchat-ID angeben. Wenn der Parameter nicht angegeben wird, wird ein neuer Gruppenchat erstellt, und alle Teilnehmer werden der Anruf- und Chatteilnehmerliste hinzugefügt. Wenn der Parameter angegeben wird, können Teams-Benutzer in der Teams-App den laufenden Anruf sehen, der diesem Gruppenchat zugeordnet ist. Sie können einen neuen Gruppenchat über die Graph-API erstellen.addParticipant(participant: MicrosoftTeamsUserIdentifier | PhoneNumberIdentifier | MicrosoftTeamsAppIdentifier | UnknownIdentifier)
- Mit der Methode
- Starten Sie den Gruppenanruf mit einem einzelnen Microsoft 365-Benutzer und mehreren Telefonteilnehmern:
- Die Methode mit der
startCall
-API ermöglicht es Ihnen, einen Gruppenanruf mit mehreren Teilnehmern zu starten und optional eine Chat-ID bereitzustellen. Wenn der Parameter nicht angegeben wird, wird ein neuer Gruppenchat erstellt, und alle Microsoft 365-Teilnehmer werden der Anruf- und Chatteilnehmerliste hinzugefügt. Wenn der Parameter angegeben wird, können Teams-Benutzer in der Teams-App den laufenden Anruf sehen, der diesem Gruppenchat zugeordnet ist. Sie können einen neuen Gruppenchat über die Graph-API erstellen.startCall(MicrosoftTeamsUserIdentifier | PhoneNumberIdentifier | MicrosoftTeamsAppIdentifier | UnknownIdentifier)[])
- Verwenden Sie die Graph-API, um eine vorhandene Chat-ID nur mit dem Teams-Benutzer als Teilnehmer abzurufen, oder erstellen Sie einen neuen Gruppenchat mit Teilnehmern: Teams-Benutzer-ID und „00000000-0000-0000-0000-000000000000“.
- Die Methode mit der
- Starten eines Gruppenanrufs mit mehr als zwei Microsoft 365-Benutzern:
- (Optionaler Weg) Wenn Sie einen Gruppenanruf mit mehr als zwei Microsoft 365-Benutzern mit dem ACS-Calling-SDK durchführen, erstellt das SDK standardmäßig automatisch den Thread.
startCall(MicrosoftTeamsUserIdentifier | PhoneNumberIdentifier | MicrosoftTeamsAppIdentifier | UnknownIdentifier)[])
- Bei Bedarf kann der Entwickler eine eindeutige Chat-ID bereitstellen, um den Gruppenanruf zu starten oder Teilnehmer hinzuzufügen. In diesem Fall verwendet das ACS-Calling-SDK die angegebene Chat-ID, um den Gruppenanruf zu erstellen. Für die Teams-Benutzer wird ein Chatthread erstellt, und dieser Thread wird dem Gruppenanruf für Benutzer in der Teams-App zugeordnet. Auf diese Weise können sie während des Anrufs chatten. Die Chatthreadverwaltung kann über die Graph-API vorgenommen werden.
- (Optionaler Weg) Wenn Sie einen Gruppenanruf mit mehr als zwei Microsoft 365-Benutzern mit dem ACS-Calling-SDK durchführen, erstellt das SDK standardmäßig automatisch den Thread.