Progettazione dell'architettura dei servizi di comunicazione di Azure

Servizi di comunicazione di Azure
Microsoft Entra ID
Funzioni di Azure

Questa guida presenta diagrammi di flusso dei dati per Servizi di comunicazione di Azure. Usare questi diagrammi per comprendere in che modo i client e i servizi interagiscono con Azure per offrire esperienze di comunicazione.

Servizi di comunicazione è un servizio basato sul cloud con API REST e SDK per librerie client che consentono di integrare le comunicazioni nelle applicazioni. Servizi di comunicazione supporta più formati di comunicazione: chiamate vocali e video, chat di testo, SMS e dati binari personalizzati.

È possibile aggiungere la comunicazione alle app Web e per dispositivi mobili, integrare servizi e bot personalizzati e accedere a livello di codice alla rete PSTN (Public Switched Telephoney Network). È possibile acquisire numeri di telefono direttamente dalle API di Servizi di comunicazione di Azure o dal portale di Azure e usare questi numeri per le applicazioni sms o chiamate vocali. Usando il routing diretto di Servizi di comunicazione, è possibile usare il proprio provider di telefonia tramite il protocollo SIP (Session Initiation Protocol) e i session border controller.

I componenti seguenti vengono usati in questi diagrammi di flusso di dati:

  • Applicazione client. Un sito Web o un'applicazione nativa usata dagli utenti finali per la comunicazione. Servizi di comunicazione fornisce librerie client SDK per browser e app native. La libreria dell'interfaccia utente open source basata su questi SDK fornisce componenti Web programmabili (React), iOS e Android UI.
  • Servizio di gestione delle identità. Servizio creato per eseguire il mapping di utenti e servizi alle identità di Servizi di comunicazione. Questo servizio crea anche token per gli utenti quando devono accedere al piano dati.
  • Servizio controller di comunicazione. Servizio creato per controllare i thread di chat e le chiamate vocali e video.
  • Servizio dati di comunicazione. Funzionalità del servizio compilata per interagire direttamente con il contenuto della comunicazione, ad esempio l'invio di messaggi chat e SMS o la riproduzione di audio in una chiamata vocale.

Standard di settore per la comunicazione, ad esempio WebRTC, separano la comunicazione in un piano di controllo e segnalazione e un piano dati. Usando Servizi di comunicazione, è possibile creare un'esperienza di comunicazione senza dover comprendere l'implementazione interna del servizio di WebRTC. Questi concetti possono tuttavia aiutare a progettare l'app:

Sistema Funzione Protocolli Modello di accesso
Piano di controllo Governa chi comunica, quando e come REST Credenziali del servizio Microsoft Entra
Piano dati Contiene contenuti di comunicazione, voce, video, testo e dati che si interfacciano con utenti e app UDP, RTMP, WebSocket, REST Token di accesso utente e credenziali del servizio Microsoft Entra

Un flusso di dati comune si verifica quando le applicazioni client avviano la comunicazione richiedendo informazioni di controllo da un controller di servizio:

  • Quali riunioni ho oggi?
  • Quale numero di telefono uso per chiamare il mio amico Joseph?
  • Quali sono i nomi dei miei compagni di squadra? Quali thread di chat in corso abbiamo?

Il servizio di controllo soddisfa queste richieste fornendo ai client token e identificatori di Servizi di comunicazione per utenti, thread, numeri di telefono e chiamate. I client usano quindi questi token e identificatori per interagire con il piano dati di Azure. Le API di Servizi di comunicazione non vincolano la progettazione dell'esperienza dell'utente finale o dei processi che controllano la comunicazione.

Nello standard WebRTC, i client richiedono informazioni di controllo dai servizi inviando messaggi di controllo in un processo noto come segnalazione. Gli identificatori di Servizi di comunicazione, ad esempio l'ID chiamata, sono paragonabili alle descrizioni delle sessioni WebRTC.

Utenti autenticati tramite token di accesso utente

I client di Servizi di comunicazione presentano token di accesso utente per l'accesso, con una maggiore sicurezza, il piano dati chiamate e chat di Azure. È consigliabile generare e gestire i token di accesso utente usando un servizio attendibile. Il token e il stringa di connessione o i segreti di Microsoft Entra necessari per generarli devono essere protetti. L'impossibilità di gestire correttamente i token di accesso può comportare addebiti aggiuntivi a causa dell'uso improprio delle risorse.

Diagram that shows the user access token architecture.

Scaricare un file di Visio di questa architettura.

Flusso di dati

  1. Un utente avvia l'applicazione client.
  2. L'applicazione client contatta il servizio di gestione delle identità. Il servizio di gestione delle identità gestisce un mapping tra identità dell'applicazione e identità di Servizi di comunicazione. Le identità dell'applicazione includono gli utenti e altri oggetti indirizzabili, ad esempio servizi o bot.
  3. Il servizio di gestione delle identità usa il mapping per rilasciare un token di accesso utente per l'identità applicabile.

app Azure Servizio o Funzioni di Azure sono due alternative per il funzionamento del servizio di gestione delle identità. Questi servizi si ridimensionano facilmente e dispongono di funzionalità predefinite per autenticare gli utenti. Sono integrati con OpenID e provider di identità di terze parti come Facebook.

Risorse

L'utente chiama un'app o un numero di telefono

Lo scenario di chiamate vocali e video più semplici prevede che un utente chiami un altro utente in primo piano senza notifiche push. È possibile integrare chiamate vocali e video di Servizi di comunicazione in app desktop Web, native per dispositivi mobili e Windows. La libreria dell'interfaccia utente open source consente di accelerare lo sviluppo.

Diagram that shows Communication Services calling without push notifications.

Scaricare un file di Visio di questa architettura.

Flusso di dati

  1. L'utente che avvia ottiene l'identità di Servizi di comunicazione della persona che vuole chiamare. In uno scenario tipico, l'utente ottiene l'identità da un elenco di amici gestito dal servizio di gestione delle identità. L'elenco raccoglie gli amici dell'utente e le identità di Servizi di comunicazione associate.
  2. L'utente di avvio avvia il client di chiamata e chiama l'utente remoto.
  3. L'utente che accetta riceve una notifica della chiamata in arrivo tramite l'SDK chiamante. Per ricevere le chiamate in ingresso, l'acceptor deve avere già inizializzato il client di chiamata.
  4. Gli utenti comunicano tra loro tramite voce e video in una chiamata.

Il flusso di dati è quasi identico quando un utente chiama un numero di telefono esterno. La differenza principale è che, per accedere alla telefonia tradizionale, il client utente di avvio deve richiedere numeri di telefono di origine e di destinazione dal servizio controller, invece di richiedere identità utente.

In alcune situazioni, è possibile che le app accettino chiamate in background usando servizi di piattaforma come Apple Push Notification. È possibile abilitare questa funzionalità integrando Servizi di comunicazione con Hub di notifica di Azure.

Risorse

L'utente partecipa a una chiamata di gruppo senza un invito

È possibile che gli utenti possano partecipare a una chiamata di gruppo senza un invito esplicito. La tua app potrebbe fornire uno spazio sociale permanente o un club che include un canale di videochiamata che gli utenti possono partecipare quando vogliono. Questo flusso di dati mostra una chiamata creata inizialmente da un client e consente a un client remoto di partecipare senza invito esplicito:

Diagram that shows a call without an invitation.

Scaricare un file di Visio di questa architettura.

Flusso di dati

  1. L'utente che avvia inizializza il client di chiamata e effettua una chiamata di gruppo.
  2. L'utente di avvio condivide l'ID chiamata del gruppo con un servizio controller di comunicazione.
  3. Il servizio controller di comunicazione condivide l'ID chiamata con altri utenti. Ad esempio, se l'applicazione fornisce club utente, l'ID chiamata di gruppo è un attributo del modello di dati del club archiviato in Azure Cosmos DB.
  4. Altri utenti accedono alla chiamata usando l'ID chiamata di gruppo.
  5. Gli utenti comunicano tra loro tramite voce e video in una chiamata.

Microsoft 365 e Teams

Molte organizzazioni usano Microsoft 365 e Teams per la comunicazione. Servizi di comunicazione e Teams sono interoperabili, che consentono questi scenari:

  • Creare un'applicazione personalizzata per consentire a un utente esterno di partecipare a una riunione di Teams. Questo scenario è ideale per scenari di visita virtuale, in cui un'azienda che usa Teams ospita una riunione per i consumer esterni che usano un'app personalizzata e un'identità personalizzata. Per altre informazioni su questo scenario, vedere Esercitazione sulle visite virtuali e Generatore di esempi.
  • Creare un'applicazione personalizzata per un utente interno con le credenziali di Teams/Microsoft Entra. Questo scenario è progettato per la creazione di client Di Teams personalizzati per i dipendenti.

Questi scenari di applicazione personalizzati usano le API Microsoft Graph e i servizi di comunicazione. Quando si creano app e servizi esterni che si connettono a Teams, si usa in genere Microsoft Graph come piano di controllo di Teams. Questo piano di controllo viene usato per configurare chi comunica e come e quando comunica usando le API per:

Si usano informazioni da queste API di controllo, ad esempio l'URL della riunione e l'identificatore del thread, per connettere i client di chiamata e chat di Servizi di comunicazione al piano dati di Teams.

Teams include anche SDK per l'aggiunta di funzionalità personalizzate all'interno delle esperienze di Teams e tramite l'archivio di Teams, ad esempio schede, bot e automazione. Questi scenari non rientrano nell'ambito di questo articolo.

Servizi di comunicazione non supporta direttamente le interazioni con i canali di Teams. Per le applicazioni personalizzate, è possibile usare le API di Chat e canale di Microsoft Graph per creare client personalizzati per i dipendenti che accedono ai canali.

L'applicazione partecipa a una chiamata di Teams pianificata

Le applicazioni di Servizi di comunicazione possono partecipare alle chiamate di Teams. Per gli utenti esterni, l'applicazione necessita di un collegamento alla riunione di Teams. Il recupero dei collegamenti viene gestito tramite le API Microsoft Graph. Ecco il flusso di dati:

Diagram showing Communication Services architecture for joining a Teams meeting.

Scaricare un file di Visio di questa architettura.

Flusso di dati

  1. (1A) Il servizio controller di comunicazione pianifica la chiamata al gruppo usando l'API Microsoft Graph. In un altro caso d'uso, (1B), gli utenti pianificano la chiamata di gruppo usando Outlook o Teams.
  2. Il servizio controller di comunicazione condivide i dettagli della chiamata di Teams con i client di Servizi di comunicazione.
  3. In genere, un utente di Teams deve partecipare alla chiamata tramite l'interfaccia utente di Teams e consentire agli utenti esterni di passare attraverso la sala di attesa delle chiamate di Teams. Tuttavia, questo requisito dipende dalla configurazione del tenant di Teams e dalle impostazioni specifiche della riunione.
  4. Gli utenti di Servizi di comunicazione inizializzano il client di chiamata e partecipano alla riunione di Teams usando i dettagli ricevuti nel passaggio 2.
  5. Gli utenti comunicano tra loro tramite voce e video.

Risorse

Collaboratori

Questo articolo viene gestito da Microsoft. Originariamente è stato scritto dai seguenti contributori.

Autore principale:

Altri contributori:

Per visualizzare i profili LinkedIn non pubblici, accedere a LinkedIn.

Passaggi successivi