Registrar chamadas e reuniões do bot do Microsoft Teams

Um bot que participa de chamadas de áudio ou vídeo e de reuniões online é um bot regular do Microsoft Teams com os seguintes recursos extras usados ​​para registrar o bot:

  • Há uma nova versão do manifesto do aplicativo (anteriormente chamada de manifesto de aplicativo do Teams) com duas configurações supportsCalling adicionais e supportsVideo. Essas configurações estão incluídas no manifesto do aplicativo.
  • As permissões do Microsoft Graph devem ser configuradas para a ID do Aplicativo Microsoft do bot.
  • As permissões de chamadas do Graph e APIs de reuniões online exigem o consentimento do administrador do locatário.

Novas configurações de manifesto do aplicativo

Os bots de chamadas e reuniões online têm as duas configurações adicionais a seguir no manifest.json que habilitam áudio ou vídeo para o bot no Teams.

  • bots[0].supportsCalling. Se estiver presente e definido como true, o Teams permitirá que seu bot participe de chamadas e reuniões online.
  • bots[0].supportsVideo. Se estiver presente e definido como true, o Teams saberá que seu bot dá suporte a vídeo.

Se quiser que o IDE valide corretamente o esquema manifest.json para suas chamadas e o bot de reuniões para esses valores, você pode alterar o atributo $schema da seguinte maneira:

"$schema": "https://developer.microsoft.com/json-schemas/teams/v1.11/MicrosoftTeams.schema.json",

A próxima seção permite que você crie um novo bot ou adicione recursos de chamada ao bot existente.

Criar um bot ou adicionar recursos de chamada

Para obter informações sobre como criar bots, confira criar um bot para o Teams.

Para criar um novo bot para o Teams:

  1. Use este link para criar um novo bot, https://dev.botframework.com/bots/new. Como alternativa, se você selecionar o botão Criar um bot no portal Bot Framework, crie seu bot no Microsoft Azure, para o qual você deve ter uma conta do Azure.

  2. Adicione o canal do Teams.

  3. Selecione a guia Chamada na página do canal do Teams. Selecione Habilitar chamada e, em seguida, atualize Webhook (para chamada) com a URL HTTPS em que você recebe notificações de entrada, por exemplo https://contoso.com/teamsapp/api/calling. Para obter mais informações, confira configuração de canais.

    Configurar informações do canal do Teams

A próxima seção fornece uma lista de permissões de aplicativo com suporte para chamadas e reuniões online.

Adicionar permissões do Graph

O Graph fornece permissões granulares para controlar o acesso que os aplicativos têm aos recursos. Como desenvolvedor, você decide quais permissões seu aplicativo deverá solicitar para o Microsoft Graph. As APIs de chamada do Graph dão suporte a permissões de RSC (consentimento específico do recurso) e permissões de aplicativo.

Permissões RSC para chamadas

O RSC é uma estrutura de autorização criada pelo Teams e plataforma de identidade da Microsoft que permite a concessão de acesso com escopo a um aplicativo. Por meio do RSC, um usuário autorizado pode dar a um aplicativo acesso aos dados de uma instância específica de um tipo de recurso.

Se um chat tiver uma reunião ou uma chamada associada a ela, as permissões RSC relevantes também se aplicam a esses recursos.

A tabela a seguir fornece permissões de aplicativo RSC para chamadas:

Nome da permissão Ação
Calls.AccessMedia.Chat Acesse fluxos de mídia em chamadas associadas a esse chat ou reunião.
Calls.JoinGroupCalls.Chat Participe de chamadas associadas a esse chat ou reunião.

Permissões de aplicativo para chamadas

As permissões de aplicativo para chamadas são usadas por aplicativos executados sem um usuário conectado presente. Um administrador de locatários deve dar consentimento a permissões de aplicativo.

A tabela a seguir fornece uma lista de permissões de aplicativo para chamadas:

Permissão Sequência de exibição Descrição É necessário o consentimento do administrador
Calls.Initiate.All Inicie chamadas individuais de saída a partir da visualização do aplicativo. Permite que o aplicativo faça chamadas de saída para um único usuário e transfira chamadas para usuários no diretório da sua organização, sem um usuário conectado. Sim
Calls.InitiateGroupCall.All Inicie as chamadas de saída 1:1 e grupo da versão prévia do aplicativo. Permite que o aplicativo faça chamadas de saída para um único usuário, vários usuários, transfira chamadas e adicione participantes a reuniões em sua organização, sem um usuário conectado. Sim
Calls.JoinGroupCall.All Ingresse em chamadas em grupo e reuniões como uma visualização de aplicativo. Permite que o aplicativo ingresse em reuniões agendadas e chamadas de grupo em sua organização, sem um usuário conectado. O aplicativo será associado aos privilégios de um usuário do diretório para reuniões em seu locatário. Sim
Calls.JoinGroupCallasGuest.All Ingresse em chamadas em grupo e reuniões como uma visualização de convidado. Permite que o aplicativo ingresse anonimamente no grupo chamadas e em reuniões agendadas em sua organização, sem um usuário conectado. O aplicativo ingressará como convidado para reuniões em seu locatário. Sim
Calls.AccessMedia.All Acessar fluxos de mídia em uma chamada como uma visualização de aplicativo. Permite que o aplicativo obtenha acesso direto aos fluxos de mídia em uma chamada sem um usuário conectado. Sim

Importante

Não é possível usar a API de Acesso à Mídia para gravar ou persistir conteúdo de mídia de chamadas ou reuniões que seu aplicativo acessa ou deriva dados desse registro ou gravação de conteúdo de mídia. Primeiro, você deve chamar a updateRecordingStatus API para indicar que a gravação começou e receber uma resposta bem-sucedida dessa API. Se o aplicativo começar a gravar qualquer reunião ou chamada, ele deverá encerrar a gravação antes de chamar a API updateRecordingStatus para indicar que a gravação foi encerrada.

Permissões de aplicativo para reuniões online

A tabela a seguir fornece uma lista de permissões de aplicativo para reuniões online:

Permissão Sequência de exibição Descrição É necessário o consentimento do administrador
OnlineMeetings.Read.All Ler detalhes da reunião online na visualização do aplicativo Permite que o aplicativo leia os detalhes da reunião online em sua organização, sem um usuário conectado. Sim
OnlineMeetings.ReadWrite.All Ler e criar reuniões online na visualização do aplicativo em nome de um usuário Permite que o aplicativo crie reuniões online em sua organização em nome de um usuário, sem um usuário conectado. Sim

Atribuir permissões

Você deve configurar as permissões de aplicativo para o bot com antecedência usando o microsoft portal do Azure se preferir usar o ponto de extremidade do Azure Active Directory (Azure AD) v1.

Para aplicativos que usam o ponto de extremidade Azure AD v1, um administrador de locatário pode consentir com as permissões do aplicativo usando o Microsoft portal do Azure quando seu aplicativo está instalado em sua organização. Como alternativa, você pode fornecer uma experiência de inscrição em seu aplicativo por meio da qual os administradores podem consentir com as permissões configuradas. Depois que o consentimento do administrador é registrado pelo Microsoft Entra ID, seu aplicativo pode solicitar tokens sem precisar solicitar o consentimento novamente.

Você pode contar com um administrador para conceder as permissões que seu aplicativo precisa no microsoft portal do Azure. Uma opção melhor é fornecer uma experiência de inscrição para administradores usando o ponto de extremidade Azure AD v2/adminconsent. Para obter mais informações, consulte instruções sobre como construir uma URL de consentimento Administração.

Observação

Para construir a URL de consentimento do locatário Administração, é necessário um URI de redirecionamento configurado ou uma URL de resposta no portal de registro do aplicativo. Para adicionar URLs de resposta para seu bot, acesse o registro do bot, escolha Opções Avançadas>Editar Manifesto do Aplicativo. Adicione a URL de redirecionamento à coleção replyUrls.

Importante

Sempre que fizer uma alteração nas permissões configuradas, repita também o processo de consentimento do administrador. As alterações feitas no portal de registro do aplicativo não serão refletidas até que o consentimento seja reaplicado pelo administrador do locatário.

Exemplo de código

Nome de exemplo Descrição .NET
Bot de chamada e reunião O aplicativo de amostra demonstra como o Bot pode criar chamadas, ingressar na reunião e transferir chamadas. View
Eventos de reunião em tempo real O aplicativo de exemplo demonstra como o Bot pode receber eventos de reunião em tempo real. View

Guias passo a passo

Siga o guia passo a passo para configurar o bot de chamada e reunião do Teams.

Próxima etapa

Confira também