Требования и рекомендации для Боты мультимедиа, размещаемых в приложенииRequirements and considerations for application-hosted media bots

Не все рекомендации по разработке обмена сообщениями и интерактивным голосовым ответом (IVR) боты применяются одинаково к созданию мультимедийных Боты, размещаемых в приложении.Not all guidance for developing messaging and Interactive Voice Response (IVR) bots applies equally to building application-hosted media bots. В этой статье описываются некоторые важные требования и рекомендации по разработке и запуску приложения Media Bot.This article describes some of the important requirements and considerations for developing and running an application-hosted media bot.

Примечание

Так как платформа мультимедиа Microsoft реального времени для Боты находится в предварительной версии для разработчиков, рекомендации, приведенные в этой статье, могут быть изменены.Because the Microsoft Real-time Media Platform for Bots is in developer preview, the guidance in this article is subject to change.

Для разработки почтовых приложений, размещаемых в приложении, требуется C#/.нет и Windows ServerApplication-hosted media bot development requires C#/.NET and Windows Server

  • Для почтовых роботов, размещаемых в приложении Microsoft.Graph.Communications.Calls.Media , требуется библиотека .NET (доступная здесь для доступа к потокам аудио-и видеоданных, а программа-Bot должна быть развернута на компьютере с Windows Server (или в гостевой ОС Windows Server в Azure).An application-hosted media bot requires the Microsoft.Graph.Communications.Calls.Media .NET library (available here to access the audio and video media streams, and the bot must be deployed on a Windows Server machine (or Windows Server guest OS in Azure). Таким образом, для начала необходимо разработать язык C#, а также стандартную платформу .NET Framework и развернуть ее в Microsoft Azure.Therefore, the bot must be developed in C# and the standard .NET Framework and deployed in Microsoft Azure. Вы не можете использовать C++ или Node.js API для доступа к мультимедиа в реальном времени, а среда .NET Core не поддерживается для приложения-робота с размещением в приложении.You can't use C++ or Node.js APIs to access real-time media and .NET Core is not supported for an application-hosted media bot.

  • Размещаемая в приложении Bot робота может быть размещена в одной из следующих сред службы Azure:An application-hosted media bot can be hosted within one of the following Azure service environments:

    • Облачная служба.Cloud Service.
    • Fabric Service Sets (ВМСС).Service Fabric with Virtual Machine Scale Sets (VMSS).
    • Инфраструктура как виртуальная машина (ВМ).Infrastructure as a Service (IaaS) Virtual Machine (VM).
  • Размещаемый в приложении робот не может быть развернут в качестве веб-приложения Azure.An application-hosted media bot can't be deployed as an Azure Web App.

  • Размещенный на размещенном приложении робот должен работать на последней версии Microsoft.Graph.Communications.Calls.Media библиотеки .NET.An application-hosted media bot must be running on a recent version of the Microsoft.Graph.Communications.Calls.Media .NET library. В интерфейсе робота должен использоваться либо последняя доступная версия пакета NuGet, либо версия, не превышающая три месяца.The bot should use either the newest available version of the NuGet package, or a version that is not more than three months old. Более ранние версии библиотеки станут устаревшими и могут не работать по истечении нескольких месяцев.Older versions of the library will be deprecated and may not work after a few months. Поддержание Microsoft.Graph.Communications.Calls.Media актуальности библиотеки обеспечит оптимальное взаимодействие между Bot и Microsoft Teams.Keeping the Microsoft.Graph.Communications.Calls.Media library up-to-date will ensure the best interoperability between the bot and Microsoft Teams.

Звонки мультимедиа реального времени остаются на том компьютере, на котором они были созданы.Real-time media calls stay on the machine where they were created

  • Вызов мультимедиа в режиме реального времени закреплен на экземпляре виртуальной машины, который принял или инициировал вызов.A real-time media call is pinned to the virtual machine (VM) instance that accepted or started the call. Носители, поступающие из вызовов или собраний Microsoft Teams, будут передаваться на этот экземпляр виртуальной машины, а носители, отправляемые в Microsoft Teams, также должны исходить из этой виртуальной машины.Media from a Microsoft Teams call or meeting will flow to that VM instance, and media the bot sends back to Microsoft Teams must also originate from that VM.
  • Если при остановке виртуальной машины выполняется любой вызов мультимедиа в реальном времени, эти вызовы будут остановлены.If there are any real-time media calls in progress when the VM is stopped, those calls will be abruptly terminated. Если в интерфейсе Bot имеются сведения о завершении выполнения ожидающей виртуальной машины, он может попробовать "корректно" завершить вызовы.If the bot has prior knowledge of the pending VM shutdown, it can try to "gracefully" end the calls.

Боты мультимедиа, размещаемые в приложении, должны быть доступны в Интернете напрямуюApplication-hosted media bots must be directly accessible on the internet

Рекомендации по масштабируемости и производительностиScalability and performance considerations

  • Для среды Боты, размещаемой в приложении, требуется больше вычислительной мощности и сети (пропускной способности), чем для Боты системы обмена сообщениями и может значительно повысить эксплуатационные расходыApplication-hosted media bots require more compute and network (bandwidth) capacity than messaging bots and may incur significantly higher operational costs. Разработчик Media Bot в режиме реального времени должен тщательно измерять масштабируемость Bot и гарантировать, что она не принимает более одновременных вызовов, чем она может управлять.A real-time media bot developer must carefully measure the bot's scalability, and ensure the bot doesn't accept more simultaneous calls than it can manage. С помощью видеоролика, поддерживающего видео, может поддерживаться только один или два одновременных сеанса мультимедиа на ядро ЦП (при использовании "RAW" RGB24 или NV12 Video Format).A video-enabled bot may be able to sustain only one or two concurrent media sessions per CPU core (if using the "raw" RGB24 or NV12 video formats).
  • В настоящее время на платформе мультимедиа в режиме реального времени не используются все графические процессоры, доступные в виртуальной машине, для отключения кодирования и декодирования изображения H. 264.The Real-time Media Platform doesn't currently take advantage of any Graphics Processing Units (GPU) available on the VM to off-load H.264 video encoding/decoding. Вместо этого кодирование и декодирование видео выполняется программно на ЦП.Instead, video encode and decode are done in software on the CPU. Если доступен графический процессор, Bot может использовать его для собственной отрисовки графики (например, если для ленты используется модуль 3D Graphics).If a GPU is available, the bot may take advantage of it for its own graphics rendering (e.g. if the bot is using a 3D graphics engine).
  • Экземпляр виртуальной машины, на котором размещен канал мультимедиа Bot в режиме реального времени, должен иметь по крайней мере 2 ядра процессора.The VM instance hosting the real-time media bot must have at least 2 CPU cores. Для Azure рекомендуется использовать виртуальную машину Dv2-Series.For Azure, a Dv2-series virtual machine is recommended. Для других типов ВМ Azure система с 4 виртуальными процессорами (Вкпу) является минимальным требуемым размером.For other Azure VM types, a system with 4 virtual CPUs (vCPU) is the minimum size required. Подробные сведения о типах виртуальных машин Azure доступны в документации по Azure.Detailed information about Azure VM types is available in the Azure documentation.

Примеры и дополнительные ресурсыSamples and Additional Resources