Requisitos e considerações para bots de mídia hospedados pelo aplicativoRequirements and considerations for application-hosted media bots

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.An application-hosted media bot requires the Microsoft.Graph.Communications.Calls.Media .NET library to access the audio and video media streams. O bot deve ser implantado em uma máquina do Windows Server ou sistema operacional convidado do Windows Server no Azure.The bot must be deployed on a Windows Server machine or Windows Server guest Operating System (OS) in Azure.

Observação

  • As diretrizes para o desenvolvimento de mensagens e ivr (resposta interativa de voz) não se aplicam completamente à criação de bots de mídia hospedados pelo aplicativo.The guidance for developing messaging and Interactive Voice Response (IVR) bots does not completely apply to building application-hosted media bots.
  • Como a Plataforma de Mídia em Tempo Real da Microsoft para bots está na visualização do desenvolvedor, as diretrizes neste documento estão sujeitas a alterações.As the Microsoft Real-time Media Platform for bots is in developer preview, the guidance in this document is subject to change.

C# ou .NET e Windows Server para desenvolvimentoC# or .NET and Windows Server for development

Um bot de mídia hospedado por aplicativo requer o seguinte:An application-hosted media bot requires the following:

  • O bot deve ser desenvolvido no C# e no padrão .NET Framework e implantado no Microsoft Azure.The bot must be developed in C# and the standard .NET Framework and deployed in Microsoft Azure. Não é possível usar APIs C++ ou Node.js para acessar mídia em tempo real e o .NET Core não tem suporte para um bot de mídia hospedado pelo aplicativo.You cannot use C++ or Node.js APIs to access real-time media and .NET Core is not supported for an application-hosted media bot.

  • O bot pode ser hospedado em um dos seguintes ambientes de serviço do Azure:The bot can be hosted within one of the following Azure service environments:

    • Serviço de Nuvem.Cloud Service.
    • Service Fabric with Virtual Machine Scale Sets (VMSS).Service Fabric with Virtual Machine Scale Sets (VMSS).
    • Infraestrutura como uma máquina virtual (IaaS) (VM).Infrastructure as a Service (IaaS) Virtual Machine (VM).
  • O bot não pode ser implantado como um aplicativo Web do Azure.The bot cannot be deployed as an Azure web app.

  • O bot deve estar em execução em uma versão recente da Microsoft.Graph.Communications.Calls.Media biblioteca .NET.The bot must be running on a recent version of the Microsoft.Graph.Communications.Calls.Media .NET library. O bot deve usar a versão mais recente disponível do pacote NuGetou uma versão que não tem mais de três meses.The bot must use either the newest available version of the NuGet package, or a version that is not more than three months old. As versões mais antigas da biblioteca são preterida e não funcionam após alguns meses.Older versions of the library are deprecated and do not work after a few months. Manter a biblioteca atualizada garante a melhor Microsoft.Graph.Communications.Calls.Media interoperabilidade entre o bot e o Microsoft Teams.Keeping the Microsoft.Graph.Communications.Calls.Media library up-to-date ensures the best interoperability between the bot and Microsoft Teams.

A próxima seção fornece detalhes sobre onde as chamadas de mídia em tempo real estão localizadas.The next section provides details on where real-time media calls are located.

As chamadas de mídia em tempo real permanecem onde são criadasReal-time media calls stay where they are created

As chamadas de mídia em tempo real permanecem no computador onde foram criadas.Real-time media calls stay on the computer where they were created. Uma chamada de mídia em tempo real é fixada à instância da máquina virtual (VM) que aceitou ou iniciou a chamada.A real-time media call is pinned to the virtual machine (VM) instance that accepted or started the call. A mídia de uma chamada ou reunião do Microsoft Teams flui para essa instância da VM, e a mídia que o bot envia de volta para o Microsoft Teams também deve se originar dessa VM.Media from a Microsoft Teams call or meeting flows to that VM instance, and media the bot sends back to Microsoft Teams must also originate from that VM. Se houver chamadas de mídia em tempo real em andamento quando a VM for interrompida, essas chamadas serão interrompidas abruptamente.If there are any real-time media calls in progress when the VM is stopped, those calls are abruptly terminated. Se o bot tiver conhecimento prévio do desligamento da VM pendente, ele poderá encerrar as chamadas.If the bot has prior knowledge of the pending VM shutdown, it can end the calls.

A próxima seção fornece detalhes sobre acessibilidade de bots de mídia hospedados pelo aplicativo.The next section provides details on accessibility of application-hosted media bots.

Bots de mídia hospedados por aplicativos acessíveis na InternetApplication-hosted media bots accessible on the internet

Os bots de mídia hospedados por aplicativos devem estar diretamente acessíveis na Internet.Application-hosted media bots must be directly accessible on the internet. Esses bots devem incluir os seguintes recursos:These bots must include the following features:

  • Cada instância de VM que hospeda um bot de mídia hospedado por aplicativo no Azure deve estar diretamente acessível da Internet usando um endereço IP público de nível de instância (ILPIP).Each VM instance hosting an application-hosted media bot in Azure must be directly accessible from the internet using an instance-level public IP address (ILPIP).
  • O serviço que hospeda um bot de mídia hospedado por aplicativo também deve configurar cada instância da VM com uma porta pública que mapeia para a instância específica.The service hosting an application-hosted media bot must also configure each VM instance with a public-facing port which maps to the specific instance.
  • Os bots de mídia hospedados pelo aplicativo não são suportados pelo Emulador da Estrutura de Bot.Application-hosted media bots are not supported by the Bot Framework Emulator.

A próxima seção fornece detalhes sobre escalabilidade e considerações de desempenho dos bots de mídia hospedados pelo aplicativo.The next section provides details on scalability and performance considerations of application-hosted media bots.

Considerações sobre escalabilidade e desempenhoScalability and performance considerations

Os bots de mídia hospedados por aplicativo exigem as seguintes considerações de escalabilidade e desempenho:Application-hosted media bots require the following scalability and performance considerations:

Exemplo de códigoCode sample

Exemplos de bots de mídia hospedados pelo aplicativo são os seguinte:Application-hosted media bots samples are as follows:

Exemplo de nomeSample name DescriçãoDescription GraphGraph
Exemplo de mídia localLocal media sample Exemplos que ilustram diferentes cenários de mídia local.Samples that illustrates different local media scenarios. ViewView
Exemplo de mídia remotaRemote media sample Exemplos que ilustram diferentes cenários de mídia remota.Samples that illustrates different remote media scenarios. ViewView

Confira tambémSee also

  • Documentação do SDK de Chamada do GraphGraph Calling SDK Documentation
  • Os bots exigem mais capacidade de computação e largura de banda de rede do que bots de mensagens e incorrem em custos operacionais significativamente maiores.The bots require more compute and network bandwidth capacity than messaging bots and incur significantly higher operational costs. 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.A real-time media bot developer must carefully measure the bot's scalability, and ensure the bot does not accept more simultaneous calls than it can manage. Um bot habilitado para vídeo pode sustentar apenas uma ou duas sessões de mídia simultâneas por núcleo de CPU se usar os formatos de vídeo RGB24 ou NV12 brutos.A video-enabled bot can sustain only one or two concurrent media sessions per CPU core if using the raw RGB24 or NV12 video formats.
  • No momento, a Plataforma de Mídia em Tempo Real não tira proveito de nenhuma GPU (Unidades de Processamento de Gráficos) disponíveis na VM para codificação de vídeo H.264 descarramento ou decodificação.The Real-time Media Platform does not currently take advantage of any Graphics Processing Units (GPU) available on the VM to off-load H.264 video encoding or decoding. Em vez disso, a codificação de vídeo e a decodificar são feitas em software na CPU.Instead, video encode and decode are done in software on the CPU. Se uma GPU estiver disponível, o bot tirará proveito dela para sua própria renderização gráfica, por exemplo, se o bot estiver usando um mecanismo gráfico 3D.If a GPU is available, the bot takes advantage of it for its own graphics rendering, for example, if the bot is using a 3D graphics engine.
  • A instância da VM que hospeda o bot de mídia em tempo real deve ter pelo menos 2 núcleos de CPU.The VM instance hosting the real-time media bot must have at least 2 CPU cores. Para o Azure, uma máquina virtual da série Dv2 é recomendada.For Azure, a Dv2-series virtual machine is recommended. Para outros tipos de VM do Azure, um sistema com 4 CPUs virtuais (vCPU) é o tamanho mínimo necessário.For other Azure VM types, a system with 4 virtual CPUs (vCPU) is the minimum size required. Para obter mais informações sobre tipos de VM do Azure, consulte Documentação do Azure.For more information about Azure VM types, see Azure documentation.

A próxima seção fornece exemplos que ilustram diferentes cenários de mídia local.The next section provides samples that illustrate different local media scenarios.

Exemplos e recursos adicionaisSamples and additional resources

Próxima etapaNext step