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

Медиа-боту, размещенному в приложении, требуется 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. Нельзя использовать API-интерфейсы C++ и Node.js для доступа к мультимедиа в реальном времени, а .NET Core не поддерживается для ботов мультимедиа, размещенных в приложении.

  • Бот может быть размещен в одной из следующих сред службы Azure:

    • Облачная служба
    • Service Fabric с масштабируемыми наборами виртуальных машин (VMSS).
    • Инфраструктура как услуга (IaaS) Виртуальная машина (ВМ).
  • Невозможно развернуть бот как веб-приложение Azure.

  • Бот должен работать в последней версии библиотеки .NET.Microsoft.Graph.Communications.Calls.Media. Бот должен использовать новейшую доступную версию пакета NuGet или версию не старше трех месяцев. Старые версии библиотеки устарели и не работают через несколько месяцев. Поддержание Microsoft.Graph.Communications.Calls.Media библиотеки в актуальном состоянии обеспечивает наилучшее взаимодействие между ботом и Microsoft Teams.

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

Вызовы мультимедиа в режиме реального времени остаются там, где они созданы

Мультимедийные вызовы в реальном времени остаются на том компьютере, на котором они были созданы. Мультимедийный вызов в реальном времени закрепляется за экземпляром виртуальной машины (ВМ), который принял или инициировал вызов. Мультимедиа из звонка или собрания Teams передаются в этот экземпляр виртуальной машины, а мультимедиа, отправляемые ботом в Teams, также должны исходить из этой виртуальной машины. Если при остановке виртуальной машины выполняются какие-либо мультимедийные вызовы в реальном времени, эти вызовы внезапно прерываются. Если бот заранее знает об ожидающем отключении виртуальной машины, он может завершить вызовы.

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

Медиа-боты, размещенные в приложениях, доступны в Интернете

Медиа-боты, размещаемые в приложениях, должны быть напрямую доступны в Интернете. Эти боты должны включать следующие функции:

  • Каждый экземпляр виртуальной машины, на котором размещается мультимедийный бот, размещенный в приложении, в Azure, должен быть напрямую доступен из Интернета с использованием общедоступного IP-адреса на уровне экземпляра (ILPIP).

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

  • Боты мультимедиа, размещенные в приложении, не поддерживаются эмулятором Bot Framework.

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

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

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

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

Пример кода

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

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

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

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

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