Een Microsoft Teams-gebruiker toevoegen aan een bestaand gesprek met behulp van Gespreksautomatisering
In deze quickstart gebruiken we de Azure Communication Services Call Automation-API's om oproepen aan een Teams-gebruiker toe te voegen, te verwijderen en door te zetten.
Vereisten
- Een Azure-account met een actief abonnement, zie Gratis een account maken voor meer informatie.
- Een Microsoft Teams Telefoon licentie en een Teams-tenant met beheerdersbevoegdheden. Teams Phone-licentie is een must om deze functie te kunnen gebruiken. Meer informatie over Teams-licenties vindt u hier. De Gebruiker van Microsoft Teams moet ook zijn
voice
ingeschakeld, zie het instellen van uw telefoonsysteem. Beheerdersbevoegdheden zijn vereist voor het autoriseren van Communication Services-resources om Teams-gebruikers aan te roepen, zoals verderop in stap 1 wordt uitgelegd. - Een geïmplementeerde Communication Service-resource en geldige verbindingsreeks gevonden door sleutels te selecteren in het menu aan de linkerkant in Azure Portal.
- Haal een PSTN-telefoonnummer op uit de Communication Service-resource. Noteer het telefoonnummer dat u hebt aangeschaft voor gebruik in deze quickstart.
- Een Azure Event Grid-abonnement om de
IncomingCall
gebeurtenis te ontvangen. - De nieuwste Api-bibliotheek voor aanroepen van Azure Communication Service voor uw besturingssysteem.
- Volg deze zelfstudie voor een webservice waarmee de API-bibliotheek voor aanroepen wordt geïmplementeerd.
Stap 1: Autorisatie voor uw Azure Communication Services-resource om aanroepen naar Microsoft Teams-gebruikers mogelijk te maken
Als u gesprekken wilt inschakelen via Call Automation-API's, moet een Microsoft Teams-beheerder of globale beheerder de Communication Services-resources expliciet toegang tot hun tenant inschakelen om aanroepen toe te staan.
Instelling op tenantniveau Set-CsTeamsAcsFederationConfiguration (MicrosoftTeamsPowerShell) waarmee federatie tussen hun tenant en specifieke Communication Services-resources wordt ingeschakeld/uitgeschakeld.
Set-CsExternalAccessPolicy (SkypeForBusiness) Gebruikersbeleid waarmee de beheerder verder kan bepalen welke gebruikers in hun organisatie kunnen deelnemen aan federatieve communicatie met Communication Services-gebruikers.
Stap 2: Gebruik de Graph API om de Object-id van Microsoft Entra op te halen voor Teams-gebruikers en optioneel hun aanwezigheid te controleren
De Microsoft Entra-object-id (OID) van een Teams-gebruiker is vereist om ze toe te voegen aan of over te dragen vanuit een Communication Services-aanroep. De OID kan worden opgehaald via 1) Office-portal, 2) Microsoft Entra-beheercentrum, 3) Microsoft Entra Connect; of 4) Graph API. In het volgende voorbeeld wordt Graph API gebruikt.
Een Microsoft Entra-beheerder moet toestemming geven voordat Graph kan worden gebruikt voor het zoeken naar gebruikers. Meer informatie vindt u in het overzichtsdocument van Microsoft Graph beveiligings-API. De OID kan worden opgehaald met behulp van de API voor lijstgebruikers om naar gebruikers te zoeken. In het volgende voorbeeld ziet u een zoekopdracht op weergavenaam, maar u kunt ook zoeken naar andere eigenschappen:
Gebruikers weergeven met 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"
}
Optioneel kan aanwezigheid voor een gebruiker worden opgehaald met behulp van de aanwezigheids-API en de object-id van de gebruiker. Meer informatie over de microsoft Graph v1.0-documentatie.
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"
Stap 3: Een Teams-gebruiker toevoegen aan een bestaande Communication Services-aanroep die wordt beheerd door Call Automation-API's
U moet de vereiste stap voltooien en een webservice-app hebben om een Communication Services-aanroep te beheren. Voeg met behulp van het callConnection-object een deelnemer toe aan de oproep.
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)"))
Op de bureaubladclient van Microsoft Teams wordt Jack's oproep verzonden naar de Microsoft Teams-gebruiker via een pop-upmelding voor binnenkomende oproepen.
Nadat de Gebruiker van Microsoft Teams het gesprek heeft geaccepteerd, worden in de gesprekservaring voor de Microsoft Teams-gebruiker alle deelnemers weergegeven in het Microsoft Teams-rooster. Uw toepassing die de aanroep beheert met behulp van de Call Automation-API blijft verborgen voor teams-gebruikers op het gespreksscherm.
Stap 4: Een Teams-gebruiker verwijderen uit een bestaande Communication Services-aanroep die wordt beheerd door Call Automation-API's
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>"))
Optionele functie: Overdragen naar een Teams-gebruiker vanuit een bestaande Communication Services-aanroep die wordt beheerd door Call Automation-API's
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>"))
Resources opschonen
Als u een Communication Services-abonnement wilt opschonen en verwijderen, kunt u de resource of resourcegroep verwijderen. Als u de resourcegroep verwijdert, worden ook alle bijbehorende resources verwijderd. Meer informatie over het opschonen van resources.
Volgende stappen
- Meer informatie over het opnemen van gesprekken.
- Meer informatie over Gespreksautomatisering en de bijbehorende functies.
- Meer informatie over de mogelijkheden van teams-interoperabiliteitsondersteuning met Azure Communication Services Call Automation
- Meer informatie over actie Afspelen om audio af te spelen in een gesprek.
- Meer informatie over het bouwen van een oproepwerkstroom voor een klantondersteuningsscenario.