Hinzufügen eines Microsoft Teams-Benutzers zu einem vorhandenen Anruf mithilfe der Anrufautomatisierung
In dieser Schnellstartanleitung verwenden wir die Azure Communication Services-Anrufautomatisierungs-APIs zum Hinzufügen, Entfernen und Übertragen von Anrufen an einen Teams-Benutzer.
Voraussetzungen
- Ein Azure-Konto mit einem aktiven Abonnement. Details finden Sie im Artikel zum Erstellen eines kostenlosen Azure-Kontos.
- Eine Microsoft Teams Telefon-Lizenz und ein Teams-Mandant mit Administratorrechten. Eine Teams Telefon-Lizenz ist eine Voraussetzung für die Verwendung dieses Features. Hier erfahren Sie mehr über Teams-Lizenzen. Der Microsoft Teams-Benutzer muss auch für
voice
aktiviert sein, siehe Einrichten Ihres Telefonsystems. Administratorrechte sind erforderlich, um die Communication Services-Ressource zum Aufrufen von Microsoft Teams-Benutzern zu autorisieren, die weiter unten in Schritt 1 erläutert werden. - Eine bereitgestellte Communication Services-Ressource und eine gültige Verbindungszeichenfolge. Diese finden Sie, indem Sie im Menü auf der linken Seite des Azure-Portals die Option „Schlüssel“ auswählen.
- Abrufen einer PSTN-Telefonnummer über die Communication Services-Ressource Notieren Sie sich die abgerufene Telefonnummer für die Verwendung in dieser Schnellstartanleitung.
- Ein Azure Event Grid-Abonnement zum Empfangen des
IncomingCall
Ereignisses. - Die neueste API-Bibliothek für die Anrufautomatisierung des Azure Communication Service für Ihr Betriebssystem.
- Ein Webdienst, der die API-Bibliothek für die Anrufautomatisierung implementiert, folgen Sie diesem Tutorial.
Schritt 1: Autorisierung für Ihre Azure Communication Services-Ressource zum Aktivieren des Anrufs an Microsoft Teams-Benutzer
Um das Aufrufen über Anrufautomatisierungs-APIs zu aktivieren, muss ein Microsoft Teams-Administrator oder globaler Administrator explizit den Zugriff der Communication Services-Ressourcen auf seinen Mandanten aktivieren, um Anrufe zuzulassen.
Set-CsTeamsAcsFederationConfiguration (MicrosoftTeamsPowerShell) Mandantenebene, die den Partnerverbund zwischen ihrem Mandanten und bestimmten Communication Services-Ressourcen aktiviert/deaktiviert.
Set-CsExternalAccessPolicy (SkypeForBusiness) Benutzerrichtlinie, mit der der Administrator weiter steuern kann, welche Benutzer in ihrer Organisation an der Verbundkommunikation mit Communication Services-Benutzern teilnehmen können.
Schritt 2: Verwenden der Graph-API zum Abrufen der Microsoft Entra-Objekt-ID für Microsoft Teams-Benutzer und optionale Überprüfung der Anwesenheit
Die Microsoft Entra-Objekt-ID (OID) eines Teams-Benutzers ist erforderlich, um sie aus einem Communication Services-Aufruf hinzuzufügen oder zu ihnen zu übertragen. Das OID kann über 1) Office-Portal, 2) Microsoft Entra Admin Center, 3) Microsoft Entra Connect; oder 4) Graph-API abgerufen werden. Im folgenden Beispiel wird die Graph-API verwendet:
Ein Microsoft Entra-Administrator muss die Zustimmung erteilen, bevor Graph für die Suche nach Benutzern verwendet werden kann. Weitere Informationen finden Sie im Übersichtsdokument der Microsoft Graph-Sicherheits-API. Das OID kann mithilfe der Listenbenutzer-API abgerufen werden, um nach Benutzern zu suchen. Das folgende Beispiel zeigt eine Suche anhand des Anzeigenamens angezeigt, aber Sie können auch nach anderen Eigenschaften suchen:
Auflisten von Benutzern mit Microsoft Graph v1.0:
Request:
https://graph.microsoft.com/v1.0/users?$search="displayName:Art Anderson"
Permissions:
Application and delegated. Refer to documentation.
Response:
"@odata.context": "https://graph.microsoft.com/v1.0/$metadata#users",
"value": [
{
"displayName": "Art Anderson",
"mail": "artanderson@contoso.com",
"id": "fc4ccb5f-8046-4812-803f-6c344a5d1560"
}
Optional können Anwesenheitsinformationen für einen Benutzer mithilfe der Get Presence-API und der User ObjectId abgerufen werden. Weitere Informationen finden Sie in der Microsoft Graph v1.0-Dokumentation.
Request:
https://graph.microsoft.com/v1.0/users/fc4ccb5f-8046-4812-803f-6c344a5d1560/presence
Permissions:
Delegated only. Application not supported. Refer to documentation.
Response:
"@odata.context": "https://graph.microsoft.com/v1.0/$metadata#users('fc4ccb5f-8046-4812-803f-6c344a5d1560')/presence/$entity",
"id": "fc4ccb5f-8046-4812-803f-6c344a5d1560",
"availability": "Offline",
"activity": "Offline"
Schritt 3: Hinzufügen eines Teams-Benutzers zu einem vorhandenen Communication Services-Aufruf, der von Anrufautomatisierungs-APIs gesteuert wird
Sie müssen den erforderlichen Schritt ausführen und über eine Webdienst-App verfügen, um einen Communication Services-Aufruf zu steuern. Fügen Sie mithilfe des callConnection-Objekts einen Teilnehmer zum Anruf hinzu.
CallAutomationClient client = new CallAutomationClient('<Connection_String>');
AnswerCallResult answer = await client.AnswerCallAsync(incomingCallContext, new Uri('<Callback_URI>'));
await answer.Value.CallConnection.AddParticipantAsync(
new CallInvite(new MicrosoftTeamsUserIdentifier('<Teams_User_Guid>'))
{
SourceDisplayName = "Jack (Contoso Tech Support)"
});
CallAutomationClient client = new CallAutomationClientBuilder().connectionString("<resource_connection_string>").buildClient();
AnswerCallResult answer = client.answerCall(incomingCallContext, "<Callback_URI>"));
answer.getCallConnection().addParticipant(
new CallInvite(new MicrosoftTeamsUserIdentifier("<Teams_User_Guid>"))
.setSourceDisplayName("Jack (Contoso Tech Support)"));
const client = new CallAutomationClient("<resource_connection_string>");
const answer = await client.answerCall(incomingCallContext, "<Callback_URI>"));
answer.callConnection.addParticipant({
targetParticipant: { microsoftTeamsUserId: "<Teams_User_Guid>" },
sourceDisplayName: "Jack (Contoso Tech Support)"
});
call_automation_client = CallAutomationClient.from_connection_string("<resource_connection_string>")
answer = call_automation_client.answer_call(incoming_call_context = incoming_call_context, callback_url = "<Callback_URI>")
call_connection_client = call_automation_client.get_call_connection(answer.call_connection_id)
call_connection_client.add_participant(target_participant = CallInvite(
target = MicrosoftTeamsUserIdentifier(user_id="<USER_ID>"),
source_display_name = "Jack (Contoso Tech Support)"))
Auf dem Microsoft Teams-Desktopclient wird Jacks Anruf über eine eingehende Popupbenachrichtigung an den Microsoft Teams-Benutzer gesendet.
Nachdem der Microsoft Teams-Benutzer den Anruf angenommen hat, wird die Anruffunktion für den Microsoft Teams-Benutzer alle Teilnehmer in der Microsoft Teams-Liste angezeigt. Ihre Anwendung, die den Anruf mithilfe der Anrufautomatisierungs-API verwaltet, bleibt auf dem Anrufbildschirm für Teams-Benutzer ausgeblendet.
Schritt 4: Entfernen eines Teams-Benutzers aus einem vorhandenen Communication Services-Aufruf, der von Anrufautomatisierungs-APIs gesteuert wird
await answer.Value.CallConnection.RemoveParticipantAsync(new MicrosoftTeamsUserIdentifier('<Teams_User_Guid>'));
answer.getCallConnection().removeParticipant(new MicrosoftTeamsUserIdentifier("<Teams_User_Guid>"));
answer.callConnection.removeParticipant({ microsoftTeamsUserId: "<Teams_User_Guid>" });
call_connection_client.remove_participant(target_participant = MicrosoftTeamsUserIdentifier(user_id="<USER_ID>"))
Optionale Funktion: Übertragung von einem vorhandenen Communication Services-Aufruf, der von Anrufautomatisierungs-APIs gesteuert wird, an einen Teams-Benutzer
await answer.Value.CallConnection.TransferCallToParticipantAsync(new MicrosoftTeamsUserIdentifier('<Teams_User_Guid>'));
answer.getCallConnection().transferCallToParticipant(new MicrosoftTeamsUserIdentifier("<Teams_User_Guid>"));
answer.callConnection.transferCallToParticipant({ microsoftTeamsUserId: "<Teams_User_Guid>" });
call_connection_client.transfer_call_to_participant(target_participant = MicrosoftTeamsUserIdentifier(user_id = "<USER_ID>"))
Bereinigen von Ressourcen
Wenn Sie ein Communication Services-Abonnement bereinigen und entfernen möchten, können Sie die Ressource oder die Ressourcengruppe löschen. Wenn Sie die Ressourcengruppe löschen, werden auch alle anderen Ressourcen gelöscht, die ihr zugeordnet sind. Weitere Informationen zum Bereinigen von Ressourcen finden Sie hier.
Nächste Schritte
- Erfahren Sie, wie Sie Ihre Anrufe aufzeichnen.
- Erfahren Sie mehr über die Anrufautomatisierung und ihre Features.
- Erfahren Sie mehr über die Funktionen der Teams-Interoperabilitätsunterstützung mit der Anrufautomatisierung für Azure Communication Services
- Informieren Sie sich über die Wiedergabeaktion zum Wiedergeben von Audio in einem Anruf.
- Erfahren Sie, wie Sie einen Anrufworkflow für ein Kundensupportszenario erstellen.