呼叫和联机会议机器人
机器人可以使用实时语音、视频和屏幕共享与 Teams 呼叫和会议交互。 借助适用于呼叫和联机会议的 Microsoft Graph API,Teams 应用现在可以使用语音和视频与用户交互,从而改进体验。 这些 API 允许添加以下新功能:
- 互动语音响应 (IVR)。
- 呼叫控制。
- 访问实时音频和视频流,包括桌面和应用共享。
若要在 Teams 应用中使用这些 Graph API,需创建机器人并指定一些附加信息和权限。
此外,实时媒体平台允许机器人使用实时语音、视频和屏幕共享与 Teams 呼叫和会议交互。 参与音频或视频通话和联机会议的机器人为常规 Microsoft Teams 机器人,它具有一些用于注册机器人的额外功能。
Teams 应用清单 包含另外两个设置 supportsCalling
和 supportsVideo
、机器人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
、与会议关联的 chatId
、joinUrl
、startTime
或 endTime
等。
实时媒体
当机器人参与通话或联机会议时,它必须处理音频和视频流。 当用户在通话中交谈时,在网络摄像头上展示自己,或在会议中向机器人展示他们的屏幕时,它显示为音频和视频流。 如果机器人想要在互动语音响应 (IVR) 场景中说出“按 0 联系话务员”等简单的话,需要播放 .WAV 文件。 这统称为媒体或实时媒体。
实时媒体是指必须实时处理媒体的场景,而不是播放之前录制的音频或视频。 处理媒体流(实时媒体流)很复杂。 Microsoft 已创建实时媒体平台以应对这些场景,并尽可能减轻实时媒体处理的传统繁重工作。 当机器人接听来电或加入新的或现有通话时,它需要告知实时媒体平台如何处理媒体。 如果要构建 IVR 应用程序,可以将昂贵的音频处理卸载到Microsoft。 或者,如果机器人需要直接访问媒体流,也支持该方案。 媒体处理有两种类型:
服务托管媒体: 机器人专注于管理应用程序工作流,例如呼叫路由并将音频处理工作交给 Microsoft 实时媒体平台。 借助服务托管媒体,可以通过多个选项来实现并托管机器人。 服务托管的媒体机器人可以实现为无状态服务,因为它不在本地处理媒体。 服务托管媒体机器人可以使用以下 API:
PlayPrompt
用于播放音频剪辑。Record
用于录制音频剪辑。SubscribeToTone
用于订阅双音多频 (DTMF) 音。例如,了解用户按“0”联系话务员的时间。
应用程序托管媒体: 要让机器人直接访问媒体,它需要特定的 Graph 权限。 机器人拥有权限后,实时媒体库和 Graph 通话 SDK 可帮助你构建丰富的实时媒体和通话机器人。 必须在 Windows 环境中托管应用程序托管的机器人。 有关详细信息,请参阅 应用程序托管媒体机器人。
代码示例
示例名称 | 说明 | Graph |
---|---|---|
Graph 通信 | 用于与 Microsoft 通信平台交互的 Graph 通信。 | View |