Koncepty příchozích hovorů

Automatizace volání ve službě Azure Communication Services umožňuje vývojářům vytvářet aplikace, které můžou volat a přijímat volání. Využívá odběry služby Event Grid k doručování IncomingCall událostí, což je nezbytné ke konfiguraci vašeho prostředí tak, aby dostávalo tato oznámení pro vaši aplikaci, aby bylo možné efektivně přesměrovat nebo přijmout volání. Pochopení základů příchozích hovorů je proto nezbytné pro využití plného potenciálu automatizace volání služby Azure Communication Services.

Scénáře volání

Před nastavením prostředí je důležité porozumět scénářům, které můžou aktivovat IncomingCall událost. Chcete-li aktivovat IncomingCall událost, musí být volání provedeno buď s identitou služby Azure Communication Services, nebo číslem veřejné telefonní sítě (PSTN) přidružené k vašemu prostředku služby Azure Communication Services. Tady jsou příklady těchto prostředků:

  1. Identita azure Communication Services
  2. Telefonní číslo ve veřejné telefonní síti vlastněné prostředkem služby Azure Communication Services

V těchto příkladech následující scénáře aktivují událost odeslanou IncomingCall do Event Gridu:

Zdroj Cíl Scénáře
Identita služby Azure Communication Services Identita služby Azure Communication Services Hovor, Přesměrování, Přidat účastníka, Přepojení
Identita služby Azure Communication Services Číslo veřejné telefonní sítě vlastněné prostředkem služby Azure Communication Services Hovor, Přesměrování, Přidat účastníka, Přepojení
Veřejné veřejné telefonní sítě Číslo veřejné telefonní sítě vlastněné prostředkem služby Azure Communication Services Hovor, Přesměrování, Přidat účastníka, Přepojení

Poznámka:

Je důležité si uvědomit, že identita služby Azure Communication Services může představovat uživatele nebo aplikaci. I když platforma nemá integrovanou funkci pro explicitní přiřazení identity uživateli nebo aplikaci, vaše aplikace nebo podpůrná infrastruktura toho může dosáhnout. Další informace o tomto tématu najdete v průvodci koncepty identit.

Registrace poskytovatele prostředků Event Gridu

Pokud jste ve svém předplatném Azure službu Event Grid ještě nepoužívali, možná budete muset zaregistrovat svého poskytovatele prostředků Event Gridu. Pokud chcete poskytovatele zaregistrovat, postupujte takto:

  1. Přejděte na Azure Portal.
  2. V nabídce vlevo vyberte Předplatná.
  3. Vyberte předplatné, které používáte pro Event Grid.
  4. V nabídce vlevo v části Nastavení vyberte Poskytovatelé prostředků.
  5. Vyhledejte Microsoft.EventGrid.
  6. Pokud váš poskytovatel prostředků není zaregistrovaný, vyberte Zaregistrovat.

Příjem oznámení o příchozím hovoru z Event Gridu

Ve službě Azure Communication Services je příjem IncomingCall oznámení možné prostřednictvím odběru služby Event Grid. Jako příjemce oznámení máte možnost zvolit, jak ho zpracovat. Vzhledem k tomu, že rozhraní API pro automatizaci volání využívá zpětné volání Webhooku pro události, je běžné použít odběr Event Gridu webhooku. Služba ale nabízí různé typy předplatných a máte možnost vybrat si nejvhodnější typ pro vaše potřeby.

Tato architektura má následující výhody:

  • Pomocí filtrů odběru služby Event Grid můžete oznámení směrovat IncomingCall do konkrétních aplikací.
  • Ve vaší aplikaci může existovat přiřazení čísel a logika směrování veřejné telefonní sítě a staticky nakonfigurovaná online.
  • Jak je uvedeno v části scénářů volání, může být vaše aplikace upozorněna i v případě, že uživatelé mezi sebou volat. Tento scénář pak můžete kombinovat společně s rozhraními API pro nahrávání hovorů, aby splňovaly požadavky na dodržování předpisů.

Ukázkovou datovou část události a další informace o dalších volajících událostech publikovaných ve službě Event Grid najdete v této příručce.

Tady je příklad odběru Webhooku služby Event Grid, kde filtr typu události naslouchá pouze IncomingCall události.

Image showing IncomingCall subscription.

Možnosti směrování volání s využitím automatizace volání a Event Gridu

V automatizaci volání a Event Gridu je možné směrování volání přizpůsobit vašim konkrétním potřebám. Pomocí rozšířených filtrů v rámci vašeho odběru služby Event Grid se můžete přihlásit k odběru IncomingCall oznámení, které se týká konkrétního zdrojového nebo cílového telefonního čísla nebo identity služby Azure Communication Services. Toto oznámení se pak dá směrovat na koncový bod, například na odběr Webhooku. Pomocí sady SDK pro automatizaci volání pak může aplikace koncového bodu rozhodnout, že volání přesměruje na jinou identitu služby Azure Communication Services nebo do veřejné telefonní sítě.

Poznámka:

Pokud chcete zajistit, aby vaše aplikace přijímala pouze potřebné události, doporučujeme nakonfigurovat filtrování ve službě Event Grid. To je zvlášť důležité ve scénářích, které generují IncomingCall události, jako je přesměrování příchozího volání do veřejné telefonní sítě do koncového bodu služby Azure Communication Services. Pokud se filtr nepoužívá, vaše odběr služby Event Grid obdrží dvě IncomingCall události – jednu pro volání do veřejné telefonní sítě a jednu pro uživatele služby Azure Communication Services , i když jste chtěli přijmout pouze první oznámení. Zanedbávání takových scénářů pomocí filtrů nebo jiných mechanismů ve vaší aplikaci může vést k nekonečné smyčce a dalším nežádoucím chováním.

Tady je příklad rozšířeného filtru odběru služby Event Grid, který sleduje data.to.PhoneNumber.Value řetězec začínající telefonním číslem veřejné telefonní sítě +18005551212.

Image showing Event Grid advanced filter.

Přiřazení čísel

Při použití IncomingCall oznámení ve službě Azure Communication Services máte možnost přidružit jakékoli konkrétní číslo k libovolnému koncovému bodu. Pokud jste například získali telefonní číslo +14255551212 veřejné telefonní sítě a chcete ho přiřadit uživateli s identitou 375f0e2f-e8db-4449-9bf7-2054b02e42b4 ve vaší aplikaci, měli byste zachovat mapování tohoto čísla na identitu. IncomingCall Když se odešle oznámení, které odpovídá telefonnímu číslu v poli komu, můžete vyvolat Redirect rozhraní API a zadat identitu uživatele. Jinými slovy, můžete spravovat přiřazení čísel v rámci aplikace a směrovat nebo přijímat volání za běhu.

Osvědčené postupy

  1. Aby služba Event Grid doručila události do koncového bodu Webhooku a zabránila škodlivým uživatelům zahltit koncový bod událostmi, musíte prokázat vlastnictví vašeho koncového bodu. Pokud chcete vyřešit všechny problémy s příjmem událostí, ověřte, že webhook, který jste nakonfigurovali, je ověřený zpracováním SubscriptionValidationEvent. Další informace najdete v tomto průvodci.

  2. Při přijetí události příchozího volání služba Event Grid v rámci požadovaného časového rámce neodpoví vaší aplikaci se stavovým kódem 200Ok do Event Gridu, služba Event Grid použije k opětovnému odeslání události exponenciální opakování. Příchozí hovor ale bude vyzvánět jenom po dobu 30 sekund a reakce na hovor po uplynutí této doby nebude efektivní. Pokud chcete zabránit opakovaným pokusům o vypršení platnosti nebo zastaralým voláním, doporučujeme nastavit zásadu opakování jako maximální počet pokusů o doručení událostí na 2 a čas události na 1 minutu. Tato nastavení najdete na kartě Další funkce odběru událostí. Další informace o opakovaných opakováních najdete tady.

  3. Doporučujeme povolit protokolování pro váš prostředek Event Gridu pro monitorování událostí, které se nedaří doručit. Uděláte to tak, že přejdete do systémového tématu na kartě Události vašeho komunikačního prostředku a povolíte protokolování z nastavení diagnostiky. Protokoly selhání najdete v tabulce AegDeliveryFailureLogs.

    AegDeliveryFailureLogs
    | limit 10 
    | where Message has "incomingCall"
    

Další kroky