Звонки и собрания по сети БотыCalls and online meetings bots

Примечание

Поддержка вызовов и интерактивных собраний боты в настоящее время не поддерживается на платформе Microsoft Teams для мобильных устройств.Support for calls and online meeting bots is currently not supported on the Microsoft Teams mobile platform.

С добавлением API Microsoft Graph для звонков и собраний по сетиприложения Microsoft Teams теперь могут взаимодействовать с пользователями с помощью голосовых и видеоконференций.With the addition of Microsoft Graph APIs for calls and online meetings, Microsoft Teams apps can now interact with users in rich ways using voice and video. Эти API позволяют добавлять новые функции, такие как интерактивный голосовой отклик (IVR), контроль звонков и доступ к потокам аудио-и видеоданных в режиме реального времени для звонков и собраний, в том числе для общего доступа к рабочему столу и приложениям.These APIs allow you to add new features such as interactive voice response (IVR), call control, and access to real-time audio and/or video streams for calls and meetings, including desktop and app sharing.

Чтобы использовать эти API Microsoft Graph в приложении Microsoft Teams, создайте Bot и укажите дополнительные сведения и разрешения, которые мы будем описывать в другом месте, но сначала важно понимать некоторые основные концепции, терминологию и соглашения:To use these Microsoft Graph APIs in a Microsoft Teams app, you create a bot and specify some additional information and permissions which we'll describe elsewhere, but first, it's important to understand some core concepts, terminology, and conventions:

  • Вызовы аудио-и видеосвязи.Audio/video calls. Звонки в Teams могут быть чисто звуком, аудио и видео.Calls in Teams can be purely audio or audio+video. Для краткости мы не говорим о функции "аудио и видео звонки", где угодно; Мы просто говорим "Call".For brevity's sake, we don't say "audio/video call" everywhere; we just say "call."
  • Типы вызовов.Call types. Звонки могут быть одноранговой (между человеком и Bot) или несколькими участниками (абонентом-роботом и двумя или несколькими людьми в группе).Calls are either peer-to-peer (between a person and your bot) or multiparty (your bot and two or more people in a group call). Каллингтипес :CallingTypes:
    • Пользователь может инициировать одноранговый звонок с помощью ленты или пригласить к существующему многочастым звонкам (хотя последний еще не включен в пользовательском интерфейсе Microsoft Teams).A user may initiate a peer-to-peer call with your bot or invite your bot into an existing multiparty call (although the latter is not yet enabled in the Microsoft Teams UI).
    • Разрешения Microsoft Graph не требуются для того, чтобы пользователь инициировал одноранговый звонок с помощью почтового робота, но требуются дополнительные разрешения, необходимые для участия пользователя в многосторонних вызовах, или для запуска одноранговой связи с пользователем.Microsoft Graph permissions aren't necessary for a user to initiate a peer-to-peer call with your bot, but additional permissions are needed for your bot to participate in a multiparty call, or for your bot to initiate a peer-to-peer call with a user.
    • Вызов может начинаться как одноранговый и передан на многосторонние подключения.A call may start as peer-to-peer and escalate to multiparty. Ваш Bot может инициировать это распространение, приглашая других пользователей, если у вас есть соответствующие разрешения.Your bot can initiate this escalation by inviting others, provided your bot has the proper permissions. Если у пользователя Bot нет разрешений на участие в вызовах групп и один участник добавляет еще одну вечеринку, ваш робот удаляется из вызова.If your bot doesn't have permissions to participate in group calls and one participant adds another party, your bot is dropped from the call.
  • Передачи сигналов.Signaling. Существует два типа сигналов — входящий вызов и входящий звонок.There are two types of signals — incoming call and in-call:
    • Чтобы получить входящий вызов, укажите конечную точку в параметрах Bot; Эта конечная точка получает уведомление при поступлении входящего вызова.To receive an incoming call, you specify an endpoint in your bot settings; this endpoint receives a notification when an incoming call arrives. Вы можете ответить на звонок, отклонить или перенаправить его кому-то или другому пользователю.You can answer the call, reject it, or redirect it to somewhere or someone else. Типы звонковCall Types
    • Когда Bot находится в вызове, существуют API для самозапуска и самозапуска, а также для запуска/прекращения совместного использования содержимого видео и рабочего стола с другими участниками.When a bot is in a call, there are APIs for muting and unmuting itself and to start/stop sharing video/desktop content with the other participants.
    • С помощью ленты также можно получить доступ к списку участников, пригласить новых участников и отключить их.The bot can also access the list of participants, invite new participants, and mute them.
  • Звонки и собрания по сети.Calls and online meetings. С точки зрения пользователя Teams существует два типа собраний по сети — прямое и запланированное.From a Teams user's perspective, there are two kinds of online meetings — ad hoc and scheduled. Однако с точки зрения Bot они одинаковы.However, from a bot's perspective, both are the same. В качестве приглашения на собрание по сети используется только многочастый звонок (набор участников) плюс "координаты собрания", которые можно представить как метаданные собрания: botId , chatId связанные с собранием, joinUrl startTime / endTime и другие.To a bot, an online meeting is just a multiparty call (the set of participants) plus "meeting coordinates," which you can think of as the metadata for the meeting: botId, chatId associated with the meeting, joinUrl, startTime/endTime, and more.
  • Мультимедиа в режиме реального времени.Real-time media. Когда Bot участвует в вызове или собрании по сети, он должен работать с потоками аудио-и видеоданных.When a bot is participating in a call or online meeting, it must deal with audio and video streams. Когда пользователи говорят о вызове, продемонстрируйте себя на веб-камере или предвидите их экраны на собрании, поступающим в качестве аудио-и видеопотоков.When users talk on a call, show themselves on a webcam, or present their screens in a meeting, a bot "sees" this as audio and/or video streams. Если Bot хочет сказать нечто или представить содержимое экрана, для которого требуется поток аудио-или видеозаписи.If a bot wants to say something or present screen content, that requires an audio or video stream. Даже что именно так просто, как говорят, "нажмите 0 для достижения оператора" в сценарии "IVR (интерактивный голосовой голосовый ответ") означает, что воспроизводится воспроизведение. WAV файл.Even something as simple as the bot saying, "press 0 to reach the operator" in an IVR (interactive voice response) scenario means playing a .WAV file. В совокупности мы будем называть его мультимедиа или мультимедиа реального времени (при ссылке на сценарии, в которых необходимо обрабатывать мультимедиа в режиме реального времени, а не воспроизводить ранее записанные аудио-и видеозаписи).Collectively, we refer to this as media or real-time media (when referring to scenarios where media must be processed in real time, as opposed to playback of previously-recorded audio/video). Исторически работа с потоками мультимедиа, в особенности потоками мультимедиа в реальном времени, чрезвычайно сложна для разработчиков.Historically, dealing with media streams, particularly real-time media streams, has been extremely complex for developers. Корпорация Майкрософт создала платформу мультимедиа реального времени для обработки этих вариантов использования и отгрузить как можно больше традиционных "тяжелых" тяжелых операций с мультимедиа в реальном времени.Microsoft has created the Real-time Media Platform to handle these use cases and to offload as much of the traditional "heavy lifting" of real-time media processing as possible. Когда бот отвечает на входящий звонок или присоединяется к новому или существующему звонку, он должен сообщить платформе мультимедиа в реальном времени, как будет обрабатываться мультимедиа.When the bot answers an incoming call, or joins a new or existing call, it needs to tell the Real-time Media Platform how media will be handled. Если вы создаете приложение IVR, вы можете отгрузить дорогостоящую обработку звука в корпорацию Майкрософт.If you're building an IVR application, you can offload the expensive audio processing to Microsoft. Кроме того, если для ленты необходим прямой доступ к потокам мультимедиа, мы также поддерживаем этот сценарий.Alternatively, if your bot requires direct access to media streams, we support that scenario too. Существует два типа обработки мультимедиа:There are the two types of media processing:
    • Носитель, размещенный в службе.Service-hosted media. Боты сосредоточиться на управлении рабочим процессом приложений (например, вызовами по маршрутизации) и разгрузкой обработки звука на платформе мультимедиа Microsoft в режиме реального времени.Bots focus on managing application workflow (e.g., routing calls) and offload audio processing to the Microsoft Real-time Media Platform. С помощью носителей, размещаемых в службах, существует несколько вариантов реализации и размещения ленты.With service-hosted media, you have several options to implement and host your bot. Размещенный в службе робот можно реализовать в качестве службы без отслеживания состояния, так как он не обрабатывает носители локально.A service-hosted media bot can be implemented as a stateless service since it doesn't process media locally. Размещаемые в службах медиа-Боты могут использовать API PlayPrompt , например для воспроизведения аудиоклипа, Record для записи звуковых клипов или SubscribeToTone для подписки на сигналы DTMF (например, если пользователь нажал 0 для достижения оператора).Service-hosted media bots can use APIs such as PlayPrompt for playing an audio clip, Record for recording audio clips, or SubscribeToTone for subscribing to DTMF tones (e.g., knowing when a user has pressed 0 to reach the operator).
    • Носители, размещаемые в приложении.Application-hosted media. Для получения прямого доступа к мультимедиа с помощью Bot требуется определенное разрешение на доступ к графике, но если у вас есть устройство чтения, Библиотека мультимедиа реального времени и пакет SDK Graph помогают создавать полнофункциональный мультимедиа реального времени, вызывая Боты.For a bot to get direct access to the media, it needs a specific Graph permission, but once your bot has it, the Real-time Media Library and the Graph Calling SDK helps you build rich, real-time media, calling bots. Элемент Bot, размещаемый в приложении, должен размещаться в среде Windows, как описано более подробно.An Application-hosted bot must be hosted in a Windows environment, as described in more detail here.

Дополнительные материалыFurther reading

Ниже приведены дополнительные сведения о создании и тестировании вызовов и онлайн-собраний Боты.Here's more information on how to create and test calls and online meetings bots: