Compartilhar via


Audioconferência de reunião do Microsoft Teams

Este artigo descreve como usar o SDK de Chamada dos Serviços de Comunicação do Azure para recuperar detalhes de audioconferência da Reunião do Microsoft Teams. Essa funcionalidade permite que os usuários que já estão conectados a uma Reunião do Microsoft Teams possam obter a ID da conferência e discar em número de telefone associado à reunião. O recurso de Audioconferência de Reunião do Teams retorna uma coleção de todos os números de chamada e chamada gratuita. A coleção inclui nomes de países/regiões e nomes de cidades concomitantes, dando aos usuários o controle de quais detalhes de discagem de reuniões do Teams devem ser usados.

Pré-requisitos

Suporte

A seção a seguir descreve o suporte para Audioconferência nos Serviços de Comunicação do Azure.

Identidades e tipos de chamadas

A tabela a seguir mostra o suporte para tipos de chamada e identidade.

Identidades Reunião do Teams Sala Chamada 1:1 Chamada em grupo Chamada de interoperabilidade do Teams 1:1 Chamada de interoperabilidade de Grupo do Teams
Usuário dos Serviços de Comunicação ✔️
Usuário do Microsoft 365 ✔️

Operações

A tabela a seguir mostra o suporte para APIs individuais no SDK de chamada para tipos de identidade individuais.

Operações Usuário dos Serviços de Comunicação Usuário do Microsoft 365
Obter detalhes de audioconferência ✔️ ✔️

SDKs

A tabela a seguir mostra o suporte para o recurso Audioconferência em SDKs individuais dos Serviços de Comunicação do Azure.

Plataformas Web Interface do usuário da Web iOS Interface do usuário do iOS Android Interface do usuário do Android Windows
Tem suporte ✔️

Instalar o SDK

Use o comando npm install para instalar o SDK Comum e de Chamada dos Serviços de Comunicação do Azure para JavaScript:

npm install @azure/communication-common --save
npm install @azure/communication-calling --save

Inicializar objetos necessários

Uma instância CallClient é necessária para a maioria das operações de chamada. Ao criar uma instância de CallClient, você pode configurá-la com opções personalizadas, como uma instância de Logger.

Com a instância de CallClient, você pode criar uma instância de CallAgent chamando o createCallAgent. Esse método retorna de modo assíncrono um objeto de instância CallAgent.

O método createCallAgent usa CommunicationTokenCredential como um argumento. Ele aceita um token de acesso do usuário.

Você pode usar o método getDeviceManager na instância CallClient para acessar o deviceManager.

const { CallClient } = require('@azure/communication-calling');
const { AzureCommunicationTokenCredential} = require('@azure/communication-common');
const { AzureLogger, setLogLevel } = require("@azure/logger");

// Set the logger's log level
setLogLevel('verbose');

// Redirect log output to console, file, buffer, REST API, or whatever location you want
AzureLogger.log = (...args) => {
    console.log(...args); // Redirect log output to console
};

const userToken = '<USER_TOKEN>';
callClient = new CallClient(options);
const tokenCredential = new AzureCommunicationTokenCredential(userToken);
const callAgent = await callClient.createCallAgent(tokenCredential, {displayName: 'optional Azure Communication Services user name'});
const deviceManager = await callClient.getDeviceManager()

Como gerenciar melhor a conectividade do SDK com a infraestrutura da Microsoft

A instância Call Agent ajuda você a gerenciar chamadas (para ingressar ou iniciar chamadas). Para trabalhar, o SDK de chamada precisa se conectar à infraestrutura da Microsoft para receber notificações de chamadas de entrada e coordenar outros detalhes da chamada. O seu Call Agent tem dois estados possíveis:

Conectado: um valor connectionStatue Call Agent de Connected significa que o SDK do cliente está conectado e capaz de receber notificações da infraestrutura da Microsoft.

Desconectado: um valor connectionStatue Call Agent de Disconnected declara que há um problema que está impedindo o SDK de se conectar corretamente. Call Agent deve ser recriado.

  • invalidToken: se um token tiver expirado ou for inválido, a instância Call Agent se desconecta com este erro.
  • connectionIssue: se houver um problema com o cliente se conectando à infraestrutura da Microsoft, depois de muitas tentativas Call Agent expõe o erro connectionIssue.

Você pode verificar se o local Call Agent está conectado à infraestrutura da Microsoft inspecionando o valor atual da propriedade connectionState. Durante uma chamada ativa, você pode ouvir o evento connectionStateChanged para determinar se Call Agent muda do estado Conectado para Desconectado.

const connectionState = callAgentInstance.connectionState;
console.log(connectionState); // it may return either of 'Connected' | 'Disconnected'

const connectionStateCallback = (args) => {
    console.log(args); // it will return an object with oldState and newState, each of having a value of either of 'Connected' | 'Disconnected'
    // it will also return reason, either of 'invalidToken' | 'connectionIssue'
}
callAgentInstance.on('connectionStateChanged', connectionStateCallback);

A Audioconferência de Reunião do Microsoft Teams é um recurso estendido da API principal Call. Primeiro, você precisa importar recursos de chamada do SDK de Chamada:

import { Features} from "@azure/communication-calling";

Em seguida, você pode obter o objeto de API de recurso da instância de chamada:

const audioConferencingFeature = call.feature(Features.TeamsMeetingAudioConferencing);

Obter os detalhes de audioconferência de uma reunião

Use a API a seguir para obter os detalhes de audioconferência de uma reunião

try {
     const details: SDK.TeamsMeetingAudioConferencingDetails = audioConferencingFeature.getTeamsMeetingAudioConferencingDetails();
     console.log(`Microsoft Teams Meeting Conference Id: ${details.phoneConferenceId}`);
     details.phoneNumbers.forEach(dialInPhoneNumber => {
        if (dialInPhoneNumber.tollPhoneNumber) { 
            console.log(`Dial-In Toll PhoneNumber: ${dialInPhoneNumber.tollPhoneNumber.phoneNumber}`);
        }
        else if (dialInPhoneNumber.tollFreePhoneNumber) { 
            console.log(`Dial-In TollFree PhoneNumber: ${dialInPhoneNumber.tollFreePhoneNumber.phoneNumber}`);
        } 
        else if (dialInPhoneNumber.countryName) {
            console.log(`Dial-In Country Name: ${dialInPhoneNumber.countryName}`);
        }
        else if (dialInPhoneNumber.cityName) {
            console.log(`Dial-In City Name: ${dialInPhoneNumber.cityName}`);
        }
    })
} catch (e) {
    console.error(e);
}

Solução de problemas

Código Subcódigo Categoria de resultado Motivo Resolução
400 45950 ExpectedError O recurso Audioconferência está disponível apenas em reuniões do Teams Ingressar na reunião do Teams com Audioconferência configurada
405 45951 ExpectedError Audioconferência desabilitada do serviço ACS Criar tíquete de Suporte do Azure para solicitar assistência
403 45952 ExpectedError Os detalhes da audioconferência não estão disponíveis antes de ingressar na reunião Verifique se o objeto de chamada está no estado connected antes de invocar a API para recuperar os detalhes da audioconferência
403 45953 ExpectedError Os detalhes da audioconferência não estão disponíveis no lobby Verifique se o objeto de chamada está no estado connected antes de invocar a API para recuperar os detalhes da audioconferência

Próximas etapas