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.
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.
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 StopContinuousRecognition polecenie . |
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
Powiązane artykuły
- Dowiedz się, jak zasób jest naliczany za różne wywołania przypadków użycia z przykładami.
- Zobacz Szybki start, aby umieścić wywołanie wychodzące.
- Dowiedz się więcej o użyciu i dziennikach operacyjnych opublikowanych przez automatyzację wywołań.