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 tem de ser desenvolvido com C# e o .NET Framework padrão e implementado no Microsoft Azure. Não pode utilizar as APIs C++ ou Node.js para aceder a suportes de dados em tempo real. No entanto, o .NET Core é suportado para um bot de multimédia alojado na aplicação e o SDK fornece suporte para o .NET 6.0.
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 bibliotecaMicrosoft.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).
- Para obter e configurar um ILPIP para um Serviço de Nuvem do Azure, consulte visão geral clássica de IP público em nível de instância.
- Para configurar um ILPIP para um Conjunto de Dimensionamento de VM, consulte IPv4 público por computador.
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.
- Para um Serviço de Nuvem do Azure, isso requer um ponto de extremidade de entrada de instância. Para obter mais informações, consulte habilitar comunicação para instâncias de função no Azure.
- Para um conjunto de dimensionamento de VM, uma regra NAT no balanceador de carga deve ser configurada. Para obter mais informações, consulte redes virtuais e máquinas virtuais no Azure.
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 |