呼叫和联机会议机器人

机器人可以使用实时语音、视频和屏幕共享与 Teams 呼叫和会议交互。 借助适用于呼叫和联机会议的 Microsoft Graph API,Teams 应用现在可以使用语音和视频与用户交互,从而改进体验。 这些 API 允许添加以下新功能:

  • 互动语音响应 (IVR)。
  • 呼叫控制。
  • 访问实时音频和视频流,包括桌面和应用共享。

若要在 Teams 应用中使用这些 Graph API,需创建机器人并指定一些附加信息和权限。

此外,实时媒体平台允许机器人使用实时语音、视频和屏幕共享与 Teams 呼叫和会议交互。 参与音频或视频通话和联机会议的机器人为常规 Microsoft Teams 机器人,它具有一些用于注册机器人的额外功能。

Teams 应用清单 包含另外两个设置 supportsCallingsupportsVideo、机器人Microsoft应用 ID 的 Graph 权限和租户管理员同意,使你能够注册机器人。 在为 Teams 注册呼叫和会议机器人时,会提到 Webhook URL,它是机器人所有来电的 Webhook 终结点。 应用程序托管媒体机器人需要 Microsoft.Graph.Communications.Calls.Media .NET 库来访问音频和视频媒体流,并且机器人必须部署在 Azure 中的 Windows Server 计算机或 Windows Server 来宾操作系统 (OS) 上。 Teams 上的机器人仅支持音频和视频内容的特定媒体格式集。

呼叫和联机会议机器人的功能

机器人可以通过为呼叫和联机会议调用Microsoft Graph API 来执行以下功能:

功能 函数
核心功能 • 在两个用户之间发起一对一呼叫。
• 发起两个以上用户的组呼叫, (最多 350 个用户) 。
• 将具有两个用户的一对一呼叫升级为具有两个以上用户的组呼叫。
• 启动组呼叫后加入组呼叫。
• 邀请语音通过 Internet 协议 (VoIP) 参与者加入正在进行的组呼叫。
通话中控制 • 打开或关闭视频。
• 将麦克风静音或取消静音。
• 在相机之间切换。
• 在本地保留或恢复呼叫。
• 活动扬声器。
• 为呼叫选择扬声器。
• 为呼叫选择麦克风。
• 显示参与者的状态,例如空闲、早期媒体、连接、已连接、保持、大厅中或断开连接。
• 显示呼叫的状态,例如早期媒体、传入、连接、响铃、已连接、保持、断开连接或断开连接。
• 显示参与者是否处于静音状态。
• 显示参与者离开呼叫的原因。
屏幕共享 • 从应用内共享整个屏幕。
• 共享正在运行的应用列表中的特定应用 () 。
• 从打开的选项卡列表中共享 Web 浏览器选项卡。
• 在屏幕共享期间共享系统音频。
• 参与者可以查看远程屏幕共享。
花名册 • 列出通话中的参与者。
• 从通话中删除参与者。
公用电话交换网 (PSTN) • 与 PSTN 参与者进行一对一呼叫。
• 与 PSTN 参与者进行群组通话。
• 将 PSTN 参与者的一对一呼叫升级为组呼叫。
• 以 PSTN 参与者身份从组呼叫拨出。
• 支持早期媒体。

现在,你必须了解一些核心概念、术语和约定。

术语

以下核心概念、术语和约定将指导你使用通话和联机会议机器人:

  • 音频或视频通话
  • 呼叫类型
  • 信号
  • 呼叫和联机会议
  • 实时媒体

音频或视频通话

Teams 中的通话可以是纯音频或音频和视频。 使用的术语是“呼叫”,而非音频或视频通话。

呼叫类型

通话是人员与机器人之间的对等通话,或机器人与群组通话中的两人或更多人之间的多方通话。

通话类型

以下是通话所需的不同通话类型和权限:

  • 用户可以发起与机器人的对等通话,或邀请机器人加入现有多方通话。 Teams 用户界面中尚未启用多方调用。

    注意

    Teams 移动客户端不支持用户发起的对机器人的调用。

  • 用户不需要图形权限即可启动机器人的对等调用。 机器人需要其他权限才可参与多方通话,或者机器人需要其他权限才可发起与用户的对等通话。

  • 通话可以以对等方式开始,并在最后成为多方通话。 如果机器人具有适当权限,则可邀请他人发起多方通话。 如果机器人没有参与组呼叫的权限,并且参与者将另一个参与者添加到呼叫中,则机器人将从呼叫中删除。

信号

有两种类型的信号: 来电和通话中。 以下是信号的不同功能:

  • 若要接听来电,请在机器人设置中输入终结点。 发起来电时,此终结点会收到通知。 可以应答呼叫、拒绝呼叫或将其重定向到其他人员。

    呼叫处理

  • 当机器人接听电话时,有 API 可用于静音和取消静音该机器人,以及开始或停止与其他参与者共享视频或桌面内容。

  • 机器人还可以访问参与者列表、邀请新的参与者并将其静音。

呼叫和联机会议

从 Teams 用户的角度来看,有两种类型的联机会议,即计划外会议和计划会议。 从机器人的角度来看,这两种联机会议并无差别。 对机器人而言,联机会议是一组参与者之间的多方通话,包括会议坐标。 会议坐标为会议的元数据,包括 botId、与会议关联的 chatIdjoinUrlstartTimeendTime 等。

实时媒体

当机器人参与通话或联机会议时,它必须处理音频和视频流。 当用户在通话中交谈时,在网络摄像头上展示自己,或在会议中向机器人展示他们的屏幕时,它显示为音频和视频流。 如果机器人想要在互动语音响应 (IVR) 场景中说出“按 0 联系话务员”等简单的话,需要播放 .WAV 文件。 这统称为媒体或实时媒体。

实时媒体是指必须实时处理媒体的场景,而不是播放之前录制的音频或视频。 处理媒体流(实时媒体流)很复杂。 Microsoft 已创建实时媒体平台以应对这些场景,并尽可能减轻实时媒体处理的传统繁重工作。 当机器人接听来电或加入新的或现有通话时,它需要告知实时媒体平台如何处理媒体。 如果要构建 IVR 应用程序,可以将昂贵的音频处理卸载到Microsoft。 或者,如果机器人需要直接访问媒体流,也支持该方案。 媒体处理有两种类型:

  • 服务托管媒体: 机器人专注于管理应用程序工作流,例如呼叫路由并将音频处理工作交给 Microsoft 实时媒体平台。 借助服务托管媒体,可以通过多个选项来实现并托管机器人。 服务托管的媒体机器人可以实现为无状态服务,因为它不在本地处理媒体。 服务托管媒体机器人可以使用以下 API:

    • PlayPrompt 用于播放音频剪辑。

    • Record 用于录制音频剪辑。

    • SubscribeToTone 用于订阅双音多频 (DTMF) 音。

      例如,了解用户按“0”联系话务员的时间。

  • 应用程序托管媒体: 要让机器人直接访问媒体,它需要特定的 Graph 权限。 机器人拥有权限后,实时媒体库Graph 通话 SDK 可帮助你构建丰富的实时媒体和通话机器人。 必须在 Windows 环境中托管应用程序托管的机器人。 有关详细信息,请参阅 应用程序托管媒体机器人

代码示例

示例名称 说明 Graph
Graph 通信 用于与 Microsoft 通信平台交互的 Graph 通信。 View

后续步骤

另请参阅