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
- Uma conta do Azure com uma assinatura ativa. Crie uma conta gratuitamente.
- Um recurso dos Serviços de Comunicação implantado. Crie um recurso dos Serviços de Comunicação.
- Um token de acesso de usuário para habilitar o cliente de chamada. Para obter mais informações. Criar e gerenciar tokens de acesso.
- Opcional: conclua o guia de início rápido para Adicionar chamada de voz ao seu aplicativo.
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ânciaCall Agent
se desconecta com este erro.connectionIssue
: se houver um problema com o cliente se conectando à infraestrutura da Microsoft, depois de muitas tentativasCall Agent
expõe o erroconnectionIssue
.
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 |