Concetti relativi alle chiamate in arrivo
Servizi di comunicazione di Azure Call Automation consente agli sviluppatori di creare applicazioni che possono effettuare e ricevere chiamate. Sfrutta le sottoscrizioni di Griglia di eventi per recapitare IncomingCall
eventi, rendendo fondamentale configurare l'ambiente per ricevere queste notifiche per l'applicazione per reindirizzare o rispondere a una chiamata in modo efficace. Pertanto, la comprensione dei concetti fondamentali delle chiamate in ingresso è essenziale per sfruttare il potenziale completo di Servizi di comunicazione di Azure Call Automation.
Scenari di chiamata
Prima di configurare l'ambiente, è importante comprendere gli scenari che possono attivare un IncomingCall
evento. Per attivare un IncomingCall
evento, è necessario effettuare una chiamata a un'identità Servizi di comunicazione di Azure o a un numero PSTN (Public Switched Telephone Network) associato alla risorsa Servizi di comunicazione di Azure. Di seguito sono riportati alcuni esempi di queste risorse:
- Un'identità Servizi di comunicazione di Azure
- Un numero di telefono PSTN di proprietà della risorsa Servizi di comunicazione di Azure
Considerati questi esempi, gli scenari seguenti attivano un IncomingCall
evento inviato a Griglia di eventi:
Source (Sorgente) | Destination | Scenari |
---|---|---|
identità Servizi di comunicazione di Azure | identità Servizi di comunicazione di Azure | Chiamata, Reindirizzamento, Aggiungi partecipante, Trasferimento |
identità Servizi di comunicazione di Azure | Numero PSTN di proprietà della risorsa Servizi di comunicazione di Azure | Chiamata, Reindirizzamento, Aggiungi partecipante, Trasferimento |
PSTN pubblico | Numero PSTN di proprietà della risorsa Servizi di comunicazione di Azure | Chiamata, Reindirizzamento, Aggiungi partecipante, Trasferimento |
Nota
È importante comprendere che un'identità Servizi di comunicazione di Azure può rappresentare un utente o un'applicazione. Anche se la piattaforma non dispone di una funzionalità predefinita per assegnare in modo esplicito un'identità a un utente o a un'applicazione, l'applicazione o l'infrastruttura di supporto può eseguire questa operazione. Per altre informazioni su questo argomento, vedere la guida ai concetti relativi alle identità.
Registrare un provider di risorse di Griglia di eventi
Se griglia di eventi non è stata usata in precedenza nella sottoscrizione di Azure, potrebbe essere necessario registrare il provider di risorse di Griglia di eventi. Per registrare il provider, seguire questa procedura:
- Vai al portale di Azure.
- Nel menu a sinistra selezionare Sottoscrizioni.
- Selezionare la sottoscrizione usata per Griglia di eventi.
- Nel menu sinistro, in Impostazioni, scegliere Provider di risorse.
- Cercare Microsoft.EventGrid.
- Se il provider di risorse non è registrato, selezionare Registra.
Ricezione di una notifica di chiamata in ingresso da Griglia di eventi
In Servizi di comunicazione di Azure, la ricezione di una IncomingCall
notifica viene resa possibile tramite una sottoscrizione di Griglia di eventi. Come destinatario della notifica, si ha la flessibilità di scegliere come gestirla. Poiché l'API di automazione delle chiamate sfrutta i callback webhook per gli eventi, è comune usare una sottoscrizione di Griglia di eventi "Webhook". Tuttavia, il servizio offre vari tipi di sottoscrizione e si ha la libertà di scegliere quello più adatto alle proprie esigenze.
Questa architettura offre i vantaggi seguenti:
- Usando i filtri di sottoscrizione di Griglia di eventi, è possibile instradare la
IncomingCall
notifica a applicazioni specifiche. - L'assegnazione di numeri PSTN e la logica di routing possono esistere nell'applicazione rispetto alla configurazione statica online.
- Come indicato nella sezione Scenari di chiamata, l'applicazione può ricevere una notifica anche quando gli utenti effettuano chiamate tra loro. È quindi possibile combinare questo scenario con le API di registrazione delle chiamate per soddisfare le esigenze di conformità.
Per un payload di esempio dell'evento e altre informazioni su altri eventi chiamante pubblicati in Griglia di eventi, vedere questa guida.
Di seguito è riportato un esempio di sottoscrizione webhook di Griglia di eventi in cui il filtro del tipo di evento è in ascolto solo dell'evento IncomingCall
.
Opzioni di routing delle chiamate con Automazione chiamate e Griglia di eventi
In Automazione chiamate e Griglia di eventi il routing delle chiamate può essere personalizzato in base alle esigenze specifiche. Usando filtri avanzati all'interno della sottoscrizione di Griglia di eventi, è possibile sottoscrivere una IncomingCall
notifica relativa a un numero di telefono di origine/destinazione specifico o a un'identità di Servizi di comunicazione di Azure. Questa notifica può quindi essere indirizzata a un endpoint, ad esempio una sottoscrizione webhook. Usando Call Automation SDK, l'applicazione endpoint può quindi prendere una decisione per reindirizzare la chiamata a un'altra identità Servizi di comunicazione di Azure o alla rete PSTN.
Nota
Per assicurarsi che l'applicazione riceva solo gli eventi necessari, è consigliabile configurare il filtro in Griglia di eventi. Ciò è particolarmente cruciale negli scenari che generano IncomingCall
eventi, ad esempio il reindirizzamento di una chiamata PSTN in ingresso a un endpoint Servizi di comunicazione di Azure. Se non viene usato un filtro, la sottoscrizione di Griglia di eventi riceve due IncomingCall
eventi, uno per la chiamata PSTN e uno per l'utente Servizi di comunicazione di Azure, anche se si intende ricevere solo la prima notifica. L'abbandono della gestione di tali scenari tramite filtri o altri meccanismi nell'applicazione può comportare cicli infiniti e altri comportamenti indesiderati.
Di seguito è riportato un esempio di filtro avanzato per una sottoscrizione di Griglia di eventi che controlla la data.to.PhoneNumber.Value
stringa a partire da un numero di telefono PSTN '+18005551212.
Assegnazione di numeri
Quando si usa la IncomingCall
notifica in Servizi di comunicazione di Azure, è possibile associare qualsiasi numero specifico a qualsiasi endpoint. Ad esempio, se è stato ottenuto un numero di telefono PSTN di +14255551212
e si desidera assegnarlo a un utente con un'identità di 375f0e2f-e8db-4449-9bf7-2054b02e42b4
nell'applicazione, è necessario mantenere un mapping di tale numero all'identità. Quando viene inviata una IncomingCall
notifica che corrisponde al numero di telefono nel campo a , è possibile richiamare l'API e fornire l'identità Redirect
dell'utente. In altre parole, è possibile gestire l'assegnazione di numeri all'interno dell'applicazione e indirizzare o rispondere alle chiamate in fase di esecuzione.
Consigli per iniziare
Per assicurarsi che Griglia di eventi fornisca eventi all'endpoint webhook e impedisca agli utenti malintenzionati di inondare l'endpoint con eventi, è necessario dimostrare la proprietà dell'endpoint. Per risolvere eventuali problemi relativi alla ricezione di eventi, verificare che il webhook configurato sia verificato gestendo
SubscriptionValidationEvent
. Per altre informazioni, vedere questa guida.Quando viene ricevuto un evento di chiamata in ingresso, se l'applicazione non risponde con un codice di stato 200Ok a Griglia di eventi entro l'intervallo di tempo richiesto, Griglia di eventi usa un nuovo tentativo di backoff esponenziale per inviare di nuovo l'evento. Tuttavia, una chiamata in arrivo suona solo per 30 secondi e risponde a una chiamata dopo tale tempo non sarà effettiva. Per evitare nuovi tentativi per le chiamate scadute o non aggiornati, è consigliabile impostare il criterio di ripetizione dei tentativi come Numero massimo di tentativi di recapito di eventi su 2 e Ora evento su Live su 1 minuto. Queste impostazioni sono disponibili nella scheda Funzionalità aggiuntive della sottoscrizione di eventi. Altre informazioni sui tentativi sono disponibili qui.
È consigliabile abilitare la registrazione per la risorsa di Griglia di eventi per monitorare gli eventi che non riescono a recapitare. A tale scopo, passare all'argomento di sistema nella scheda Eventi della risorsa di comunicazione e abilitare la registrazione dalle impostazioni di diagnostica. I log degli errori sono disponibili nella tabella "AegDeliveryFailureLogs".
AegDeliveryFailureLogs | limit 10 | where Message has "incomingCall"
Passaggi successivi
- Provare la guida introduttiva per eseguire una chiamata in uscita.