Udostępnij za pośrednictwem


Omówienie automatyzacji połączeń

Usługa Azure Communication Services Call Automation zapewnia deweloperom możliwość tworzenia opartych na serwerze, inteligentnych przepływów pracy połączeń 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 itd.), aby sterować wywołaniami i kontrolować je w oparciu o logikę biznesową.

Typowe przypadki użycia

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.

Usługa Azure Communication Services Call Automation umożliwia tworzenie 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 odtwórz komunikat powitalny lub połącz klienta z agentem na żywo w aplikacji klienckiej zestawu SDK wywołującego usługi Azure Communication Services, aby odpowiedzieć 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

Następujące funkcje są obecnie dostępne w zestawach SDK usługi Azure Communication Services Call Automation.

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 ✔️ ✔️ ✔️ ✔️
Nawiązywanie połączenia z trwającym połączeniem lub pokojem ✔️ ✔️ ✔️ ✔️
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 ✔️ ✔️ ✔️ ✔️
Uruchamianie/zatrzymywanie przesyłania strumieniowego audio (publiczna wersja zapoznawcza) ✔️ ✔️ ✔️ ✔️
Uruchamianie/zatrzymywanie transkrypcji w czasie rzeczywistym (publiczna wersja zapoznawcza) ✔️ ✔️ ✔️ ✔️
Usuwanie co najmniej jednego punktu końcowego z istniejącego wywołania ✔️ ✔️ ✔️ ✔️
Ślepy transfer wywołania 1:1 do innego punktu końcowego ✔️ ✔️ ✔️ ✔️
Ślepy transfer uczestnika 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 ✔️ ✔️ ✔️ ✔️

* Przekierowanie połączenia VoIP z numerem telefonu nie jest 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 IncomingCall w powiadomieniu o zdarzeniu. Zdarzenia wywołania zwrotnego elementu webhook komunikują się tylko z answer akcją przed wywołaniem, a nie akcjami reject lub redirect akcjami.

Odpowiedź — przy użyciu zdarzenia IncomingCall z usługi Event Grid i zestawu SDK automatyzacji wywołań aplikacja może odpowiedzieć na połączenie. Użyj tej akcji w scenariuszach 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ć IncomingCall zdarzenie i uniemożliwiać nawiązywanie połączenia z docelowym punktem końcowym.

Przekierowanie — za pomocą IncomingCall zdarzenia z usługi Event Grid można przekierować wywołanie do innego punktu końcowego. Akcja przekierowania nie odpowiada na wywołanie. Połączenie jest przekierowywane lub przekazywane do innego punktu końcowego docelowego, na który ma zostać udzielona odpowiedź.

Utwórz połączenie — użyj akcji Utwórz połączenie , aby umieścić połączenia wychodzące na numery telefonów i 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.

Połącz połączenie — użyj akcji Połącz połączenie, aby nawiązać połączenie z trwającym wywołaniem i wykonać na nim akcje wywołania. Możesz również użyć tej akcji, aby programowo nawiązać połączenie z pokojem i zarządzać nim, na przykład wykonywanie połączeń telefonicznych PSTN dla pokoju przy użyciu usługi.

Akcje wywołania środkowego

Aplikacja może wykonywać te akcje 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.

Dodawanie/usuwanie uczestników — możesz dodać jednego lub więcej uczestników 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, zobacz Odtwarzanie dźwięku w wywołaniu i Dostosowywanie monitów głosowych do użytkowników za pomocą akcji Odtwórz.

Rozpoznawanie danych wejściowych — po wyświetleniu monitu dźwiękowego 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, zobacz Zbieranie danych wejściowych użytkownika i przewodnik Zbierz dane wejściowe użytkownika za pomocą akcji Rozpoznawanie.

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ę. Ta możliwość może być przydatna w scenariuszach, w których agent jest na wywołaniu i wymaga od użytkownika wprowadzenia określonego identyfikatora lub numeru śledzenia. Aby dowiedzieć się więcej, zobacz Jak kontrolować akcje multimediów w połowie wywołania.

Wyślij DTMF — gdy aplikacja musi wysłać ton DTMF do zewnętrznego uczestnika. Ta akcja służy do wybierania numerów do agenta zewnętrznego i podawania numeru rozszerzenia lub nawigowania po zewnętrznym menu IVR.

Wycisz — aplikacja 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, wywołanie to 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.

Rekord — decydujesz, kiedy uruchamiać/wstrzymywać/wznawiać/zatrzymywać nagrywanie na podstawie logiki biznesowej aplikacji, lub możesz udzielić użytkownikowi końcowemu kontroli w celu wyzwolenia tych akcji. Aby dowiedzieć się więcej, zapoznaj się z naszymi pojęciami i przewodnikami Szybki start.

Hang-up — gdy aplikacja odpowiada 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 — niezależnie od tego, czy aplikacja odpowiada na wywołanie jeden do jednego, czy grupy, czy umieszcza wywołanie wychodzące z co najmniej jednym uczestnikiem, ta akcja usuwa wszystkich uczestników i kończy wywołanie. Ta operacja jest wyzwalana przez ustawienie forEveryOne właściwości na true w akcji wywołania zawieszającego się.

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

Uruchamianie/zatrzymywanie przesyłania strumieniowego audio (publiczna wersja zapoznawcza) — przesyłanie strumieniowe audio umożliwia subskrybowanie strumieni audio w czasie rzeczywistym z trwającego połączenia. Aby uzyskać bardziej szczegółowe wskazówki dotyczące rozpoczynania pracy z przesyłaniem strumieniowym audio i informacjami na temat zdarzeń wywołania zwrotnego audio, zobacz naszą koncepcję i nasz przewodnik Szybki start.

Transkrypcja uruchamiania/zatrzymywania w czasie rzeczywistym (publiczna wersja zapoznawcza) — transkrypcja w czasie rzeczywistym umożliwia dostęp do transkrypcji na żywo dla dźwięku trwającego połączenia. Aby uzyskać bardziej szczegółowe wskazówki dotyczące rozpoczynania pracy z transkrypcją w czasie rzeczywistym i informacji na temat zdarzeń wywołania zwrotnego transkrypcji w czasie rzeczywistym, zobacz naszą koncepcję i nasz przewodnik Szybki start.

Scenariusze zapytań

Lista uczestników — zwraca listę wszystkich uczestników wywołania. 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. Są one wysyłane niezależnie od zestawu SDK (wywoływanie lub wywoływanie automatyzacji). Chociaż możesz utworzyć subskrypcję dla dowolnego zdarzenia, zalecamy użycie IncomingCall zdarzenia 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.
CallStarted Nawiązaliśmy połączenie (przychodzące lub wychodzące).
CallEnded Przerwano wywołanie i usunięto wszystkich uczestników.
ParticipantAdded Dodano uczestnika do połączenia.
ParticipantRemoved Usunięto uczestnika z połączenia.
RecordingFileStatusUpdated Dostępny jest plik nagrywania.

Przeczytaj więcej na temat tych zdarzeń i schematu ładunku w usługach Azure Communication Services — zdarzenia połączeń głosowych i wideo

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
CallConnected Pomyślnie uruchomiono wywołanie (w przypadku używania Answer lub Create działania) lub aplikacja pomyślnie nawiązała połączenie z trwającym wywołaniem (w przypadku korzystania z Connect akcji).
CallDisconnected Aplikacja została odłączona od wywołania.
CreateCallFailed Nie można utworzyć wywołania aplikacji.
AnswerFailed Aplikacja nie odebrała połączenia.
ConnectFailed Aplikacja nie mogła nawiązać połączenia z wywołaniem (tylko w przypadku Connect akcji wywołania).
CallTransferAccepted Akcja przeniesienia została ukończona pomyślnie, a transfer jest połączony z uczestnikiem docelowym.
CallTransferFailed Akcja transferu nie powiodła się.
AddParticipantSucceeded Aplikacja pomyślnie dodała uczestnika do połączenia.
AddParticipantFailed Aplikacja nie mogła dodać uczestnika do połączenia (z powodu błędu lub uczestnik nie zaakceptował zaproszenia)
CancelAddParticipantSucceeded Aplikacja anulowała AddParticipant żądanie pomyślnie (uczestnik nie został dodany do połączenia).
CancelAddParticipantFailed Aplikacja nie może anulować żądania AddParticipant (może to być spowodowane tym, że żądanie zostało już przetworzone).
RemoveParticipantSucceeded Aplikacja pomyślnie usunęła uczestnika z wywołania.
RemoveParticipantFailed Aplikacja nie mogła usunąć uczestnika z wywołania.
ParticipantsUpdated Stan uczestnika zmienił się, gdy aplikacja była połączona z połączeniem.
PlayCompleted Aplikacja pomyślnie odtworzyła udostępniony plik dźwiękowy.
PlayFailed Aplikacja nie może odtworzyć dźwięku.
PlayCanceled Żądana akcja odtwarzania została anulowana.
RecognizeCompleted Pomyślnie ukończono rozpoznawanie danych wejściowych użytkownika.
RecognizeCanceled Żądana Recognize akcja została anulowana.
RecognizeFailed Rozpoznawanie danych wejściowych użytkownika nie powiodło się.
Aby uzyskać więcej informacji 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 ukończono pomyślnie, a ton DTMF został odebrany od uczestnika.
ContinuousDtmfRecognitionToneFailed StartContinuousDtmfRecognition ukończono, ale wystąpił błąd podczas obsługi tonu DTMF od uczestnika.
ContinuousDtmfRecognitionStopped Pomyślnie wykonano StopContinuousRecognitionpolecenie .
SendDtmfCompleted SendDTMF ukończono pomyślnie i wysłano ton DTMF 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, zobacz Akcje kontroli wywołań. Artykuł zawiera przykłady kodu i diagramy sekwencji dla różnych przepływów sterowania wywołaniami.

Najlepszym rozwiązaniem podczas potwierdzania zdarzeń wywołania zwrotnego jest odpowiedź 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, zobacz Jak zabezpieczyć punkt końcowy elementu webhook.

Identyfikator URI wywołania zwrotnego operacji

Identyfikator URI wywołania zwrotnego operacji jest opcjonalnym parametrem w niektórych interfejsach API wywołania środkowego, 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 CreateCall / AnswerCall zdarzenia interfejsu API, gdy użytkownik nawiązuje wywołanie. Przy użyciu identyfikatora URI wywołania zwrotnego operacji interfejs API wysyła odpowiednie zdarzenia dla tego pojedynczego żądania (tylko jednorazowego) do nowego identyfikatora URI.

Obsługiwane API Odpowiadające zdarzenie
AddParticipant AddParticipantSucceed / AddParticipantFailed
RemoveParticipant RemoveParticipantSucceed / RemoveParticipantFailed
TransferCall CallTransferAccepted / CallTransferFailed
CancelAddParticipant CancelAddParticipantSucceeded / CancelAddParticipantFailed
Play PlayCompleted / PlayFailed / PlayCanceled
PlayToAll PlayCompleted / PlayFailed / PlayCanceled
Recognize RecognizeCompleted / RecognizeFailed / RecognizeCanceled
StopContinuousDTMFRecognition ContinuousDtmfRecognitionStopped
SendDTMF ContinuousDtmfRecognitionToneReceived / ContinuousDtmfRecognitionToneFailed
Hold HoldFailed
StartMediaStreaming MediaStreamingStarted / MediaStreamingFailed
StopMediaStreaming MediaStreamingStopped / MediaStreamingFailed
StartTranscription TranscriptionStarted / TranscriptionFailed
UpdateTranscription TranscriptionUpdated / TranscriptionFailed
StopTranscription TranscriptionStopped / TranscriptionFailed

Następne kroki