Поделиться через


Требования и рекомендации для медиа-ботов, размещаемых в приложениях

Медиа-боту, размещенному в приложении, требуется 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).

  • Служба, в которой размещается бот мультимедиа, размещаемый в приложении, также должна настроить каждый экземпляр виртуальной машины с общедоступным портом, который сопоставляется с конкретным экземпляром.

  • Bot Framework Emulator не поддерживает размещенные в приложении боты мультимедиа.

В следующем разделе приведены подробные сведения о масштабируемости и производительности медиа-ботов, размещаемых в приложениях.

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

Для ботов мультимедиа с приложениями необходимо учитывать масштабируемость и производительность:

  • Боты мультимедиа, размещенные в приложении, требуют больше вычислительных ресурсов и сети (пропускной способности), чем боты для обмена сообщениями, и могут нести более высокие эксплуатационные затраты. Разработчик медиа-бота в реальном времени должен тщательно измерить масштабируемость бота и убедиться, что бот не принимает больше одновременных вызовов, чем может обработать. Бот с поддержкой видео может поддерживать только один или два одновременных мультимедийных сеанса на ядро ​​​​ЦП (при использовании ''сырых'' видеоформатов RGB24 или NV12).
  • Платформа мультимедиа в режиме реального времени не использует преимущества графических процессоров (GPU), доступных на виртуальной машине, для отключения загрузки H.264 видео кодирования и декодирования. Вместо этого кодирование и декодирование видео выполняются программно на ЦП. Если доступен графический процессор, бот может использовать его для собственной отрисовки графики, например, если бот использует модуль 3D-графики.
  • Экземпляр виртуальной машины, на котором размещен медиа-бот в режиме реального времени, должен иметь по крайней мере два ядра ЦП. Для Azure рекомендуется виртуальная машина серии Dv2. Для других типов виртуальных машин Azure требуется как минимум система с четырьмя виртуальными ЦП (вЦП). Подробная информация о типах ВМ Azure доступна в Документации по Azure.

Пример кода

Ниже приведены примеры медиа-ботов, размещенных в приложении.

Название примера Описание Microsoft Graph
Образец локального мультимедиа Пример, иллюстрирующий различные локальные сценарии мультимедиа. Просмотр
Пример удаленного мультимедиа Пример, иллюстрирующий различные сценарии удаленного мультимедиа. Просмотр

Следующий этап

Дополнительные ресурсы