Compartilhar via


Requisitos e considerações para bots de mídia hospedados em aplicativos

Um bot de mídia hospedado por aplicativo requer a Microsoft.Graph.Communications.Calls.Media biblioteca .NET para acessar os fluxos de mídia de áudio e vídeo. O bot deve ser implantado em uma máquina local do Windows Server ou em um sistema operacional (SO) convidado do Windows Server no Azure.

Observação

  • A orientação para o desenvolvimento de bots de mensagens e Resposta Interativa de Voz (IVR) não se aplica completamente à criação de bots de mídia hospedados em aplicativos.
  • Como a plataforma de mídia em tempo real da Microsoft para bots está na versão prévia do desenvolvedor, as orientações deste documento estão sujeitas a alterações.

C# ou .NET e Windows Server para desenvolvimento

Um bot de multimédia alojado na aplicação tem os seguintes requisitos:

  • O bot deve ser desenvolvido em C# e no .NET Framework padrão e implantado no Microsoft Azure. O SDK de Comunicações do Graph suporta arquiteturas .NET 6 e .NET Core. Não pode utilizar as APIs C++ ou Node.js para aceder a suportes de dados em tempo real.

  • O bot pode ser hospedado em um dos seguintes ambientes de serviço do Azure:

    • Serviço de Nuvem.
    • Service Fabric com VMSS (Conjuntos de Dimensionamento de Máquinas Virtuais).
    • VM (Máquina Virtual) iaaS (infraestrutura como serviço).
    • Azure Kubernetes Service (AKS).
  • O bot não pode ser implantado como um aplicativo Web do Azure.

  • O bot deve estar sendo executado em uma versão recente da biblioteca .NET Microsoft.Graph.Communications.Calls.Media. O bot deve usar a versão mais recente disponível do pacote NuGet ou uma versão que não tenha mais de três meses. As versões mais antigas da biblioteca são preteridas e não funcionam após alguns meses. Manter a biblioteca Microsoft.Graph.Communications.Calls.Media atualizada garante a melhor interoperabilidade entre o bot e o Microsoft Teams.

A próxima seção fornece detalhes sobre onde as chamadas de mídia em tempo real estão localizadas.

As chamadas de multimédia em tempo real permanecem onde são criadas

As chamadas de mídia em tempo real permanecem no computador em que foram criadas. Uma chamada de mídia em tempo real é fixada na instância de máquina virtual (VM) que aceitou ou iniciou a chamada. Os suportes de dados de uma chamada ou reunião do Teams fluem para essa instância de VM e os suportes de dados que o bot envia para o Teams também têm de ter origem nessa VM. Se houver chamadas de mídia em tempo real em andamento quando a VM for interrompida, essas chamadas serão encerradas abruptamente. Se o bot tiver conhecimento prévio do desligamento pendente da VM, ele poderá encerrar as chamadas.

A próxima seção fornece detalhes sobre acessibilidade de bots de mídia hospedados em aplicativos.

Bots de mídia hospedados em aplicativos acessíveis na Internet

Os bots de mídia hospedados em aplicativos devem estar diretamente acessíveis na Internet. Esses bots devem incluir os seguintes recursos:

  • Cada instância de VM que hospeda um bot de mídia hospedado por aplicativo no Azure deve ser acessível diretamente da Internet usando um endereço IP público no nível da instância (ILPIP).

  • O serviço que hospeda um bot de mídia hospedado por aplicativo também deve configurar cada instância de VM com uma porta voltada para o público, que mapeia para a instância específica.

  • O Bot Framework Emulator não suporta bots de multimédia alojados na aplicação.

A próxima seção fornece detalhes sobre as considerações de escalabilidade e desempenho de bots de mídia hospedados em aplicativos.

Considerações sobre escalabilidade e desempenho

Os bots de mídia hospedados no aplicativo exigem as seguintes considerações de escalabilidade e desempenho:

  • Os bots de multimédia alojados na aplicação requerem mais capacidade de computação e rede (largura de banda) do que bots de mensagens e podem incorrer em custos operacionais mais elevados. Um desenvolvedor de bot de mídia em tempo real deve medir cuidadosamente a escalabilidade do bot e garantir que o bot não aceite mais chamadas simultâneas do que pode gerenciar. Um bot habilitado para vídeo pode ser capaz de sustentar apenas uma ou duas sessões de mídia simultâneas por núcleo de CPU (se estiver usando os formatos de vídeo "raw" RGB24 ou NV12).
  • A Plataforma de Multimédia em Tempo Real não tira partido de nenhuma Unidade de Processamento gráfico (GPU) disponível na VM para desativar a codificação/descodificação de vídeo H.264. Em vez disso, a codificação e a decodificação de vídeo são feitas em software na CPU. Se uma GPU estiver disponível, o bot poderá aproveitá-la para sua própria renderização gráfica, por exemplo, se o bot estiver usando um mecanismo gráfico 3D.
  • A instância da VM que aloja o bot de multimédia em tempo real tem de ter, pelo menos, dois núcleos de CPU. Para o Azure, uma máquina virtual da série Dv2 é recomendada. Para outros tipos de VM do Azure, um sistema com quatro CPUs virtuais (vCPU) é o tamanho mínimo necessário. Informações detalhadas sobre os tipos de VM do Azure estão disponíveis na documentação do Azure.

Exemplo de código

Os exemplos de bots de mídia hospedados pelo aplicativo são os seguintes:

Nome de exemplo Descrição Graph
Amostra de mídia local Exemplo que ilustra diferentes cenários de multimédia local. View
Exemplo de mídia remota Exemplo que ilustra diferentes cenários de multimédia remoto. View

Próxima etapa

Confira também