Udostępnij za pośrednictwem


Pojęcia dotyczące połączeń przychodzących

Usługa Azure Communication Services Call Automation umożliwia deweloperom tworzenie aplikacji, które mogą wykonywać i odbierać wywołania. Wykorzystuje ona subskrypcje usługi Event Grid do dostarczania IncomingCall zdarzeń, co ma kluczowe znaczenie dla skonfigurowania środowiska w celu odbierania tych powiadomień dla aplikacji w celu efektywnego przekierowywania lub odpowiadania na połączenie. Dlatego zrozumienie podstaw połączeń przychodzących jest niezbędne do wykorzystania pełnego potencjału automatyzacji wywołań usług Azure Communication Services.

Scenariusze wywoływania

Przed skonfigurowaniem środowiska ważne jest zrozumienie scenariuszy, które mogą wyzwalać IncomingCall zdarzenie. Aby wyzwolić IncomingCall zdarzenie, należy nawiązać połączenie z tożsamością usług Azure Communication Services lub numerem publicznej sieci telefonicznej przełączonej (PSTN) skojarzonej z zasobem usług Azure Communication Services. Poniżej przedstawiono przykłady tych zasobów:

  1. Tożsamość usług Azure Communication Services
  2. Numer telefonu PSTN należący do zasobu usług Azure Communication Services

Biorąc pod uwagę te przykłady, następujące scenariusze wyzwalają IncomingCall zdarzenie wysyłane do usługi Event Grid:

Element źródłowy Element docelowy Scenariusze
Tożsamość usług Azure Communication Services Tożsamość usług Azure Communication Services Połączenie, przekierowanie, dodawanie uczestnika, transfer
Tożsamość usług Azure Communication Services Numer PSTN należący do zasobu usług Azure Communication Services Połączenie, przekierowanie, dodawanie uczestnika, transfer
Publiczna nazwa PSTN Numer PSTN należący do zasobu usług Azure Communication Services Połączenie, przekierowanie, dodawanie uczestnika, transfer

Uwaga

Ważne jest, aby zrozumieć, że tożsamość usług Azure Communication Services może reprezentować użytkownika lub aplikację. Chociaż platforma nie ma wbudowanej funkcji jawnego przypisania tożsamości do użytkownika lub aplikacji, aplikacja lub infrastruktura pomocnicza może to osiągnąć. Aby dowiedzieć się więcej na temat tego tematu, zapoznaj się z przewodnikiem dotyczącym pojęć dotyczących tożsamości.

Rejestrowanie dostawcy zasobów usługi Event Grid

Jeśli usługa Event Grid nie była wcześniej używana w ramach subskrypcji platformy Azure, może być konieczne zarejestrowanie dostawcy zasobów usługi Event Grid. Aby zarejestrować dostawcę, wykonaj następujące kroki:

  1. Przejdź do portalu Azure Portal.
  2. W menu po lewej stronie wybierz pozycję Subskrypcje.
  3. Wybierz subskrypcję używaną dla usługi Event Grid.
  4. W menu po lewej stronie, w obszarze Ustawienia wybierz opcję Dostawcy zasobów.
  5. Znajdź dostawcę Microsoft.EventGrid.
  6. Jeśli dostawca zasobów nie jest zarejestrowany, wybierz pozycję Zarejestruj.

Odbieranie powiadomienia o wywołaniu przychodzącym z usługi Event Grid

W usługach Azure Communication Services odbieranie IncomingCall powiadomienia jest możliwe za pośrednictwem subskrypcji usługi Event Grid. Jako odbiorca powiadomienia masz możliwość wyboru sposobu jego obsługi. Ponieważ interfejs API automatyzacji wywołań korzysta z wywołań zwrotnych elementu webhook dla zdarzeń, często używa się subskrypcji usługi Event Grid "elementu webhook". Jednak usługa oferuje różne typy subskrypcji i masz swobodę wyboru najbardziej odpowiedniego dla Twoich potrzeb.

Ta architektura ma następujące korzyści:

  • Za pomocą filtrów subskrypcji usługi Event Grid można kierować IncomingCall powiadomienie do określonych aplikacji.
  • Przypisanie numeru PSTN i logika routingu mogą istnieć w aplikacji, a nie statycznie skonfigurowane w trybie online.
  • Zgodnie z opisem w sekcji scenariuszy wywoływania aplikacja może być powiadamiana nawet wtedy, gdy użytkownicy tworzą połączenia między sobą. Następnie możesz połączyć ten scenariusz wraz z interfejsami API nagrywania wywołań, aby spełnić wymagania dotyczące zgodności.

Aby uzyskać przykładowy ładunek zdarzenia i więcej informacji na temat innych zdarzeń wywołujących opublikowanych w usłudze Event Grid, zapoznaj się z tym przewodnikiem.

Oto przykład subskrypcji elementu webhook usługi Event Grid, w której filtr typu zdarzenia nasłuchuje tylko zdarzeń IncomingCall .

Image showing IncomingCall subscription.

Opcje routingu wywołań za pomocą automatyzacji wywołań i usługi Event Grid

W usłudze Call Automation i Event Grid routing wywołań można dostosować do konkretnych potrzeb. Korzystając z filtrów zaawansowanych w ramach subskrypcji usługi Event Grid, możesz zasubskrybować IncomingCall powiadomienie dotyczące określonego źródłowego/docelowego numeru telefonu lub tożsamości usług Azure Communication Services. To powiadomienie można następnie przekierować do punktu końcowego, takiego jak subskrypcja elementu webhook. Za pomocą zestawu SDK usługi Call Automation aplikacja punktu końcowego może następnie podjąć decyzję o przekierowaniu wywołania do innej tożsamości usług Azure Communication Services lub do sieci PSTN.

Uwaga

Aby upewnić się, że aplikacja odbiera tylko niezbędne zdarzenia, zaleca się skonfigurowanie filtrowania w usłudze Event Grid. Jest to szczególnie istotne w scenariuszach, które generują IncomingCall zdarzenia, takie jak przekierowywanie przychodzącego wywołania PSTN do punktu końcowego usług Azure Communication Services. Jeśli filtr nie jest używany, subskrypcja usługi Event Grid otrzymuje dwa IncomingCall zdarzenia — jedno dla wywołania PSTN i jeden dla użytkownika usług Azure Communication Services — mimo że zamierzasz otrzymywać tylko pierwsze powiadomienie. Zaniedbanie obsługi takich scenariuszy przy użyciu filtrów lub innych mechanizmów w aplikacji może spowodować nieskończone pętle i inne niepożądane zachowanie.

Oto przykład zaawansowanego filtru w subskrypcji usługi Event Grid obserwującego data.to.PhoneNumber.Value ciąg rozpoczynający się od numeru telefonu PSTN "+18005551212.

Image showing Event Grid advanced filter.

Przypisanie numeru

Korzystając z IncomingCall powiadomienia w usługach Azure Communication Services, możesz skojarzyć dowolną konkretną liczbę z dowolnym punktem końcowym. Jeśli na przykład uzyskano numer +14255551212 telefonu PSTN i chcesz przypisać go do użytkownika z tożsamością 375f0e2f-e8db-4449-9bf7-2054b02e42b4 w aplikacji, należy zachować mapowanie tej liczby na tożsamość. Po wysłaniu IncomingCall powiadomienia zgodnego z numerem telefonu w polu do można wywołać Redirect interfejs API i podać tożsamość użytkownika. Innymi słowy, można zarządzać przypisaniem numeru w aplikacji i kierować wywołaniami lub odpowiadać w czasie wykonywania.

Najlepsze praktyki

  1. Aby zapewnić, że usługa Event Grid dostarcza zdarzenia do punktu końcowego elementu webhook i uniemożliwia złośliwym użytkownikom zalanie punktu końcowego zdarzeniami, musisz udowodnić własność punktu końcowego. Aby rozwiązać wszelkie problemy z odbieraniem zdarzeń, upewnij się, że skonfigurowany element webhook został zweryfikowany przez obsługę elementu SubscriptionValidationEvent. Aby uzyskać więcej informacji, zapoznaj się z tym przewodnikiem.

  2. Po odebraniu zdarzenia połączenia przychodzącego, jeśli aplikacja nie odpowie z kodem stanu 200Ok do usługi Event Grid w wymaganym przedziale czasu, usługa Event Grid korzysta z wykładniczego ponawiania próby wycofywania w celu ponownego wysłania zdarzenia. Jednak połączenie przychodzące dzwoni tylko przez 30 sekund i odpowiadanie na wywołanie po tym czasie nie będzie skuteczne. Aby zapobiec ponownym próbom wygasłych lub nieaktualnych wywołań, zalecamy ustawienie zasad ponawiania prób na wartość Maksymalna liczba prób dostarczenia zdarzeń na wartość 2, a czas wygaśnięcia zdarzenia na 1 minutę. Te ustawienia można znaleźć na karcie Dodatkowe funkcje subskrypcji zdarzeń. Dowiedz się więcej o ponownych próbach tutaj.

  3. Zalecamy włączenie rejestrowania dla zasobu usługi Event Grid w celu monitorowania zdarzeń, które nie są dostarczane. W tym celu przejdź do tematu systemowego na karcie Zdarzenia zasobu Komunikacji i włącz rejestrowanie z ustawień diagnostycznych. Dzienniki błędów można znaleźć w tabeli "AegDeliveryFailureLogs".

    AegDeliveryFailureLogs
    | limit 10 
    | where Message has "incomingCall"
    

Następne kroki

  • Wypróbuj przewodnik Szybki start, aby umieścić wywołanie wychodzące.