Ingressar em uma reunião do Teams
Os SDKs dos Serviços de Comunicação do Azure podem permitir que os usuários ingressem em reuniões do Microsoft Teams regulares. Veja como.
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 saber mais, confira Criar e gerenciar token de acesso.
- Opcional: conclua o guia de início rápido para adicionar uma chamada de voz ao seu aplicativo
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);
Métodos de ingresso na reunião
Para ingressar em uma reunião do Teams, use o método join
e passe o link da reunião ou as coordenadas de uma reunião.
Ingressar usando um link de reunião:
const locator = { meetingLink: '<MEETING_LINK>'}
const call = callAgent.join(locator);
Participe usando as coordenadas da reunião (atualmente está em versão prévia limitada):
const locator = {
threadId: <thread id>,
organizerId: <organizer id>,
tenantId: <tenant id>,
messageId: <message id>
}
const call = callAgent.join(locator);
Configurar o backup do sistema
Siga essas etapas para configurar seu sistema.
Criar o projeto do Visual Studio
Para um aplicativo da Plataforma Universal do Windows, no Visual Studio 2022, crie um projeto de Aplicativo em branco (Universal do Windows). Depois de inserir o nome do projeto, fique à vontade para escolher qualquer SDK do Windows posterior a 10.0.17763.0.
Para um aplicativo WinUI 3, crie um novo projeto com o modelo Aplicativo em Branco, Empacotado (WinUI 3 na Área de Trabalho) para configurar um aplicativo WinUI 3 de página única. O SDK do Aplicativo do Windows versão 1.3 ou posterior é necessário.
Instalar o pacote e as dependências usando o Gerenciador de Pacotes do NuGet
As bibliotecas e as APIs do SDK de Chamada estão disponíveis publicamente por meio de um pacote NuGet.
Para localizar, baixar e instalar o pacote NuGet do SDK de Chamada, faça o seguinte:
- Abra o Gerenciador de Pacotes do NuGet selecionando Ferramentas>Gerenciador de Pacotes do NuGet>Gerenciar de Pacotes do NuGet para Solução.
- Selecione Procurar e insira Azure.Communication.Calling.WindowsClient na caixa de pesquisa.
- Verifique se a caixa de seleção Incluir pré-lançamento está marcada.
- Selecione o pacote Azure.Communication.Calling.WindowsClient e Azure.Communication.Calling.WindowsClient 1.4.0-beta.1 ou uma versão mais recente.
- Marque a caixa de seleção que corresponde ao projeto dos Serviços de Comunicação do Azure no painel direito.
- Selecione Instalar.
Métodos de ingresso na reunião
Para ingressar em uma reunião do Teams, use o método CallAgent.join
e passe o contexto do aplicativo JoinMeetingLocator
e JoinCallOptions
.
ID e senha da reunião
O TeamsMeetingIdLocator
localiza uma reunião usando uma ID e senha de reunião. Isso pode ser encontrado nas informações de ingresso de uma reunião do Teams.
Uma ID de reunião do Teams terá 12 caracteres e consistirá em dígitos numéricos agrupados em três (ou seja 000 000 000 000
).
Uma senha consistirá em 6 caracteres do alfabeto (ou seja aBcDeF
). A senha diferencia maiúsculas de minúsculas.
String meetingId, passcode;
TeamsMeetingIdLocator locator = new TeamsMeetingIdLocator(meetingId, passcode);
Link da reunião
O TeamsMeetingLinkLocator
localiza uma reunião usando um link para uma reunião do Teams. Isso pode ser encontrado nas informações de ingresso de uma reunião do Teams.
String meetingLink;
TeamsMeetingLinkLocator locator = new TeamsMeetingLinkLocator(meetingLink);
Coordenadas de reunião
As reuniões TeamsMeetingCoordinatesLocator
localizam usando uma ID do organizador, uma ID de locatário, uma ID de thread e uma ID de mensagem. Essas informações podem ser encontradas usando o Microsoft Graph.
Guid organizerId, tenantId;
String threadId, messageId;
TeamsMeetingCoordinatesLocator locator = new TeamsMeetingCoordinatesLocator(threadId, organizerId, tenantId, messageId);
Ingressar em reunião usando localizadores
Depois de criar esses localizadores de reunião do Teams, é possível usar isso para ingressar em uma reunião do Teams usando CallAgent.join
, conforme mostrado abaixo.
JoinCallOptions options = new JoinCallOptions();
call = agent.join(
getApplicationContext(),
locator,
options);
Configurar o backup do sistema
Siga essas etapas para configurar seu sistema.
Criar o projeto do Visual Studio
Para um aplicativo da Plataforma Universal do Windows, no Visual Studio 2022, crie um projeto de Aplicativo em branco (Universal do Windows). Depois de inserir o nome do projeto, fique à vontade para escolher qualquer SDK do Windows posterior a 10.0.17763.0.
Para um aplicativo WinUI 3, crie um novo projeto com o modelo Aplicativo em Branco, Empacotado (WinUI 3 na Área de Trabalho) para configurar um aplicativo WinUI 3 de página única. O SDK do Aplicativo do Windows versão 1.3 ou posterior é necessário.
Instalar o pacote e as dependências usando o Gerenciador de Pacotes do NuGet
As bibliotecas e as APIs do SDK de Chamada estão disponíveis publicamente por meio de um pacote NuGet.
Para localizar, baixar e instalar o pacote NuGet do SDK de Chamada, faça o seguinte:
- Abra o Gerenciador de Pacotes do NuGet selecionando Ferramentas>Gerenciador de Pacotes do NuGet>Gerenciar de Pacotes do NuGet para Solução.
- Selecione Procurar e insira Azure.Communication.Calling.WindowsClient na caixa de pesquisa.
- Verifique se a caixa de seleção Incluir pré-lançamento está marcada.
- Selecione o pacote Azure.Communication.Calling.WindowsClient e Azure.Communication.Calling.WindowsClient 1.4.0-beta.1 ou uma versão mais recente.
- Marque a caixa de seleção que corresponde ao projeto dos Serviços de Comunicação do Azure no painel direito.
- Selecione Instalar.
Métodos de ingresso na reunião
Para ingressar em uma reunião do Teams, use o método CallAgent.join
e passe um JoinMeetingLocator
e um JoinCallOptions
.
ID e senha da reunião
O TeamsMeetingIdLocator
localiza uma reunião usando uma ID e senha de reunião. Isso pode ser encontrado nas informações de ingresso de uma reunião do Teams.
Uma ID de reunião do Teams terá 12 caracteres e consistirá em dígitos numéricos agrupados em três (ou seja 000 000 000 000
).
Uma senha consistirá em 6 caracteres do alfabeto (ou seja aBcDeF
). A senha diferencia maiúsculas de minúsculas.
String meetingId, passcode
let locator = TeamsMeetingIdLocator(meetingId: meetingId, passcode: passcode)
Link da reunião
O TeamsMeetingLinkLocator
localiza uma reunião usando um link para uma reunião do Teams. Isso pode ser encontrado nas informações de ingresso de uma reunião do Teams.
String meetingLink
let locator = TeamsMeetingLinkLocator(meetingLink: meetingLink)
Ingressar em reunião usando localizadores
Depois de criar esses localizadores de reunião do Teams, é possível usar isso para ingressar em uma reunião do Teams usando CallAgent.join
, conforme mostrado abaixo.
func joinTeamsMeeting() {
// Ask permissions
AVAudioSession.sharedInstance().requestRecordPermission { (granted) in
if granted {
let joinCallOptions = JoinCallOptions()
// Insert meeting locator code for specific join methods here
// for CallAgent callAgent
self.callAgent?.join(with: teamsMeetingLinkLocator, joinCallOptions: joinCallOptions)
}
}
}
Configurar o backup do sistema
Siga essas etapas para configurar seu sistema.
Criar o projeto do Visual Studio
Para um aplicativo da Plataforma Universal do Windows, no Visual Studio 2022, crie um projeto de Aplicativo em branco (Universal do Windows). Depois de inserir o nome do projeto, fique à vontade para escolher qualquer SDK do Windows posterior a 10.0.17763.0.
Para um aplicativo WinUI 3, crie um novo projeto com o modelo Aplicativo em Branco, Empacotado (WinUI 3 na Área de Trabalho) para configurar um aplicativo WinUI 3 de página única. O SDK do Aplicativo do Windows versão 1.3 ou posterior é necessário.
Instalar o pacote e as dependências usando o Gerenciador de Pacotes do NuGet
As bibliotecas e as APIs do SDK de Chamada estão disponíveis publicamente por meio de um pacote NuGet.
Para localizar, baixar e instalar o pacote NuGet do SDK de Chamada, faça o seguinte:
- Abra o Gerenciador de Pacotes do NuGet selecionando Ferramentas>Gerenciador de Pacotes do NuGet>Gerenciar de Pacotes do NuGet para Solução.
- Selecione Procurar e insira Azure.Communication.Calling.WindowsClient na caixa de pesquisa.
- Verifique se a caixa de seleção Incluir pré-lançamento está marcada.
- Selecione o pacote Azure.Communication.Calling.WindowsClient e Azure.Communication.Calling.WindowsClient 1.4.0-beta.1 ou uma versão mais recente.
- Marque a caixa de seleção que corresponde ao projeto dos Serviços de Comunicação do Azure no painel direito.
- Selecione Instalar.
Métodos de ingresso na reunião
Para ingressar em uma reunião do Teams, use o método CallAgent.JoinAsync
e passe um JoinMeetingLocator
e um JoinCallOptions
.
ID e senha da reunião
O TeamsMeetingIdLocator
localiza uma reunião usando uma ID e senha de reunião. Isso pode ser encontrado nas informações de ingresso de uma reunião do Teams.
Uma ID de reunião do Teams terá 12 caracteres e consistirá em dígitos numéricos agrupados em três (ou seja 000 000 000 000
).
Uma senha consistirá em 6 caracteres do alfabeto (ou seja aBcDeF
). A senha diferencia maiúsculas de minúsculas.
string meetingId, passcode;
TeamsMeetingIdLocator locator = new TeamsMeetingIdLocator(meetingId, passcode);
Link da reunião
O TeamsMeetingLinkLocator
localiza uma reunião usando um link para uma reunião do Teams. Isso pode ser encontrado nas informações de ingresso de uma reunião do Teams.
string meetingLink;
TeamsMeetingLinkLocator locator = new TeamsMeetingLinkLocator(meetingLink);
Coordenadas de reunião
As reuniões TeamsMeetingCoordinatesLocator
localizam usando uma ID do organizador, uma ID de locatário, uma ID de thread e uma ID de mensagem. Essas informações podem ser encontradas usando o Microsoft Graph.
Guid organizerId, tenantId;
string threadId, messageId;
TeamsMeetingCoordinatesLocator locator = new TeamsMeetingCoordinatesLocator(threadId, organizerId, tenantId, messageId);
Ingressar em reunião usando localizadores
Depois de criar esses localizadores de reunião do Teams, é possível usar isso para ingressar em uma reunião do Teams usando CallAgent.JoinAsync
, conforme mostrado abaixo.
var joinCallOptions = new JoinCallOptions() {
OutgoingAudioOptions = new OutgoingAudioOptions() { IsMuted = true },
OutgoingVideoOptions = new OutgoingVideoOptions() { Streams = new OutgoingVideoStream[] { cameraStream } }
};
var call = await callAgent.JoinAsync(locator, joinCallOptions);