Panoramica dell'automazione delle chiamate

Servizi di comunicazione di Azure Call Automation offre agli sviluppatori la possibilità di creare flussi di lavoro di chiamata intelligenti e basati su server e di chiamare per canali PSTN (Public Switched Telephone Network). Gli SDK, disponibili in C#, Java, JavaScript e Python, usano un modello di evento azione per creare interazioni personalizzate con i clienti. Le applicazioni di comunicazione possono ascoltare gli eventi di chiamata in tempo reale ed eseguire azioni del piano di controllo (ad esempio risposta, trasferimento, riproduzione audio, registrazione di avvio e così via) per gestire e controllare le chiamate in base alla logica di business.

Nota

L'automazione delle chiamate attualmente non supporta le chiamate Rooms .

Casi d'uso comuni

Alcuni dei casi d'uso comuni che possono essere compilati usando l'automazione delle chiamate includono:

  • Programmare chiamate VoIP o PSTN per flussi di lavoro transazionali, ad esempio promemoria click-to-call e appuntamenti per migliorare il servizio clienti.
  • Creare flussi di lavoro di interazione interattiva per i clienti self-service per casi d'uso come prenotazioni e aggiornamenti degli ordini, usando le azioni Play (URL audio, Sintesi vocale e SSML) e Recognize (DTMF e Voice).
  • Integrare le applicazioni di comunicazione con i contact center e le reti telefoniche private usando l'instradamento diretto.
  • Proteggere l'identità del cliente creando servizi di maschera numerica per connettere gli acquirenti ai venditori o agli utenti ai fornitori partner sulla piattaforma.
  • Aumentare il coinvolgimento creando programmi automatizzati di sensibilizzazione dei clienti per il marketing e il servizio clienti.
  • Analizza in un processo post-chiamata le registrazioni audio non mescolate a scopo di controllo della qualità.

Servizi di comunicazione di Azure Call Automation può essere usato per creare flussi di lavoro chiamanti per scenari di servizio clienti, come illustrato nell'architettura di alto livello. È possibile rispondere alle chiamate in ingresso o effettuare chiamate in uscita. Eseguire azioni come la riproduzione di un messaggio di benvenuto, la connessione del cliente a un agente live in un'app client Servizi di comunicazione di Azure Calling SDK per rispondere alla richiesta di chiamata in ingresso. Con il supporto per Servizi di comunicazione di Azure PSTN o Instradamento diretto, è quindi possibile riconnettere questo flusso di lavoro al centro contatti.

Diagramma del flusso di chiamata per uno scenario del servizio clienti.

Funzionalità

L'elenco seguente presenta il set di funzionalità attualmente disponibili negli SDK di automazione delle chiamate Servizi di comunicazione di Azure.

Area funzionalità Funzionalità .NET Java JavaScript Python
Scenari di pre-chiamata Rispondere a una chiamata uno-a-uno ✔️ ✔️ ✔️ ✔️
Rispondere a una chiamata di gruppo ✔️ ✔️ ✔️ ✔️
Inserire una nuova chiamata in uscita a uno o più endpoint ✔️ ✔️ ✔️ ✔️
Reindirizzare* (inoltrare) una chiamata a uno o più endpoint ✔️ ✔️ ✔️ ✔️
Rifiutare una chiamata in ingresso ✔️ ✔️ ✔️ ✔️
Scenari di chiamata intermedia Aggiungere uno o più endpoint a una chiamata esistente ✔️ ✔️ ✔️ ✔️
Annullare l'aggiunta di un endpoint a una chiamata esistente ✔️ ✔️ ✔️ ✔️
Riprodurre audio da un file audio ✔️ ✔️ ✔️ ✔️
Riprodurre audio con sintesi vocale ✔️ ✔️ ✔️ ✔️
Riconoscere l'input dell'utente tramite DTMF ✔️ ✔️ ✔️ ✔️
Riconoscere gli input vocali degli utenti ✔️ ✔️ ✔️ ✔️
Avviare il riconoscimento DTMF continuo ✔️ ✔️ ✔️ ✔️
Arrestare il riconoscimento DTMF continuo ✔️ ✔️ ✔️ ✔️
Inviare DTMF ✔️ ✔️ ✔️ ✔️
Disattivare il partecipante ✔️ ✔️ ✔️ ✔️
Rimuovere uno o più endpoint da una chiamata esistente ✔️ ✔️ ✔️ ✔️
Trasferimento cieco* una chiamata 1:1 a un altro endpoint ✔️ ✔️ ✔️ ✔️
Trasferimento cieco* un partecipante dalla chiamata di gruppo a un altro endpoint ✔️ ✔️ ✔️ ✔️
Appendere una chiamata (rimuovere la gamba di chiamata) ✔️ ✔️ ✔️ ✔️
Terminare una chiamata (rimuovere tutti i partecipanti e terminare la chiamata) ✔️ ✔️ ✔️ ✔️
Annullare le operazioni multimediali ✔️ ✔️ ✔️ ✔️
Condividere informazioni personalizzate (tramite intestazioni VOIP o SIP) con gli endpoint durante l'aggiunta a una chiamata o il trasferimento di una chiamata a tali intestazioni ✔️ ✔️ ✔️ ✔️
Scenari di query Ottenere lo stato della chiamata ✔️ ✔️ ✔️ ✔️
Ottenere un partecipante a una chiamata ✔️ ✔️ ✔️ ✔️
Elencare tutti i partecipanti a una chiamata ✔️ ✔️ ✔️ ✔️
Registrazione Chiamata Avvio/sospensione/ripresa/arresto della registrazione ✔️ ✔️ ✔️ ✔️

*Il trasferimento o il reindirizzamento di una chiamata VoIP a un numero di telefono non è attualmente supportato.

Architettura

L'automazione delle chiamate usa un'interfaccia API REST per ricevere le richieste e fornire risposte a tutte le azioni eseguite all'interno del servizio. A causa della natura asincrona della chiamata, la maggior parte delle azioni ha eventi corrispondenti che vengono attivati quando l'azione viene completata correttamente o ha esito negativo.

Servizi di comunicazione di Azure usa Griglia di eventi per recapitare Evento IncomingCall e Webhook HTTPS per tutti i callback di azioni di chiamata intermedie.

Screenshot del flusso per le chiamate e le azioni in ingresso.

Chiamare azioni

Azioni di pre-chiamata

Queste azioni vengono eseguite prima che l'endpoint di destinazione elencato nella notifica degli eventi IncomingCall sia connesso. Gli eventi di callback web hook comunicano solo l'azione di pre-chiamata "answer", non per le azioni di rifiuto o reindirizzamento.

Risposta Usando l'evento IncomingCall di Griglia di eventi e Call Automation SDK, è possibile rispondere a una chiamata dall'applicazione. Questa azione consente scenari IVR in cui l'applicazione può rispondere a livello di codice alle chiamate PSTN in ingresso. Altri scenari includono la risposta a una chiamata per conto di un utente.

Rifiuta per rifiutare una chiamata significa che l'applicazione può ricevere l'evento IncomingCall e impedire che la chiamata venga connessa all'endpoint di destinazione.

Reindirizzamento Tramite l'evento IncomingCall da Griglia di eventi, è possibile reindirizzare una chiamata a uno o più endpoint creando uno scenario con anello simultaneo o singolo. L'azione di reindirizzamento non risponde alla chiamata, la chiamata viene semplicemente reindirizzata o inoltrata a un altro endpoint di destinazione a cui rispondere.

Creare l'azione Crea chiamata può essere usata per effettuare chiamate in uscita ai numeri di telefono e ad altri utenti di comunicazione. I casi d'uso includono l'applicazione che effettua chiamate in uscita per informare in modo proattivo gli utenti di un'interruzione o di notificare un aggiornamento dell'ordine.

Azioni mid-call

Queste azioni possono essere eseguite sulle chiamate a cui viene risposto o inserito tramite GLI SDK di Automazione delle chiamate. Ogni azione mid-call ha un evento di callback di web hook riuscito o negativo corrispondente.

È possibile aggiungere/rimuovere partecipanti uno o più partecipanti in una singola richiesta con ogni partecipante che rappresenta una variante degli endpoint di destinazione supportati. Viene inviato un callback web hook per ogni partecipante aggiunto correttamente alla chiamata.

Riproduci Quando l'applicazione risponde a una chiamata o effettua una chiamata in uscita, puoi riprodurre una richiesta audio per il chiamante. Questo audio può essere eseguito in ciclo se necessario in scenari come la riproduzione di musica in attesa. Per altre informazioni, vedere i concetti e la guida pratica per personalizzare le richieste vocali agli utenti con l'azione Play.

Riconoscere l'input Dopo che l'applicazione ha riprodotto una richiesta audio, è possibile richiedere l'input dell'utente per guidare la logica di business e lo spostamento nell'applicazione. Per altre informazioni, vedere i concetti e la guida pratica per raccogliere l'input dell'utente.

Riconoscimento DTMF continuo Quando l'applicazione deve essere in grado di ricevere toni DTMF in qualsiasi punto della chiamata senza che l'applicazione debba attivare un'azione di riconoscimento specifica. Ciò può essere utile negli scenari in cui un agente si trova in una chiamata e richiede all'utente di immettere in un determinato tipo di ID o numero di rilevamento. Per altre informazioni su come usare questa visualizzazione, vedere la guida.

Invia DTMF Quando l'applicazione deve inviare toni DTMF a un partecipante esterno, questo potrebbe essere per scopi come la chiamata in uscita a un agente esterno e la fornitura del numero di estensione, o qualcosa come lo spostamento in un menu IVR esterno.

Disattivare l'audio L'applicazione può disattivare determinati utenti in base alla logica di business. L'utente dovrà quindi annullare manualmente l'audio se vuole parlare.

Trasferisci Quando l'applicazione risponde a una chiamata o inserisce una chiamata in uscita a un endpoint, tale chiamata può essere trasferita a un altro endpoint di destinazione. Il trasferimento di una chiamata 1:1 rimuove la capacità dell'applicazione di controllare la chiamata usando gli SDK di Automazione chiamate.

Record Si decide quando avviare,sospendere/riprendere/arrestare la registrazione in base alla logica di business dell'applicazione oppure concedere il controllo all'utente finale per attivare tali azioni. Per altre informazioni, vedere i concetti e la guida introduttiva.

Hang-up Quando l'applicazione ha risposto a una chiamata uno-a-uno, l'azione di blocco rimuove la gamba della chiamata e termina la chiamata con l'altro endpoint. Se sono presenti più di due partecipanti nella chiamata (chiamata di gruppo), l'esecuzione di un'azione "hang-up" rimuove l'endpoint dell'applicazione dalla chiamata di gruppo.

Termina Se l'applicazione ha risposto a una chiamata uno-a-uno o a un gruppo o ha effettuato una chiamata in uscita con uno o più partecipanti, questa azione rimuove tutti i partecipanti e termina la chiamata. Questa operazione viene attivata impostando la forEveryOne proprietà su true nell'azione di chiamata hang-up.

Annullare operazioni multimediali in base alla logica di business dell'applicazione potrebbe dover annullare le operazioni multimediali in corso e in coda. A seconda dell'operazione multimediale annullata e di quelle in coda, si riceverà un evento webhook che indica che l'azione è stata annullata.

Scenari di query

Elenco partecipanti Restituisce un elenco di tutti i partecipanti in una chiamata. I bot di registrazione e trascrizione vengono omessi da questo elenco.

evento

Nella tabella seguente vengono descritti gli eventi correnti generati da Servizi di comunicazione di Azure. Le due tabelle seguenti descrivono gli eventi generati da Griglia di eventi e dall'automazione delle chiamate come eventi webhook.

Eventi di Griglia di eventi

La maggior parte degli eventi inviati da Griglia di eventi è indipendente dalla piattaforma, ovvero vengono generati indipendentemente dall'SDK (chiamata o automazione delle chiamate). Anche se è possibile creare una sottoscrizione per qualsiasi evento, è consigliabile usare l'evento IncomingCall per tutti i casi d'uso di Automazione chiamata in cui si vuole controllare la chiamata a livello di codice. Usare gli altri eventi a scopo di creazione di report/telemetria.

Evento Descrizione
IncomingCall Notifica di una chiamata a un utente di comunicazione o a un numero di telefono
CallStarted Viene stabilita una chiamata (in ingresso o in uscita)
CallEnded Una chiamata viene terminata e tutti i partecipanti vengono rimossi
PartecipanteAggiungi Un partecipante è stato aggiunto a una chiamata
Partecipante Spostato Un partecipante è stato rimosso da una chiamata
RecordingFileStatusUpdated È disponibile un file di registrazione

Altre informazioni su questi eventi e sullo schema del payload sono disponibili qui

Chiamare eventi webhook di Automazione

Gli eventi di Automazione chiamata vengono inviati all'URI di callback web hook specificato quando si risponde o si inserisce una nuova chiamata in uscita.

Evento Descrizione
Chiamata Connessione ed La gamba di chiamata dell'applicazione è connessa (in ingresso o in uscita)
CallDisconnected La gamba di chiamata dell'applicazione è disconnessa
CallTransferAccepted La gamba di chiamata dell'applicazione è stata trasferita a un altro endpoint
CallTransferFailed Il trasferimento della gamba di chiamata dell'applicazione non è riuscita
AddParticipantSucceeded L'applicazione ha aggiunto un partecipante
AddParticipantFailed L'applicazione non è riuscita ad aggiungere un partecipante
CancelAddParticipantSucceeded L'applicazione ha annullato l'aggiunta di un partecipante
CancelAddParticipantFailed L'applicazione non è riuscita ad annullare l'aggiunta di un partecipante
RemoveParticipantSucceeded L'applicazione ha rimosso correttamente un partecipante dalla chiamata.
RemoveParticipantFailed L'applicazione non è riuscita a rimuovere un partecipante dalla chiamata.
PartecipantiAggiornati Lo stato di un partecipante è cambiato mentre la gamba di chiamata dell'applicazione è stata connessa a una chiamata
PlayCompleted L'applicazione ha riprodotto correttamente il file audio fornito
PlayFailed L'applicazione non è riuscita a riprodurre audio
PlayCanceled L'azione di riproduzione richiesta è stata annullata
RecognizeCompleted Il riconoscimento dell'input dell'utente è stato completato correttamente
RecognizeCanceled L'azione di riconoscimento richiesta è stata annullata
RecognizeFailed Il riconoscimento dell'input dell'utente non è riuscito
per altre informazioni su come riconoscere gli eventi di azione, vedere la guida pratica per raccogliere l'input dell'utente
RecordingStateChanged Lo stato dell'azione di registrazione è cambiato da attivo a inattivo o viceversa
ContinuousDtmfRecognitionToneReceived StartContinuousDtmfRecognition completato correttamente e un tono DTMF è stato ricevuto dal partecipante
ContinuousDtmfRecognitionToneFailed StartContinuousDtmfRecognition completato ma si è verificato un errore durante la gestione di un tono DTMF dal partecipante
ContinuousDtmfRecognitionStopped Esecuzione riuscita di StopContinuousRecognition
SendDtmfCompleted SendDTMF completato correttamente e i toni DTMF sono stati inviati al partecipante di destinazione
SendDtmfFailed Errore durante l'invio dei toni DTMF

Per comprendere quali eventi vengono pubblicati per azioni diverse, vedere questa guida che fornisce esempi di codice e diagrammi di sequenza per vari flussi di controllo delle chiamate.

Quando si riconoscono gli eventi di callback, è consigliabile rispondere con codici di stato HTTP standard come 200 OK. Le informazioni dettagliate non sono necessarie ed è più adatto per i processi di debug.

Per informazioni su come proteggere il recapito degli eventi di callback, vedere questa guida.

Uri di callback dell'operazione

Si tratta di un parametro facoltativo in alcune API mid-call che usano eventi come risposte asincrone. Per impostazione predefinita, tutti gli eventi vengono inviati all'URI di callback predefinito impostato dall'API CreateCall/AnswerCall quando l'utente stabilisce una chiamata. Con l'utilizzo dell'URI callback dell'operazione, gli eventi corrispondenti di questa singola richiesta (una tantum) verranno inviati al nuovo URI.

API supportata Evento corrispondente
AddParticipant AddParticipantSucceed/ AddParticipantFailed
RemoveParticipant RemoveParticipantSucceed/RemoveParticipantFailed
TransferCall CallTransferAccepted/CallTransferFailed
CancelAddParticipant CancelAddParticipantSucceeded/ CancelAddParticipantFailed
Riproduci PlayCompleted/ PlayFailed/ PlayCanceled
PlayToAll PlayCompleted/ PlayFailed/ PlayCanceled
Recognize RecognizeCompleted/RecognizeFailed/RecognizeCanceled
StopContinuousDTMFRecognition ContinuousDtmfRecognitionStopped
SendDTMF ContinuousDtmfRecognitionToneReceived/ContinuousDtmfRecognitionToneFailed

Passaggi successivi

Ecco alcuni articoli di interesse per te: