Требования и рекомендации для медиа-ботов, размещаемых в приложениях
Медиа-боту, размещенному в приложении, требуется Microsoft.Graph.Communications.Calls.Media
библиотека .NET для доступа к аудио- и видеопотокам мультимедиа. Бот должен быть развернут на локальном компьютере Windows Server или в гостевой операционной системе (ОС) Windows Server в Azure.
Примечание.
- Руководство по разработке ботов для обмена сообщениями и интерактивного голосового ответа (IVR) не полностью применимо к созданию ботов мультимедиа, размещаемых в приложениях.
- Поскольку Microsoft Real-time Media Platform для ботов находится на стадии предварительной версии для разработчиков, рекомендации в этом документе могут быть изменены.
C# или .NET и Windows Server для разработки
К боту мультимедиа, размещенной в приложении, предъявляются следующие требования:
Бот должен быть разработан с помощью C# и стандартной платформы .NET Framework и развернут в Microsoft Azure. Вы не можете использовать C++ или Node.js API для доступа к мультимедиа в режиме реального времени. Однако .NET Core поддерживается для бота мультимедиа, размещенного в приложении, а пакет SDK поддерживает .NET 6.0.
Бот может быть размещен в одной из следующих сред службы Azure:
- Облачная служба
- Service Fabric с масштабируемыми наборами виртуальных машин (VMSS).
- Инфраструктура как услуга (IaaS) Виртуальная машина (ВМ).
- Служба Azure Kubernetes (AKS).
Невозможно развернуть бот как веб-приложение Azure.
Бот должен работать в последней версии библиотеки .NET.
Microsoft.Graph.Communications.Calls.Media
. Бот должен использовать новейшую доступную версию пакета NuGet или версию не старше трех месяцев. Старые версии библиотеки устарели и не работают через несколько месяцев. ПоддержаниеMicrosoft.Graph.Communications.Calls.Media
библиотеки в актуальном состоянии обеспечивает наилучшее взаимодействие между ботом и Microsoft Teams.
В следующем разделе содержится подробная информация о том, где находятся мультимедийные вызовы в реальном времени.
Вызовы мультимедиа в режиме реального времени остаются там, где они созданы
Мультимедийные вызовы в реальном времени остаются на том компьютере, на котором они были созданы. Мультимедийный вызов в реальном времени закрепляется за экземпляром виртуальной машины (ВМ), который принял или инициировал вызов. Мультимедиа из звонка или собрания Teams передаются в этот экземпляр виртуальной машины, а мультимедиа, отправляемые ботом в Teams, также должны исходить из этой виртуальной машины. Если при остановке виртуальной машины выполняются какие-либо мультимедийные вызовы в реальном времени, эти вызовы внезапно прерываются. Если бот заранее знает об ожидающем отключении виртуальной машины, он может завершить вызовы.
В следующем разделе приведены сведения о доступности медиа-ботов, размещаемых в приложениях.
Медиа-боты, размещенные в приложениях, доступны в Интернете
Медиа-боты, размещаемые в приложениях, должны быть напрямую доступны в Интернете. Эти боты должны включать следующие функции:
Каждый экземпляр виртуальной машины, на котором размещается мультимедийный бот, размещенный в приложении, в Azure, должен быть напрямую доступен из Интернета с использованием общедоступного IP-адреса на уровне экземпляра (ILPIP).
- Чтобы получить и настроить ILPIP для облачной службы Azure, см. Классический обзор общедоступного IP-адреса на уровне экземпляра.
- Чтобы настроить ILPIP для масштабируемого набора виртуальных машин, см. Общедоступный IPv4 для каждой виртуальной машины.
Служба, в которой размещается бот мультимедиа, размещаемый в приложении, также должна настроить каждый экземпляр виртуальной машины с общедоступным портом, который сопоставляется с конкретным экземпляром.
- Облачной службе Azure для этого требуется входная конечная точка экземпляра. Подробнее в статье Включение связи для экземпляров ролей в Azure.
- Для масштабируемого набора виртуальных машин необходимо настроить правило NAT в подсистеме балансировки нагрузки. Подробнее в статье Виртуальные сети и виртуальные машины в Azure.
Bot Framework Emulator не поддерживает размещенные в приложении боты мультимедиа.
В следующем разделе приведены подробные сведения о масштабируемости и производительности медиа-ботов, размещаемых в приложениях.
Рекомендации по масштабируемости и производительности
Для ботов мультимедиа с приложениями необходимо учитывать масштабируемость и производительность:
- Боты мультимедиа, размещенные в приложении, требуют больше вычислительных ресурсов и сети (пропускной способности), чем боты для обмена сообщениями, и могут нести более высокие эксплуатационные затраты. Разработчик медиа-бота в реальном времени должен тщательно измерить масштабируемость бота и убедиться, что бот не принимает больше одновременных вызовов, чем может обработать. Бот с поддержкой видео может поддерживать только один или два одновременных мультимедийных сеанса на ядро ЦП (при использовании ''сырых'' видеоформатов RGB24 или NV12).
- Платформа мультимедиа в режиме реального времени не использует преимущества графических процессоров (GPU), доступных на виртуальной машине, для отключения загрузки H.264 видео кодирования и декодирования. Вместо этого кодирование и декодирование видео выполняются программно на ЦП. Если доступен графический процессор, бот может использовать его для собственной отрисовки графики, например, если бот использует модуль 3D-графики.
- Экземпляр виртуальной машины, на котором размещен медиа-бот в режиме реального времени, должен иметь по крайней мере два ядра ЦП. Для Azure рекомендуется виртуальная машина серии Dv2. Для других типов виртуальных машин Azure требуется как минимум система с четырьмя виртуальными ЦП (вЦП). Подробная информация о типах ВМ Azure доступна в Документации по Azure.
Пример кода
Ниже приведены примеры медиа-ботов, размещенных в приложении.
Название примера | Описание | Microsoft Graph |
---|---|---|
Образец локального мультимедиа | Пример, иллюстрирующий различные локальные сценарии мультимедиа. | Просмотр |
Пример удаленного мультимедиа | Пример, иллюстрирующий различные сценарии удаленного мультимедиа. | Просмотр |
Следующий этап
Дополнительные ресурсы
Platform Docs