Требования и рекомендации для медиа-ботов, размещаемых в приложениях
Медиа-боту, размещенному в приложении, требуется 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).
- Чтобы получить и настроить ILPIP для облачной службы Azure, см. Классический обзор общедоступного IP-адреса на уровне экземпляра.
- Чтобы настроить ILPIP для масштабируемого набора виртуальных машин, см. Общедоступный IPv4 для каждой виртуальной машины.
- Служба, в которой размещается бот мультимедиа, размещаемый в приложении, также должна настроить каждый экземпляр виртуальной машины с общедоступным портом, который сопоставляется с конкретным экземпляром.
- Облачной службе Azure для этого требуется входная конечная точка экземпляра. Подробнее в статье Включение связи для экземпляров ролей в Azure.
- Для масштабируемого набора виртуальных машин необходимо настроить правило NAT в подсистеме балансировки нагрузки. Подробнее в статье Виртуальные сети и виртуальные машины в Azure.
- 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 |
---|---|---|
Образец локального мультимедиа | Пример, иллюстрирующий различные локальные сценарии мультимедиа. | Просмотр |
Пример удаленного мультимедиа | Пример, иллюстрирующий различные сценарии удаленного мультимедиа. | Просмотр |
Дополнительные ресурсы
Platform Docs