Aparência de Linha Compartilhada do Teams

Este artigo descreve como implementar a Aparência de Linha Compartilhada do Microsoft Teams com os Serviços de Comunicação do Azure. A aparência de linha compartilhada permite que um usuário escolha um delegado para fazer ou lidar com chamadas em seu nome. Esse recurso será útil se um usuário tiver um assistente administrativo que lida regularmente com as chamadas do usuário.

No contexto de aparência de linha compartilhada, um gerente é um usuário do Teams que autoriza um delegado a fazer ou receber chamadas em seu nome. Um delegado é um usuário do Microsoft 365 que pode fazer ou receber chamadas em nome do delegado. Para obter mais informações, consulte a Aparência da linha de compartilhamento.

Pré-requisitos

Suporte

SDKs

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

Status de suporte web Interface do usuário da Web iOS Interface do usuário do iOS Android Interface do usuário do Android Windows
Tem suporte ✔️

Observação

Esse recurso de API está disponível com o SDK de Chamadas Web dos Serviços de Comunicação do Azure (1.35.1 ou superior).

Instalar o SDK

Use o comando npm install para instalar a chamada dos Serviços de Comunicação do Azure e SDKs comuns para JavaScript.

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

Inicializar objetos necessários

Crie uma instância CallClient para iniciar a pilha de chamadas. Você pode configurar o registro em log do SDK de chamada com a instância AzureLogger e o método setLogLevel. Você pode obter acesso a deviceManager para o sistema operacional com o método getDeviceManager.

Em seguida, use o método createTeamsCallAgent para criar de forma assíncrona uma instância TeamsCallAgent que gerenciará chamadas de entrada e saída para um usuário do Teams. O método usa CommunicationTokenCredential como um argumento que representa o token de acesso para o usuário do Teams.

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 wherever desired. To console, file, buffer, REST API, etc...
AzureLogger.log = (...args) => {
    console.log(...args); // Redirect log output to console
};

const userToken = '<USER_TOKEN>';
callClient = new CallClient();
const tokenCredential = new AzureCommunicationTokenCredential(userToken);
const teamsCallAgent = await callClient.createTeamsCallAgent(tokenCredential);
const deviceManager = await callClient.getDeviceManager();

Fazer uma chamada em nome de um usuário do Microsoft Teams

Antes de colocar uma chamada em nome de um delegado, verifique se o delegado que está fazendo a chamada tem make calls permissão por meio de configurações de chamada de delegador no Microsoft Teams.

Para fazer uma chamada em nome de um usuário do Microsoft Teams, especifique OnBehalfOfOptions durante a chamada inicial. Substitua xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx pelo ID de usuário do delegador e yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy pelo ID de usuário do destinatário da chamada.

const onBehalfOfOptions = { userId: { microsoftTeamsUserId: "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" } }
const teamsCallOptions = { onBehalfOfOptions: onBehalfOfOptions };
const call = teamsCallAgent.startCall([{ microsoftTeamsUserId: "yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy" }], teamsCallOptions);

Para fazer uma chamada a um usuário PSTN (rede telefônica púbica comutada) em nome de um participante do Microsoft Teams, use PhoneNumberIdentifier para o participante da chamada.

const call = teamsCallAgent.startCall([{ phoneNumber: "+1xxxxxxxxxx" }], teamsCallOptions);

Receber uma chamada em nome de um usuário do Microsoft Teams

Para receber chamadas em nome de um delegador:

Próximas etapas