Condividi tramite


Servizi di comunicazione di Azure supporto per le identità di Teams - Casi d'uso

Microsoft Teams fornisce identità gestite da Microsoft Entra ID ed esperienze di chiamata controllate dall'interfaccia di amministrazione e dai criteri di Teams. Agli utenti potrebbero essere assegnate licenze per abilitare chiamate telefoniche e funzionalità avanzate di chiamata di Telefono di Microsoft Teams. Servizi di comunicazione di Azure supporto per le identità di Teams consente di gestire le chiamate vocali su IP (VoIP) di Teams, le chiamate telefoniche di Teams e partecipare alle riunioni di Teams. Gli sviluppatori potrebbero estendere la Servizi di comunicazione di Azure con l'API Graph per fornire dati contestuali dall'ecosistema Microsoft 365. Questa pagina fornisce ispirazione su come usare le tecnologie Microsoft esistenti per offrire un'esperienza end-to-end per gli scenari di chiamata con gli utenti di Teams e Servizi di comunicazione di Azure gli SDK per chiamate.

Caso d'uso 1: Effettuare una chiamata PSTN di Teams in uscita

Questo scenario mostra un caso d'uso multi-tenant, in cui Contoso fornisce SaaS alla società Fabrikam. SaaS consente agli utenti di Fabrikam di effettuare chiamate telefoniche di Teams tramite un sito Web personalizzato che accetta l'identità dell'utente e della configurazione di Teams della connettività PSTN assegnata all'utente di Teams.

Diagramma che mostra l'esperienza utente di Alice che effettua una telefonata di Teams al cliente Megan.

Il diagramma di sequenza seguente illustra i passaggi dettagliati dell'avvio di una chiamata telefonica di Teams:

Il diagramma sequenza descrive un set dettagliato di passaggi che si verificano per avviare una chiamata telefonica di Teams usando Servizi di comunicazione di Azure e Teams.

Passaggi

  1. Autenticare Alice da Fabrikam nell'applicazione client di Contoso: Alice usa un browser per aprire la pagina Web di Fabrikam ed eseguire l'autenticazione. È possibile trovare altri dettagli sull'autenticazione con l'identità di Teams. Se l'autenticazione ha esito positivo, Alice viene reindirizzato alla pagina iniziale.
  2. Caricare i clienti e i relativi numeri PSTN: Contoso fornisce logica personalizzata per recuperare l'elenco dei clienti e i relativi numeri di telefono associati. Il rendering dell'elenco viene eseguito nella pagina iniziale in Alice.
  3. Avviare una chiamata a Megan: Alice seleziona un pulsante per avviare una chiamata PSTN a Megan nell'applicazione client di Contoso. L'applicazione client usa Servizi di comunicazione di Azure chiamare SDK per fornire la funzionalità di chiamata. Prima di tutto, crea un'istanza di callAgent che contiene il token di accesso Servizi di comunicazione di Azure acquisito durante il primo passaggio.
const callClient = new CallClient(); 
tokenCredential = new AzureCommunicationTokenCredential('<AlICE_ACCESS_TOKEN>');
callAgent = await callClient.createTeamsCallAgent(tokenCredential)

Quindi devi avviare una chiamata al numero di telefono di Megan.

const pstnCallee = { phoneNumber: '<MEGAN_PHONE_NUMBER_E164_FORMAT>' }
const oneToOneCall = callAgent.startCall([pstnCallee], { threadId: '00000000-0000-0000-0000-000000000000' });
  1. Connessione della chiamata PSTN a Megan: la chiamata viene instradata attraverso la connettività telefonica di Teams assegnata ad Alice, raggiungendo la rete PSTN e squillando il telefono associato al numero di telefono fornito. Megan vede una chiamata in arrivo dal numero di telefono associato all'utente di Teams di Alice.
  2. Megans accetta la chiamata: Megan accetta la chiamata e viene stabilita la connessione tra Alice e Megan.

Caso d'uso 2: Ricevere una telefonata di Teams in ingresso

Questo scenario mostra un caso d'uso multi-tenant, in cui Contoso fornisce SaaS alla società Fabrikam. SaaS consente agli utenti di Fabrikam di ricevere una telefonata di Teams tramite un sito Web personalizzato che accetta l'identità dell'utente di Teams e la configurazione della connettività PSTN assegnata all'utente di Teams.

Diagramma che mostra l'esperienza utente di Alice che riceve una telefonata di Teams dal cliente Megan.

Il diagramma di sequenza seguente illustra i passaggi dettagliati per accettare le chiamate telefoniche di Teams in ingresso:

Il diagramma di sequenza descrive un set dettagliato di passaggi che si verificano per ricevere una telefonata di Teams usando Servizi di comunicazione di Azure e Teams.

Passaggi

  1. Autenticare Alice da Fabrikam nell'applicazione client di Contoso: Alice usa un browser per aprire la pagina Web di Fabrikam ed eseguire l'autenticazione. È possibile trovare altri dettagli sull'autenticazione con l'identità di Teams. Se l'autenticazione ha esito positivo, Alice viene reindirizzato alla pagina iniziale.
  2. Sottoscrivere le chiamate: l'applicazione client usa Servizi di comunicazione di Azure'SDK chiamante per fornire la funzionalità di chiamata. Prima di tutto, crea un'istanza di callAgent che contiene il token di accesso Servizi di comunicazione di Azure acquisito durante il primo passaggio.
const callClient = new CallClient(); 
tokenCredential = new AzureCommunicationTokenCredential('<AlICE_ACCESS_TOKEN>');
callAgent = await callClient.createTeamsCallAgent(tokenCredential)

Si sottoscrive quindi l'evento di chiamata in arrivo.

const incomingCallHandler = async (args: { teamsIncomingCall: TeamsIncomingCall }) => {
    
    const incomingCall = args.teamsIncomingCall;
    
    // Get information about caller
    var callerInfo = incomingCall.callerInfo
    
    showIncomingCall(callerInfo,incomingCall);
};
callAgent.on('incomingCall', incomingCallHandler);

Il metodo showIncomingCall è un metodo di Contoso personalizzato che eseguirà il rendering di un'interfaccia utente per indicare le chiamate in ingresso e due pulsanti per accettare e rifiutare la chiamata. Se si seleziona il pulsante Accetta, viene usato il codice seguente:

// Accept the call
var call = await incomingCall.accept();

Se si seleziona il pulsante rifiuta, viene usato il codice seguente:

// Reject the call
incomingCall.reject();
  1. Megan inizia una chiamata al numero PSTN assegnato all'utente di Teams Alice: Megan usa il suo telefono per chiamare Alice. La rete del gestore telefonico si connetterà alla connettività telefonica di Teams assegnata ad Alice e invierà tutti gli endpoint di Teams registrati per Alice. Include: desktop, dispositivi mobili, client Web e applicazioni di Teams basati su Servizi di comunicazione di Azure chiamare SDK.
  2. L'applicazione client di Contoso mostra la chiamata in arrivo di Megan: l'applicazione client riceve la notifica di chiamata in arrivo. Il metodo showIncomingCall usa la logica personalizzata di Contoso per convertire il numero di telefono nel nome del cliente, ad esempio un database che archivia coppie chiave-valore costituite da un numero di telefono e un nome cliente. Quando vengono recuperate le informazioni, la notifica viene visualizzata a Alice nell'applicazione client di Contoso.
  3. Alice accetta la chiamata: Alice seleziona un pulsante per accettare la chiamata e viene stabilita la connessione tra Alice e Megan.

Caso d'uso 3: Effettuare una chiamata VoIP di Teams in uscita

Questo scenario mostra un caso d'uso multi-tenant, in cui Contoso fornisce SaaS alla società Fabrikam. SaaS consente agli utenti di Fabrikam di effettuare chiamate VoIP di Teams tramite un sito Web personalizzato che accetta l'identità dell'utente di Teams.

Diagramma che mostra l'esperienza utente di Alice che effettua una chiamata VoIP di Teams al collega Megan.

Il diagramma di sequenza seguente illustra i passaggi dettagliati per l'avvio di una chiamata VoIP di Teams:

Il diagramma di sequenza descrive un set dettagliato di passaggi che si verificano per avviare una chiamata VoIP di Teams usando Servizi di comunicazione di Azure e Teams.

Passaggi

  1. Autenticare Alice da Fabrikam nell'applicazione client di Contoso: Alice usa un browser per aprire la pagina Web di Fabrikam ed eseguire l'autenticazione. È possibile trovare altri dettagli sull'autenticazione con l'identità di Teams. Se l'autenticazione ha esito positivo, Alice viene reindirizzato alla pagina iniziale.
  2. Caricare gli utenti dall'organizzazione di Fabrikam e i relativi identificatori: l'applicazione client Contoso usa l'API Graph per ottenere un elenco di utenti dal tenant di Fabrikam. Alice o l'amministratore deve fornire il consenso all'API Graph per eseguire questa azione. Per altre informazioni sul comando api Graph, vedere la documentazione.
GET https://graph.microsoft.com/v1.0/users
Permissions: User.ReadBasic.All (delegated)
Response: response.body.value[1].displayName; // ”Megan Bowen”
	  response.body.value[1].id; // "e8b753b5-4117-464e-9a08-713e1ff266b3"

L'applicazione client di Contoso mostrerà quindi l'elenco degli utenti e la possibilità di avviare una chiamata a un determinato utente.

  1. Avviare una chiamata a Megan: Alice seleziona un pulsante per avviare una chiamata VoIP di Teams a Megan nell'applicazione client di Contoso. L'applicazione client usa Servizi di comunicazione di Azure chiamare SDK per fornire la funzionalità di chiamata. Le chiamate nei client di Teams sono associate alla chat di Teams. Prima di tutto, l'applicazione richiede la creazione di una chat dedicata per la chiamata VoIP.
POST https://graph.microsoft.com/v1.0/chats
Body:
{
    "chatType": "oneOnOne",
    "members": [
        {
            "@odata.type": "#microsoft.graph.aadUserConversationMember",
            "roles": [
                "owner"
            ],
            "user@odata.bind": "https://graph.microsoft.com/v1.0/users('8c0a1a67-50ce-4114-bb6c-da9c5dbcf6ca')"
        },
        {
            "@odata.type": "#microsoft.graph.aadUserConversationMember",
            "roles": [
                "owner"
            ],
            "user@odata.bind": "https://graph.microsoft.com/v1.0/users('e8b753b5-4117-464e-9a08-713e1ff266b3')"
        }
    ]
}
Permissions: Chat.Create (delegated)
Response: response.body.value.id; // "19:8c0a1a67-50ce-4114-bb6c-da9c5dbcf6ca_e8b753b5-4117-464e-9a08-713e1ff266b3@unq.gbl.spaces"

L'applicazione client crea quindi un'istanza di callAgent che contiene il token di accesso Servizi di comunicazione di Azure acquisito durante il primo passaggio.

const callClient = new CallClient(); 
tokenCredential = new AzureCommunicationTokenCredential('<AlICE_ACCESS_TOKEN>');
callAgent = await callClient.createTeamsCallAgent(tokenCredential)

Si avvia quindi una chiamata all'ID Teams di Megan.

var teamsUser = { microsoftTeamsUserId: 'e8b753b5-4117-464e-9a08-713e1ff266b3'};
const oneToOneCall = callAgent.startCall([teamsUser], { threadId: '19:8c0a1a67-50ce-4114-bb6c-da9c5dbcf6ca_e8b753b5-4117-464e-9a08-713e1ff266b3@unq.gbl.spaces' });
  1. Connessione della chiamata VoIP a Megan: la chiamata viene instradata attraverso i client Teams e l'anello dei client Teams associati a Megan. Megan vede una chiamata in arrivo da Alice con il nome definito nell'ID Entra di Microsoft.
  2. Megans accetta la chiamata: Megan accetta la chiamata e viene stabilita la connessione tra Alice e Megan.

Caso d'uso 4: Ricevere una chiamata VoIP di Teams in ingresso

Questo scenario mostra un caso d'uso multi-tenant, in cui Contoso fornisce SaaS alla società Fabrikam. SaaS consente agli utenti di Fabrikam di ricevere una chiamata VoIP di Teams tramite un sito Web personalizzato che accetta l'identità dell'utente di Teams e applica i criteri di routing applicati all'utente di Teams.

Diagramma che mostra l'esperienza utente di Alice che riceve una chiamata VoIP di Teams dal cliente Megan.

Il diagramma di sequenza seguente illustra i passaggi dettagliati per accettare le chiamate VoIP di Teams in ingresso:

Il diagramma di sequenza descrive un set dettagliato di passaggi che si verificano per ricevere una chiamata VoIP di Teams tramite Servizi di comunicazione di Azure. API Graph e Teams.

Passaggi

  1. Autenticare Alice da Fabrikam nell'applicazione client di Contoso: Alice usa un browser per aprire la pagina Web di Fabrikam ed eseguire l'autenticazione. È possibile trovare altri dettagli sull'autenticazione con l'identità di Teams. Se l'autenticazione ha esito positivo, Alice viene reindirizzato alla pagina iniziale.
  2. Sottoscrivere le chiamate: l'applicazione client usa Servizi di comunicazione di Azure'SDK chiamante per fornire la funzionalità di chiamata. Prima di tutto, crea un'istanza di callAgent che contiene il token di accesso Servizi di comunicazione di Azure acquisito durante il primo passaggio.
const callClient = new CallClient(); 
tokenCredential = new AzureCommunicationTokenCredential('<AlICE_ACCESS_TOKEN>');
callAgent = await callClient.createTeamsCallAgent(tokenCredential)

Quindi l'applicazione sottoscrive l'evento di chiamata in ingresso.

const incomingCallHandler = async (args: { teamsIncomingCall: TeamsIncomingCall }) => {
    
    const incomingCall = args.teamsIncomingCall;
    
    // Get information about caller
    var callerInfo = incomingCall.callerInfo
    
    showIncomingCall(callerInfo,incomingCall);
};
callAgent.on('incomingCall', incomingCallHandler);

Il metodo showIncomingCall è un metodo di Contoso personalizzato che eseguirà il rendering di un'interfaccia utente per indicare le chiamate in ingresso e due pulsanti per accettare e rifiutare la chiamata. Se si seleziona accetta pulsante, viene usato il codice seguente:

// Accept the call
var call = await incomingCall.accept();

Se si seleziona il pulsante rifiuta, viene usato il codice seguente:

// Reject the call
incomingCall.reject();
  1. Megan start è una chiamata VoIP all'utente di Teams Alice: Megan usa il client desktop di Teams per chiamare Alice. L'infrastruttura di Teams eseguirà l'anello di tutti gli endpoint associati ad Alice. Include: desktop, dispositivi mobili, client Web e applicazioni di Teams basati su Servizi di comunicazione di Azure chiamare SDK.
  2. L'applicazione client di Contoso mostra la chiamata in arrivo di Megan: l'applicazione client riceve la notifica di chiamata in arrivo. Il metodo showIncomingCall usa l'API Graph per convertire l'ID utente di Teams in modo da visualizzare il nome.
GET https://graph.microsoft.com/v1.0/users/e8b753b5-4117-464e-9a08-713e1ff266b3
Permissions: User.Read (delegated)
Response: response.body.value.displayName; // ”Megan Bowen”
	  response.body.value.id; // "e8b753b5-4117-464e-9a08-713e1ff266b3"

Quando vengono recuperate le informazioni, la notifica viene visualizzata a Alice nell'applicazione client di Contoso.

  1. Alice accetta la chiamata: Alice seleziona un pulsante per accettare la chiamata e viene stabilita la connessione tra Alice e Megan.

Caso d'uso 5: Partecipare alla riunione di Teams

Questo scenario mostra un caso d'uso multi-tenant, in cui Contoso fornisce SaaS alla società Fabrikam. SaaS consente agli utenti di Fabrikam di partecipare alle riunioni di Teams tramite un sito Web personalizzato che accetta l'identità dell'utente di Teams.

Diagramma che mostra l'esperienza utente di Alice che partecipa alla riunione di Teams.

Il diagramma di sequenza seguente illustra i passaggi dettagliati per partecipare a una riunione di Teams:

Il diagramma di sequenza descrive un set dettagliato di passaggi che si verificano per partecipare a una riunione di Teams usando Servizi di comunicazione di Azure, API Graph e Teams.

Passaggi

  1. Autenticare Alice da Fabrikam nell'applicazione client di Contoso: Alice usa un browser per aprire la pagina Web di Fabrikam ed eseguire l'autenticazione. È possibile trovare altri dettagli sull'autenticazione con l'identità di Teams. Se l'autenticazione ha esito positivo, Alice viene reindirizzato alla pagina iniziale.
  2. Caricare le riunioni di Teams e i relativi identificatori: l'applicazione client Contoso usa l'API Graph per ottenere un elenco di riunioni di Teams per gli utenti di Fabrikam. Alice o l'amministratore deve fornire il consenso all'API Graph per eseguire questa azione. Per altre informazioni sul comando api Graph, vedere la documentazione.
GET https://graph.microsoft.com/v1.0/me/calendar/calendarView?startDateTime={start_datetime}&endDateTime={end_datetime}
Permissions: Calendars.Read (delegated)
Response: response.body.value[0].subject; // ”Project Tailspin”
	  response.body.value[0].onlineMeeting.joinUrl; // "https://teams.microsoft.com/l/meetup-join/..."
	  response.body.value[0].start.dateTime;
	  response.body.value[0].end.dateTime;
	  response.body.value[0].location.displayName;

L'applicazione client di Contoso mostrerà quindi l'elenco delle riunioni di Teams e la possibilità di parteciparvi.

  1. Partecipare alla riunione di Teams "Project Tailspin": Alice seleziona un pulsante per partecipare alla riunione di Teams "Project Tailspin" nell'applicazione client di Contoso. L'applicazione client usa Servizi di comunicazione di Azure chiamare SDK per fornire la funzionalità di chiamata. Le applicazioni client creano un'istanza di callAgent che contiene il token di accesso Servizi di comunicazione di Azure acquisito durante il primo passaggio.
const callClient = new CallClient(); 
tokenCredential = new AzureCommunicationTokenCredential('<AlICE_ACCESS_TOKEN>');
callAgent = await callClient.createTeamsCallAgent(tokenCredential)

Quindi l'applicazione partecipa a una riunione tramite joinUrl ricevuto.

var meetingLocator = new TeamsMeetingLinkLocator("https://teams.microsoft.com/l/meetup-join/...");
callAgent.startCallJoinAsync(meetingLocator , new JoinCallOptions());

Alice partecipa quindi alla riunione di Teams.

  1. Altri partecipanti che partecipano alla riunione di Teams: l'esperienza fornita è una riunione standard di Teams. In base alla configurazione e agli inviti, la riunione di Teams può essere aggiunta dall'utente di Teams, dall'utente anonimo di Teams usando il client Web team, il client desktop di Teams, il client per dispositivi mobili di Teams, Servizi di comunicazione di Azure utente tramite applicazioni basate su Servizi di comunicazione che chiamano SDK o utenti usando telefoni.

Passaggi successivi

Gli articoli seguenti potrebbero essere di interesse per l'utente: