Concepten van binnenkomende oproepen
Met Gespreksautomatisering van Azure Communication Services kunnen ontwikkelaars toepassingen maken die oproepen kunnen plaatsen en ontvangen. Het maakt gebruik van Event Grid-abonnementen om gebeurtenissen te leveren IncomingCall
, waardoor het essentieel is om uw omgeving zo te configureren dat deze meldingen voor uw toepassing worden ontvangen om een oproep effectief te omleiden of beantwoorden. Daarom is het begrijpen van de basisprincipes van binnenkomende oproepen essentieel voor het benutten van het volledige potentieel van Azure Communication Services-oproepautomatisering.
Belscenario's
Voordat u uw omgeving instelt, is het belangrijk om inzicht te hebben in de scenario's die een IncomingCall
gebeurtenis kunnen activeren. Als u een IncomingCall
gebeurtenis wilt activeren, moet een oproep worden gedaan naar een Azure Communication Services-identiteit of een PSTN-nummer (Public Switched Telephone Network) dat is gekoppeld aan uw Azure Communication Services-resource. Hier volgen enkele voorbeelden van deze resources:
- Een Azure Communication Services-identiteit
- Een PSTN-telefoonnummer dat eigendom is van uw Azure Communication Services-resource
In deze voorbeelden worden in de volgende scenario's een IncomingCall
gebeurtenis geactiveerd die naar Event Grid wordt verzonden:
Bron | Doel | Scenario('s) |
---|---|---|
Azure Communication Services-identiteit | Azure Communication Services-identiteit | Bellen, Omleiden, Deelnemer toevoegen, Doorverbinden |
Azure Communication Services-identiteit | PSTN-nummer dat eigendom is van uw Azure Communication Services-resource | Bellen, Omleiden, Deelnemer toevoegen, Doorverbinden |
Openbare PSTN | PSTN-nummer dat eigendom is van uw Azure Communication Services-resource | Bellen, Omleiden, Deelnemer toevoegen, Doorverbinden |
Notitie
Het is belangrijk om te begrijpen dat een Azure Communication Services-identiteit een gebruiker of een toepassing kan vertegenwoordigen. Hoewel het platform geen ingebouwde functie heeft om expliciet een identiteit toe te wijzen aan een gebruiker of toepassing, kan dit worden bereikt door uw toepassing of ondersteunende infrastructuur. Raadpleeg de handleiding over identiteitsconcepten voor meer informatie over dit onderwerp.
Een Event Grid-resourceprovider registreren
Als u Event Grid nog niet eerder hebt gebruikt in uw Azure-abonnement, moet u mogelijk uw Event Grid-resourceprovider registreren. Voer de volgende stappen uit om de provider te registreren:
- Ga naar de Azure-portal.
- Selecteer Abonnementen in het linkermenu.
- Selecteer het abonnement dat u voor Event Grid gebruikt.
- Selecteer onder Instellingen in het menu links de optie Resourceproviders.
- Zoek Microsoft.EventGrid.
- Als uw resourceprovider niet is geregistreerd, selecteert u Registreren.
Een melding ontvangen voor binnenkomende oproepen van Event Grid
In Azure Communication Services wordt het ontvangen van een IncomingCall
melding mogelijk gemaakt via een Event Grid-abonnement. Als ontvanger van de melding hebt u de flexibiliteit om te kiezen hoe u deze kunt afhandelen. Omdat de Call Automation-API gebruikmaakt van webhook-callbacks voor gebeurtenissen, is het gebruikelijk om een Event Grid-abonnement op webhook te gebruiken. De service biedt echter verschillende abonnementstypen en u hebt de vrijheid om de meest geschikte te kiezen voor uw behoeften.
Deze architectuur heeft de volgende voordelen:
- Met behulp van Event Grid-abonnementsfilters kunt u de
IncomingCall
melding doorsturen naar specifieke toepassingen. - Toewijzings- en routeringslogica voor PSTN-nummers kan bestaan in uw toepassing in plaats van statisch online te worden geconfigureerd.
- Zoals aangegeven in de sectie belscenario's , kan uw toepassing worden gewaarschuwd, zelfs wanneer gebruikers tussen elkaar bellen. U kunt dit scenario vervolgens combineren met de CALL Recording-API's om te voldoen aan de nalevingsbehoeften.
Raadpleeg deze handleiding voor een voorbeeld van de nettolading van de gebeurtenis en meer informatie over andere aanroepende gebeurtenissen die zijn gepubliceerd naar Event Grid.
Hier volgt een voorbeeld van een Event Grid Webhook-abonnement waarbij het gebeurtenistypefilter alleen naar de IncomingCall
gebeurtenis luistert.
Opties voor oproeproutering met Gespreksautomatisering en Event Grid
In Gespreksautomatisering en Event Grid kan oproeproutering worden afgestemd op uw specifieke behoeften. Met behulp van geavanceerde filters binnen uw Event Grid-abonnement kunt u zich abonneren op een IncomingCall
melding die betrekking heeft op een specifiek telefoonnummer voor de bron/bestemming of een Azure Communication Services-identiteit. Deze melding kan vervolgens worden omgeleid naar een eindpunt, zoals een Webhook-abonnement. Met behulp van de Call Automation SDK kan de eindpunttoepassing vervolgens een beslissing nemen om de aanroep om te leiden naar een andere Azure Communication Services-identiteit of naar het PSTN.
Notitie
Om ervoor te zorgen dat uw toepassing alleen de benodigde gebeurtenissen ontvangt, wordt u aangeraden om filteren in Event Grid te configureren. Dit is met name van cruciaal belang in scenario's die gebeurtenissen genereren IncomingCall
, zoals het omleiden van een binnenkomende PSTN-aanroep naar een Azure Communication Services-eindpunt. Als er geen filter wordt gebruikt, ontvangt uw Event Grid-abonnement twee IncomingCall
gebeurtenissen: één voor de PSTN-oproep en één voor de Azure Communication Services-gebruiker, ook al hebt u alleen de eerste melding ontvangen. Als u dergelijke scenario's niet verwerkt met behulp van filters of andere mechanismen in uw toepassing, kan dit leiden tot oneindige lussen en ander ongewenst gedrag.
Hier volgt een voorbeeld van een geavanceerd filter voor een Event Grid-abonnement dat kijkt naar de data.to.PhoneNumber.Value
tekenreeks die begint met een PSTN-telefoonnummer van +18005551212.
Nummertoewijzing
Wanneer u de IncomingCall
melding in Azure Communication Services gebruikt, hebt u de vrijheid om een bepaald getal te koppelen aan een eindpunt. Als u bijvoorbeeld een PSTN-telefoonnummer hebt +14255551212
verkregen en dit wilt toewijzen aan een gebruiker met een identiteit in 375f0e2f-e8db-4449-9bf7-2054b02e42b4
uw toepassing, moet u een toewijzing van dat nummer aan de identiteit behouden. Wanneer een IncomingCall
melding wordt verzonden die overeenkomt met het telefoonnummer in het veld Aan , kunt u de Redirect
API aanroepen en de identiteit van de gebruiker opgeven. Met andere woorden, u kunt de nummertoewijzing in uw toepassing beheren en oproepen routeren of beantwoorden tijdens runtime.
Beste praktijken
Om ervoor te zorgen dat Event Grid gebeurtenissen levert aan uw Webhook-eindpunt en voorkomt dat kwaadwillende gebruikers uw eindpunt overspoelen met gebeurtenissen, moet u het eigendom van uw eindpunt bewijzen. Als u problemen met het ontvangen van gebeurtenissen wilt oplossen, controleert u of de webhook die u hebt geconfigureerd, is geverifieerd door de verwerking
SubscriptionValidationEvent
. Raadpleeg deze handleiding voor meer informatie.Wanneer een binnenkomende oproepgebeurtenis wordt ontvangen en uw toepassing niet meer reageert met een 200Ok-statuscode naar Event Grid binnen de vereiste periode, gebruikt Event Grid exponentieel uitstel om de gebeurtenis opnieuw te verzenden. Een binnenkomende oproep gaat echter slechts 30 seconden over en reageert op een oproep na die tijd niet meer. Als u nieuwe pogingen voor verlopen of verlopen oproepen wilt voorkomen, raden we u aan om het beleid voor opnieuw proberen in te stellen als Max Event Delivery-pogingen tot 2 en Event Time to Live op 1 minuut. U vindt deze instellingen op het tabblad Aanvullende functies van het gebeurtenisabonnement. Meer informatie over nieuwe pogingen vindt u hier.
U wordt aangeraden logboekregistratie in te schakelen voor uw Event Grid-resource om gebeurtenissen te bewaken die niet kunnen worden geleverd. Hiervoor gaat u naar het systeemonderwerp op het tabblad Gebeurtenissen van uw communicatieresource en schakelt u logboekregistratie in vanuit de diagnostische instellingen. Foutlogboeken vindt u in de tabel AegDeliveryFailureLogs.
AegDeliveryFailureLogs | limit 10 | where Message has "incomingCall"
Volgende stappen
- Probeer de quickstart uit om een uitgaande oproep te plaatsen.