Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Met Gespreksautomatisering van Azure Communication Services kunnen ontwikkelaars toepassingen maken die oproepen kunnen plaatsen en ontvangen. Het maakt gebruik van Event Grid-abonnementen voor het leveren IncomingCall van gebeurtenissen, waardoor het essentieel is om uw omgeving te configureren voor het ontvangen van deze meldingen voor uw toepassing om een oproep effectief te omleiden of beantwoorden. Daarom is het begrijpen van de basisprincipes van binnenkomende oproepen essentieel voor het gebruik 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 | Bestemming | Scenariën |
|---|---|---|
| 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 |
Opmerking
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 deze toewijzing worden uitgevoerd door uw toepassing of ondersteunende infrastructuur. Zie de handleiding voor identiteitsconcepten voor meer informatie.
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 resourceproviders in het linkermenu onder Instellingen.
- 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 webhook-callbacks gebruikt 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
IncomingCallmelding 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 onderling bellen. U kunt dit scenario vervolgens combineren met de CALL Recording-API's om te voldoen aan de nalevingsbehoeften.
Zie deze handleiding voor een voorbeeldpayload van de gebeurtenis en meer informatie over andere oproepgebeurtenissen die naar Event Grid worden gepubliceerd.
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 uw eindpunttoepassing vervolgens besluiten om de aanroep om te leiden naar een andere Azure Communication Services identiteit of naar het PSTN.
Opmerking
Om ervoor te zorgen dat uw toepassing alleen de benodigde gebeurtenissen ontvangt, raden we u aan filteren in Event Grid te configureren. Filteren is van cruciaal belang in scenario's waarin gebeurtenissen worden gegenereerdIncomingCall, 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. In uw applicatie, als u bijvoorbeeld het PSTN-telefoonnummer van +14255551212 hebt verkregen en dit wilt toewijzen aan een gebruiker met een identiteit 375f0e2f-e8db-4449-9bf7-2054b02e42b4, 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
U moet het eigendom van uw eindpunt bewijzen. Als u het eigendom bewijst, kan Event Grid gebeurtenissen leveren aan uw Webhook-eindpunt en voorkomt u dat kwaadwillende gebruikers uw eindpunt overspoelen met gebeurtenissen. 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. Zie deze handleiding voor meer informatie.Als uw toepassing niet reageert met een 200 OK-statuscode voor Event Grid binnen de vereiste periode, gebruikt Event Grid exponentieel uitstel om de gebeurtenis opnieuw te verzenden. Een inkomende oproep gaat echter slechts 30 seconden over, dus het reageren op een oproep na die tijd is niet effectief. Om nieuwe pogingen bij verlopen of mislukte oproepen te voorkomen, raden we aan om het herhalingsbeleid in te stellen met Max Event Delivery Attempts op 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. Als u logboekregistratie wilt inschakelen, gaat u naar het systeemonderwerp op het tabblad Gebeurtenissen van uw communicatieresource en schakelt u logboekregistratie in vanuit de diagnostische instellingen. U vindt foutenlogboeken in de tabel AegDeliveryFailureLogs.
AegDeliveryFailureLogs | limit 10 | where Message has "incomingCall"Host de toepassing die oproepen beantwoordt op computecapaciteit die direct kan reageren. Het beantwoorden van een aanroep is een realtime-bewerking: het eindpunt dat de
IncomingCallgebeurtenis ontvangt, heeft alleen de duur van de ring (30 seconden) om de melding te verwerken en deAnswerCallofRedirectAPI aan te roepen. Vermijd het hosten van dit eindpunt op een compute-omgeving die naar nul schaalt of koude-startlatentie heeft. Een serverloze functie-app in een abonnement op basis van verbruik kan bijvoorbeeld inactief worden wanneer er geen recent verkeer is. Wanneer er dan eenIncomingCall-gebeurtenis aankomt bij een koude instantie, kan de tijd die nodig is om de host op te starten het antwoordvenster volledig in beslag nemen, waardoor de oproep onbeantwoord blijft. Een burst van gelijktijdige aanroepen vormt een ander risico. Rekenkracht die reactief uitschaalt, kan achterblijven bij de vraag, zodat uw eindpunt Event Grid mogelijk niet op tijd bevestigt. Time-outs of foutberichten op dit pad veroorzaken dan gemiste aanroepen.Om oproepen betrouwbaar te beantwoorden:
- Om verwachte pieken op te vangen totdat de opschaling is bijgebeend, voert u de webhookhandler uit op altijd beschikbare, vooraf ingerichte compute-capaciteit met voldoende direct beschikbare capaciteit. Voorbeelden hiervan zijn Azure App Service met Always On ingeschakeld, Azure Functions in een plan met altijd gereedstaande (voorverwarmde) exemplaren, Azure Container Apps met een minimumaantal replica's groter dan nul, of Azure Kubernetes Service met voldoende basiscapaciteit.
- Houd het pad tussen de
IncomingCallgebeurtenis en deAnswerCallAPI kort en direct. Minimaliseer tussenliggende hops op het antwoordpad, zoals gateways of webtoepassingsfirewalls. Verplaats niet-kritiek werk, zoals databasezoekacties of bedrijfslogica, buiten het antwoordpad, zodat u snel kunt reageren. - Ontwerp uw handler om dubbele gebeurtenissen veilig te verwerken. Event Grid levert gebeurtenissen ten minste één keer, zodat uw toepassing meerdere keren dezelfde
IncomingCallgebeurtenis kan ontvangen.
Volgende stappen
- Probeer de quickstart uit om een uitgaande oproep te plaatsen.