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


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

Медиа-боту, размещенному в приложении, требуется Microsoft.Graph.Communications.Calls.Media библиотека .NET для доступа к аудио- и видеопотокам мультимедиа. Рабочие медиа-боты, размещенные в приложениях, должны быть развернуты в Windows Server гостевой операционной системе (ОС) в Azure. В нерабочих целях, таких как разработка или тестирование, можно развернуть ботов на локальной Windows Server.

Примечание.

  • Руководство по разработке ботов для обмена сообщениями и интерактивного голосового ответа (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 Teams поддерживают только следующие форматы мультимедиа для аудио- и видеосодержимого:

Формат Дополнительная информация
Vorbis http://www.vorbis.com/
PCM_U8, PCM_S16LE, PCM_S32LE, PCM_F32LE, PCM_S16BE, PCM_S24BE, PCM_MULAW https://wiki.multimedia.cx/?title=PCM
Ogg http://www.vorbis.com/
Matroska https://matroska.org/
WAV https://en.wikipedia.org/wiki/WAV
AAC https://en.wikipedia.org/wiki/Advanced_Audio_Coding
H264 https://en.wikipedia.org/wiki/H.264/MPEG-4_AVC
MP3-проигрыватели https://en.wikipedia.org/wiki/MP3
Opus http://opus-codec.org/
MP4 https://en.wikipedia.org/wiki/MPEG-4

Пример кода

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

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

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