Omówienie automatyzacji połączeń

Usługa Azure Communication Services Call Automation zapewnia deweloperom możliwość tworzenia przepływów pracy opartych na serwerze, inteligentnych wywołań oraz rejestrowania połączeń dla kanałów głosowych i publicznych przełączników sieci telefonicznej (PSTN). Zestawy SDK, dostępne w języku C#, Java, JavaScript i Python, używają modelu zdarzeń akcji, aby ułatwić tworzenie spersonalizowanych interakcji z klientami. Aplikacje komunikacyjne mogą nasłuchiwać zdarzeń połączeń w czasie rzeczywistym i wykonywać akcje płaszczyzny sterowania (takie jak odpowiedź, transfer, odtwarzanie dźwięku, rozpoczynanie nagrywania itp.) w celu kierowania i sterowania wywołaniami w oparciu o logikę biznesową.

Uwaga

Usługa Call Automation obecnie nie obsługuje połączeń Rooms .

Typowe przypadki użycia

Oto niektóre typowe przypadki użycia, które można utworzyć przy użyciu usługi Call Automation:

  • Program VoIP lub PSTN wywołuje przepływy pracy transakcyjne, takie jak przypomnienia dotyczące połączeń szybka-rozmowa i przypomnienia o terminach w celu poprawy obsługi klienta.
  • Twórz interaktywne przepływy pracy interakcji, aby samodzielnie obsługiwać klientów w przypadku przypadków użycia, takich jak rezerwacje zamówień i aktualizacje, przy użyciu akcji Odtwarzania (adres URL audio, zamiana tekstu na mowę i SSML) oraz akcji Rozpoznawanie (DTMF i Voice).
  • Integruj aplikacje komunikacyjne z centrami kontaktów i prywatnymi sieciami telefonii przy użyciu routingu bezpośredniego.
  • Chroń tożsamość klienta, tworząc usługi maskowania numerów w celu połączenia kupujących z sprzedawcami lub użytkownikami partnerów na platformie.
  • Zwiększ zaangażowanie, tworząc zautomatyzowane programy obsługi klientów na potrzeby marketingu i obsługi klienta.
  • Analizowanie w procesie po wywołaniu niemieszone nagrania audio na potrzeby zapewnienia jakości.

Automatyzacja wywołań usług Azure Communication Services może służyć do tworzenia przepływów pracy wywołujących dla scenariuszy obsługi klienta, jak pokazano w architekturze wysokiego poziomu. Możesz odpowiedzieć na wywołania przychodzące lub wykonywać wywołania wychodzące. Wykonaj akcje, takie jak odtwarzanie komunikatu powitalnego, połączenie klienta z agentem na żywo w aplikacji klienckiej zestawu SDK wywołującego usługi Azure Communication Services w celu odpowiedzi na przychodzące żądanie połączenia. Dzięki obsłudze protokołu PSTN lub routingu bezpośredniego usług Azure Communication Services możesz połączyć ten przepływ pracy z powrotem z centrum kontaktów.

Diagram przedstawiający wywoływanie przepływu dla scenariusza obsługi klienta.

Możliwości

Poniższa lista przedstawia zestaw funkcji, które są obecnie dostępne w zestawach SDK automatyzacji wywołań usług Azure Communication Services.

Obszar funkcji Możliwość .NET Java JavaScript Python
Scenariusze przed wywołaniami Odpowiadanie na połączenie jeden do jednego ✔️ ✔️ ✔️ ✔️
Odpowiedz na połączenie grupowe ✔️ ✔️ ✔️ ✔️
Umieść nowe wywołanie ruchu wychodzącego do co najmniej jednego punktu końcowego ✔️ ✔️ ✔️ ✔️
Przekieruj* (prześlij dalej) wywołanie do co najmniej jednego punktu końcowego ✔️ ✔️ ✔️ ✔️
Odrzucanie połączenia przychodzącego ✔️ ✔️ ✔️ ✔️
Scenariusze połączeń w połowie połączenia Dodawanie co najmniej jednego punktu końcowego do istniejącego wywołania ✔️ ✔️ ✔️ ✔️
Anulowanie dodawania punktu końcowego do istniejącego wywołania ✔️ ✔️ ✔️ ✔️
Odtwarzanie dźwięku z pliku audio ✔️ ✔️ ✔️ ✔️
Odtwarzanie dźwięku przy użyciu zamiany tekstu na mowę ✔️ ✔️ ✔️ ✔️
Rozpoznawanie danych wejściowych użytkownika za pośrednictwem dtMF ✔️ ✔️ ✔️ ✔️
Rozpoznawanie danych wejściowych głosowych użytkownika ✔️ ✔️ ✔️ ✔️
Uruchamianie ciągłego rozpoznawania DTMF ✔️ ✔️ ✔️ ✔️
Zatrzymywanie ciągłego rozpoznawania DTMF ✔️ ✔️ ✔️ ✔️
Wyślij DTMF ✔️ ✔️ ✔️ ✔️
Wycisz uczestnika ✔️ ✔️ ✔️ ✔️
Usuwanie co najmniej jednego punktu końcowego z istniejącego wywołania ✔️ ✔️ ✔️ ✔️
Transfer ślepy* wywołanie 1:1 do innego punktu końcowego ✔️ ✔️ ✔️ ✔️
Transfer ślepy* uczestnik z wywołania grupy do innego punktu końcowego ✔️ ✔️ ✔️ ✔️
Zawieszanie połączenia (usuwanie nogi wywołania) ✔️ ✔️ ✔️ ✔️
Zakończ połączenie (usuń wszystkich uczestników i zakończ połączenie) ✔️ ✔️ ✔️ ✔️
Anulowanie operacji multimedialnych ✔️ ✔️ ✔️ ✔️
Udostępnianie informacji niestandardowych (za pośrednictwem nagłówków VOIP lub SIP) przy użyciu punktów końcowych podczas dodawania ich do wywołania lub przesyłania do nich wywołania ✔️ ✔️ ✔️ ✔️
Scenariusze zapytań Uzyskiwanie stanu połączenia ✔️ ✔️ ✔️ ✔️
Uzyskiwanie uczestnika połączenia ✔️ ✔️ ✔️ ✔️
Wyświetlanie listy wszystkich uczestników połączenia ✔️ ✔️ ✔️ ✔️
Nagrywanie połączeń Uruchamianie/wstrzymywanie/wznawianie/zatrzymywanie nagrywania ✔️ ✔️ ✔️ ✔️

*Przenoszenie lub przekierowywanie połączenia VoIP z numerem telefonu nie jest obecnie obsługiwane.

Architektura

Usługa Call Automation używa interfejsu API REST do odbierania żądań i dostarczania odpowiedzi na wszystkie akcje wykonywane w usłudze. Ze względu na asynchroniczny charakter wywoływania większość akcji ma odpowiednie zdarzenia, które są wyzwalane po pomyślnym zakończeniu akcji lub niepomyślnie.

Usługi Azure Communication Services używają usługi Event Grid do dostarczania zdarzeń IncomingCall i elementów webhook PROTOKOŁU HTTPS dla wszystkich wywołań zwrotnych akcji w połowie wywołania.

Zrzut ekranu przedstawiający przepływ dla przychodzących wywołań i akcji.

Wywołanie akcji

Akcje przed wywołaniem

Te akcje są wykonywane przed połączeniem docelowego punktu końcowego wymienionego w powiadomieniu zdarzenia IncomingCall. Zdarzenia wywołania zwrotnego elementu webhook komunikują się tylko z akcją wstępną "odpowiedź", a nie dla akcji odrzucania ani przekierowywania.

Odpowiedz przy użyciu zdarzenia IncomingCall z usługi Event Grid i zestawu SDK automatyzacji wywołań, na które może odpowiedzieć aplikacja. Ta akcja umożliwia korzystanie ze scenariuszy IVR, w których aplikacja może programowo odpowiedzieć na przychodzące wywołania PSTN. Inne scenariusze obejmują odbieranie połączenia w imieniu użytkownika.

Odrzuć , aby odrzucić wywołanie oznacza, że aplikacja może odbierać zdarzenie IncomingCall i uniemożliwiać nawiązywanie połączenia z docelowym punktem końcowym.

Przekierowanie przy użyciu zdarzenia IncomingCall z usługi Event Grid może zostać przekierowane do co najmniej jednego punktu końcowego tworzącego scenariusz pojedynczego lub jednoczesnego dzwonienia (sim-ring). Akcja przekierowania nie odpowiada na wywołanie. Wywołanie jest po prostu przekierowywane lub przekazywane do innego punktu końcowego docelowego, na który ma zostać udzielona odpowiedź.

Za pomocą akcji Utwórz połączenie utwórz połączenie można użyć do umieszczania połączeń wychodzących na numery telefonów i do innych użytkowników komunikacji. Przypadki użycia obejmują aplikację umieszczając wywołania wychodzące, aby aktywnie informować użytkowników o awarii lub powiadamianiu o aktualizacji zamówienia.

Akcje wywołania środkowego

Te akcje można wykonać na wywołaniach, które są odbierane lub umieszczane przy użyciu zestawów SDK usługi Call Automation. Każda akcja mid-call ma odpowiednie zdarzenie powodzenia lub niepowodzenia wywołania zwrotnego elementu webhook.

Dodaj/usuń uczestników co najmniej jeden uczestnik w jednym żądaniu, a każdy uczestnik jest odmianą obsługiwanych punktów końcowych docelowych. Wywołanie zwrotne elementu webhook jest wysyłane dla każdego uczestnika pomyślnie dodanego do połączenia.

Odtwórz , gdy aplikacja odpowiada na wywołanie lub umieszcza wywołanie wychodzące, możesz odtworzyć monit dźwiękowy dla wywołującego. Ten dźwięk może być w pętli w razie potrzeby w scenariuszach, takich jak odtwarzanie muzyki. Aby dowiedzieć się więcej, zapoznaj się z naszymi pojęciami i instrukcjamidotyczącymi dostosowywania monitów głosowych dla użytkowników za pomocą akcji Odtwórz.

Rozpoznawanie danych wejściowych Po wyświetleniu monitu audio przez aplikację możesz zażądać danych wejściowych użytkownika, aby zwiększyć logikę biznesową i nawigację w aplikacji. Aby dowiedzieć się więcej, zapoznaj się z naszymi pojęciami i instrukcjami dotyczącymi zbierania danych wejściowych użytkownika.

Ciągłe rozpoznawanie DTMF Gdy aplikacja musi mieć możliwość odbierania tonów DTMF w dowolnym momencie wywołania bez konieczności wyzwalania konkretnej akcji rozpoznawania przez aplikację. Może to być przydatne w scenariuszach, w których agent jest na wywołaniu i wymaga od użytkownika wprowadzenia pewnego rodzaju identyfikatora lub numeru śledzenia. Aby dowiedzieć się więcej na temat korzystania z tego przewodnika.

Wyślij DTMF Gdy aplikacja musi wysłać ton DTMF do zewnętrznego uczestnika, może to być na przykład do celów, takich jak wybieranie agenta zewnętrznego i podanie numeru rozszerzenia, lub na przykład nawigowanie po zewnętrznym menu IVR.

Wycisz aplikację może wyciszyć niektórych użytkowników na podstawie logiki biznesowej. Użytkownik musiałby wtedy ręcznie cofnąć wyciszenie, jeśli chce mówić.

Transfer Gdy aplikacja odpowiada na wywołanie lub umieszcza wywołanie wychodzące do punktu końcowego, to wywołanie może zostać przeniesione do innego docelowego punktu końcowego. Przeniesienie wywołania 1:1 eliminuje możliwość sterowania wywołaniem przy użyciu zestawów SDK usługi Call Automation.

Zarejestruj , kiedy należy uruchomić/wstrzymać/wznowić nagrywanie na podstawie logiki biznesowej aplikacji lub przyznać użytkownikowi końcowemu kontrolę w celu wyzwolenia tych akcji. Aby dowiedzieć się więcej, zapoznaj się z naszymi pojęciami i przewodnikami Szybki start.

Zawieszanie się , gdy aplikacja odpowiedziała na wywołanie jeden do jednego, akcja zawieszania usuwa nogę wywołania i przerywa wywołanie z innym punktem końcowym. Jeśli wywołanie wywołania grupy obejmuje więcej niż dwóch uczestników, wykonanie akcji "hang-up" spowoduje usunięcie punktu końcowego aplikacji z wywołania grupy.

Zakończ, czy aplikacja odebrała połączenie jeden do jednego lub grupy, albo umieściła połączenie wychodzące z co najmniej jednym uczestnikiem, spowoduje to usunięcie wszystkich uczestników i zakończenie połączenia. Ta operacja jest wyzwalana przez ustawienie forEveryOne właściwości true w akcji wywołania hang-up.

Anulowanie operacji multimedialnych na podstawie logiki biznesowej może wymagać anulowania trwających i w kolejce operacji multimediów. W zależności od anulowanej operacji nośnika i tych w kolejce otrzymasz zdarzenie elementu webhook wskazujące, że akcja została anulowana.

Scenariusze zapytań

Lista uczestników Zwraca listę wszystkich uczestników w wywołaniu. Z tej listy pominięto rejestrowanie i transkrypcję botów.

Zdarzenia

W poniższej tabeli przedstawiono bieżące zdarzenia emitowane przez usługi Azure Communication Services. W poniższych dwóch tabelach opisano zdarzenia emitowane przez usługę Event Grid oraz zdarzenia wywołania automatyzacji jako element webhook.

Zdarzenia usługi Event Grid

Większość zdarzeń wysyłanych przez usługę Event Grid jest niezależna od platformy, co oznacza, że są emitowane niezależnie od zestawu SDK (wywoływanie lub wywoływanie automatyzacji). Chociaż możesz utworzyć subskrypcję dla dowolnego zdarzenia, zalecamy użycie zdarzenia IncomingCall dla wszystkich przypadków użycia usługi Call Automation, w których chcesz kontrolować wywołanie programowo. Użyj innych zdarzeń do celów raportowania/telemetrii.

Wydarzenie opis
IncomingCall Powiadomienie o rozmowie z użytkownikiem komunikacji lub numerem telefonu
Wywołaniestarte Nawiązane jest wywołanie (przychodzące lub wychodzące)
WywołanieEnded Połączenie zostało zakończone, a wszyscy uczestnicy zostaną usunięci
Uczestnikdodaj Uczestnik został dodany do połączenia
UczestnikRemoved Uczestnik został usunięty z połączenia
RecordingFileStatusUpdated Dostępny jest plik nagrywania

Przeczytaj więcej na temat tych zdarzeń i schematu ładunku tutaj

Wywoływanie zdarzeń elementu webhook usługi Automation

Zdarzenia automatyzacji wywołań są wysyłane do identyfikatora URI wywołania zwrotnego elementu webhook określonego podczas odpowiadania lub umieszczenia nowego wywołania wychodzącego.

Wydarzenie opis
Połączenie Połączenie ed Noga wywołania aplikacji jest połączona (ruch przychodzący lub wychodzący)
CallDisconnected Noga wywołania aplikacji jest rozłączona
CallTransferAccepted Noga wywołania aplikacji została przeniesiona do innego punktu końcowego
CallTransferFailed Przenoszenie elementu wywołania aplikacji nie powiodło się
AddParticipantSucceed Aplikacja dodała uczestnika
AddParticipantFailed Aplikacja nie mogła dodać uczestnika
CancelAddParticipantSucceed Aplikacja anulowała dodawanie uczestnika
CancelAddParticipantFailed Aplikacja nie mogła anulować dodawania uczestnika
RemoveParticipantSucceed Aplikacja pomyślnie usunęła uczestnika z wywołania.
RemoveParticipantFailed Aplikacja nie mogła usunąć uczestnika z wywołania.
UczestnicyAktualizowana Stan uczestnika zmienił się, gdy noga wywołania aplikacji została połączona z połączeniem
PlayCompleted Aplikacja pomyślnie odtworzyła udostępniony plik dźwiękowy
PlayFailed Nie można odtworzyć dźwięku w aplikacji
PlayCanceled Żądana akcja odtwarzania została anulowana
Recognizecompleted Pomyślnie ukończono rozpoznawanie danych wejściowych użytkownika
RecognizeCanceled Żądana akcja rozpoznawania została anulowana
RecognizeFailed Rozpoznawanie danych wejściowych użytkownika nie powiodło się
aby dowiedzieć się więcej na temat rozpoznawania zdarzeń akcji, zobacz przewodnik z instrukcjami dotyczącymi zbierania danych wejściowych użytkownika
RecordingStateChanged Stan akcji rejestrowania został zmieniony z aktywnego na nieaktywny lub odwrotnie
ContinuousDtmfRecognitionToneReceived StartContinuousDtmfRecognition został ukończony pomyślnie, a ton DTMF został odebrany od uczestnika
ContinuousDtmfRecognitionToneFailed StartContinuousDtmfRecognition został ukończony, ale wystąpił błąd podczas obsługi tonu DTMF od uczestnika
ContinuousDtmfRecognitionStopped Pomyślnie wykonano polecenie StopContinuousRecognition
SendDtmfCompleted SendDTMF ukończono pomyślnie, a ton DTMF został wysłany do uczestnika docelowego
SendDtmfFailed Wystąpił błąd podczas wysyłania tonów DTMF

Aby zrozumieć, które zdarzenia są publikowane dla różnych akcji, zapoznaj się z tym przewodnikiem , który zawiera przykłady kodu i diagramy sekwencji dla różnych przepływów sterowania wywołaniami.

Podczas potwierdzania zdarzeń wywołania zwrotnego najlepszym rozwiązaniem jest odpowiadanie przy użyciu standardowych kodów stanu HTTP, takich jak 200 OK. Szczegółowe informacje są niepotrzebne i bardziej odpowiednie dla procesów debugowania.

Aby dowiedzieć się, jak zabezpieczyć dostarczanie zdarzeń wywołania zwrotnego, zapoznaj się z tym przewodnikiem.

Identyfikator URI wywołania zwrotnego operacji

Jest to opcjonalny parametr w niektórych interfejsach API wywołań środkowych, które używają zdarzeń jako odpowiedzi asynchronicznych. Domyślnie wszystkie zdarzenia są wysyłane do domyślnego identyfikatora URI wywołania zwrotnego ustawionego przez interfejs API CreateCall/AnswerCall po ustanowieniu wywołania przez użytkownika. W przypadku użycia identyfikatora URI wywołania zwrotnego operacji odpowiednie zdarzenia tego żądania (tylko jednorazowo) zostaną wysłane do nowego identyfikatora URI.

Obsługiwane API Odpowiadające zdarzenie
AddParticipant AddParticipantSucceed / AddParticipantFailed
RemoveParticipant RemoveParticipantSucceed / RemoveParticipantFailed
TransferCall CallTransferAccepted/ CallTransferFailed
CancelAddParticipant CancelAddParticipantSucceeded/ CancelAddParticipantFailed
Odtwórz PlayCompleted / PlayFailed / PlayCanceled
PlayToAll PlayCompleted / PlayFailed / PlayCanceled
Recognize RecognizeCompleted/RecognizeFailed/ RecognizeCanceled
StopContinuousDTMFRecognition ContinuousDtmfRecognitionStopped
SendDTMF ContinuousDtmfRecognitionToneReceived / ContinuousDtmfRecognitionToneFailed

Następne kroki

Oto kilka interesujących Cię artykułów: