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:
- Existe uma nova versão do manifesto da aplicação (anteriormente denominada manifesto de aplicação do Teams) com duas definições
supportsCalling
adicionais esupportsVideo
. Estas definições estão incluídas no manifesto da aplicação. - 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 definições de manifesto de aplicação
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 comotrue
, o Teams permitirá que seu bot participe de chamadas e reuniões online.bots[0].supportsVideo
. Se estiver presente e definido comotrue
, 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:
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.Adicione o canal do Teams.
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.
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 suportam permissões de consentimento específico de recursos (RSC) e permissões de aplicação.
Permissões RSC para chamadas
O RSC é uma arquitetura de autorização criada pelo Teams e pela plataforma de identidades da Microsoft que permite conceder acesso limitado a uma aplicação. Através do RSC, um utilizador autorizado pode conceder a uma aplicação acesso aos dados de uma instância específica de um tipo de recurso.
Se uma conversa tiver uma reunião ou uma chamada associada, as permissões RSC relevantes também se aplicam a esses recursos.
A tabela seguinte fornece permissões de aplicação 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 aplicação para chamadas são utilizadas por aplicações que são executadas sem um utilizador com sessão iniciada 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 agrupe a partir da pré-visualização da aplicação. | Permite que a aplicação faça chamadas de saída para um único utilizador, vários utilizadores, transfira chamadas e adicione participantes a reuniões na sua organização, sem um utilizador com sessão iniciada. | 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
Tem de configurar as permissões de aplicação para o bot com antecedência através do portal do Microsoft Azure se preferir utilizar o ponto final do Azure Active Directory (Azure AD) v1.
Obter consentimento do administrador de locatários
Para aplicações que utilizam o ponto final do Azure AD v1, um administrador inquilino pode consentir as permissões da aplicação através do portal do Microsoft Azure quando a sua aplicação estiver instalada na organização. Em alternativa, pode fornecer uma experiência de inscrição na sua aplicação através da qual os administradores podem dar consentimento às permissões que configurou. Assim que o consentimento do administrador for registado pelo ID do Microsoft Entra, a sua aplicação pode pedir tokens sem ter de pedir novamente consentimento.
Pode contar com um administrador para conceder as permissões de que a sua aplicação precisa no portal do Microsoft Azure. Uma opção melhor é proporcionar uma experiência de inscrição para os administradores através do ponto final do Azure AD v2 /adminconsent
. Para obter mais informações, veja instruções sobre a construção de um URL de consentimento do Administrador.
Observação
Para construir o URL de consentimento do administrador do inquilino, é necessário um URI de redirecionamento configurado ou um URL de resposta no portal de registo de aplicações . 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 | A aplicação 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 chamadas e reuniões do Teams.