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.
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.
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:
- Informazioni su come viene addebitato il costo della risorsa per vari casi d'uso delle chiamate con esempi.
- Provare la guida introduttiva per eseguire una chiamata in uscita.
- Informazioni sull'utilizzo e sui log operativi pubblicati dall'automazione delle chiamate.