Боты для звонков и виртуальных собраний

Боты, взаимодействующие со звонками и собраниями Teams в реальном времени с помощью голосовых команд, видео и демонстрации экрана. С помощью API Microsoft Graph для звонков и онлайн-собраний приложения Microsoft Teams теперь могут взаимодействовать с пользователями посредством голосовых вызовов и видеосвязи. Эти API позволяют добавлять следующие новые функции:

  • Рабочие процессы интерактивного автоответчика (IVR)
  • Управление вызовами.
  • Доступ к аудио- и видеопотокам в режиме реального времени, в том числе общий доступ к классическим и мобильным приложениям.

Чтобы использовать эти Graph API в приложении Teams, создайте бот и укажите некоторые дополнительные данные и разрешения.

Кроме того, платформа мультимедиа в реальном времени позволяет ботам взаимодействовать со звонками и собраниями Teams с помощью голосовой связи, видео и демонстрации экрана в режиме реального времени. Бот, участвующий в аудио- или видеозвонках и виртуальных собраниях - это обычный бот Microsoft Teams с несколькими дополнительными функциями, используемыми для регистрации бота.

Манифест приложения Teams с двумя дополнительными параметрами supportsCalling и supportsVideoразрешениями Graph для идентификатора приложения Microsoft App бота и согласия администратора клиента позволяют зарегистрировать бота. При регистрации бота для звонков и собраний Teams нужно указать URL-адрес веб-перехватчика, который является конечной точкой веб-перехватчика для всех входящих вызовов, адресованных боту. Боту-мультимедиа, размещенному в приложении, для доступа к аудио- и видеопотокам мультимедиа требуется библиотека Microsoft.Graph.Communications.Calls.Media .NET, а сам бот должен быть развернут на компьютере Windows Server или гостевой операционной системе сервера Windows Server в Azure. Боты в Teams поддерживают только определенный набор форматов мультимедиа для аудио- и видеоконтента.

Теперь необходимо разобраться в некоторых основных понятиях, терминах и соглашениях.

Термины

Следующие основные понятия, терминология и соглашения помогут вам использовать боты для звонков и собраний по сети:

  • Голосовые или видеозвонки
  • Типы звонков
  • Сигналы
  • Звонки и собрания по сети
  • Мультимедиа в реальном времени

Голосовые или видеозвонки

Звонки в Teams могут использовать только аудиосвязь или комбинацию аудио и видео. Вместо терминов "голосовой звонок" и "видеозвонок" используется термин "вызов".

Типы звонков

Вызовы — это одноранговые сеансы связи между пользователем и ботом или многопользовательские сеансы связи между ботом и несколькими пользователями (групповой вызов).

Типы вызовов

Ниже приведены различные типы вызовов и разрешения, необходимые для вызова:

  • Пользователь может инициировать одноранговый звонок с помощью вашего бота или пригласить бота в существующую многопользовательскую конференцию. Многопартийный вызов еще не включен в пользовательском интерфейсе Teams.

    Примечание.

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

  • Разрешения Graph не требуются пользователю для запуска однорангового вызова с помощью бота. Боту, чтобы участвовать в многопользовательском вызове или инициировать одноранговый вызов с пользователем, требуются дополнительные разрешения.

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

Сигналы

Существует два типа сигналов: входящий и вызывающий. Ниже приведены различные функции сигналов.

  • Чтобы получать входящие звонки, введите конечную точку в параметрах бота. Эта конечная точка получает уведомление при инициации входящего вызова. Вы можете ответить на звонок, отклонить его или перенаправить его другому пользователю.

    Обработка вызовов

  • Когда бот участвует в вызове, существуют API-интерфейсы для отключения и включения звука бота, а также для запуска и прекращения общего доступа к содержимому видео или рабочего стола, предоставляемого ботом другим участникам.

  • Бот также может получать доступ к списку участников, приглашать новых участников и отключать им звук.

Звонки и собрания по сети

С точки зрения пользователя Teams существует два типа онлайн-собраний: незапланированные и запланированные. С точки зрения бота между этими типами онлайн-собраний нет никакой разницы. Для бота онлайн-собрание — это многопользовательский звонок между набором участников, который включает в себя координаты собрания. Координаты собрания — это метаданные собрания, в том числе botId, chatId, связанный с собранием, joinUrl, startTime или endTime и т. д.

Мультимедиа в реальном времени

Когда бот участвует в звонках или виртуальных собраниях, он должен работать со звуковым и видеопотоком. Когда пользователи разговаривают по телефону, показывают себя на веб-камере или представляют свои экраны на собрании, боту он отображается в виде аудио- и видеопотоков. Если бот хочет произнести что-нибудь, даже совсем простое, например нажать 0, чтобы связаться с оператором в сценарии интерактивного голосового ответа (IVR), для этого необходимо воспроизвести . WAV-файл. В совокупности это называется мультимедиа или мультимедиа в режиме реального времени.

Мультимедиа в режиме реального времени — это сценарии, в которых мультимедиа должны обрабатываться в режиме реального времени, а не воспроизводить ранее записанные аудио или видео. Работа с потоками мультимедиа, потоками мультимедиа в режиме реального времени, является сложной задачей. Корпорация Майкрософт создала платформу работы с мультимедиа в режиме реального времени для обработки этих сценариев, чтобы взять на себя как можно большую часть традиционной интенсивной обработки мультимедиа в режиме реального времени. Когда бот отвечает на входящий вызов или присоединяется к новому или существующему вызову, он должен сообщить платформе мультимедиа в реальном времени, как будет обрабатываться мультимедиа. Если вы создаете приложение IVR, вы можете разгрузить дорогостоящую обработку звука в корпорацию Майкрософт. Кроме того, если боту требуется прямой доступ к потокам мультимедиа, этот сценарий также поддерживается. Существует два типа обработки мультимедиа:

  • Размещение мультимедиа в службе: боты фокусируются на управлении рабочим процессом приложения, в частности - маршрутизации вызовов, а обработка звука перепоручается платформе Майкрософт для работы с мультимедиа в режиме реального времени. При размещении мультимедиа в службе существует несколько вариантов реализации и размещения вашего бота. Медиа-бот, размещенный в службе, можно реализовать как службу без отслеживания состояния, так как он не обрабатывает мультимедиа локально. Боты мультимедиа, размещенные в службе, могут использовать следующие API:

    • PlayPrompt для воспроизведения звукового клипа.

    • Record для записи звуковых клипов.

    • SubscribeToTone для подписки на двойные тоны с несколькими частотами (DTMF).

      Например, чтобы знать, когда пользователь нажал 0 для связи с оператором.

  • Размещение мультимедиа в приложении: для прямого доступа к мультимедиа боту потребуется определенное разрешение Graph. После того как бот получит разрешение, библиотека мультимедиа в режиме реального времени и пакет SDK для вызовов Graph помогают создавать богатые возможностями мультимедиа в режиме реального времени и вызывать ботов. Бот, размещенный в приложении, должен располагаться в среде Windows. Дополнительные сведения см. в разделе Боты мультимедиа, размещаемые в приложениях.

Пример кода

Название примера Описание Microsoft Graph
Коммуникации Graph Коммуникации Graph для взаимодействия с платформой связи Майкрософт. Просмотр

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

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