Dialogflow Phone Gateway

Dialogflow Phone Gateway 功能可为您的代理提供电话接口。 它用于构建可与您的呼叫中心网络的其他部分集成的各种交互式语音响应 (IVR) 解决方案。目前,您可以选择一个由 Google 托管的电话号码。

如需了解电话网关价格和配额信息,请参阅价格以及配额和限制页面。

限制

语言支持

此集成仅支持每个代理使用一种语言。

如果为代理启用了增强型语音模型,则此集成仅支持以下语言:

  • 英语 (en)
  • 英语 - 美国 (en-US)

如果代理停用了增强型语音模型,请参阅语言参考文档页面上的电话列,查看受支持语言的列表。

电话号码支持

仅支持使用美国电话号码拨打和接听电话。

准备工作

在阅读本指南之前,请先完成以下事项:

  1. 阅读 Dialogflow 基础知识
  2. 执行设置步骤

创建代理

如果尚未创建代理,请立即创建一个:

  1. 转到 Dialogflow ES 控制台
  2. 如果系统要求登录 Dialogflow 控制台,请登录。如需了解详情,请参阅 Dialogflow 控制台概览
  3. 点击左侧边栏菜单中的创建代理 (Create Agent)。如果您已有其他代理,请点击代理名称,滚动到底部,然后点击创建新代理 (Create new agent)。
  4. 输入您的代理名称、默认语言和默认时区。
  5. 如果您已经创建了项目,请输入该项目。如果要允许 Dialogflow 控制台创建项目,请选择创建新 Google 项目 (Create a new Google project)。
  6. 点击创建 (Create) 按钮。

将示例文件导入代理

本指南中的步骤对您的代理进行了假设,因此您需要import为本指南准备的代理。 导入时,这些步骤使用“恢复”(restore) 选项,该选项会覆盖所有代理设置、意图和实体。

如需导入文件,请按以下步骤操作:

  1. 下载 telephony-bot.zip 文件。
  2. 转到 Dialogflow ES 控制台
  3. 选择您的代理。
  4. 点击代理名称旁边的设置 按钮。
  5. 选择导出和导入标签页。
  6. 选择从 ZIP 文件恢复 (Restore from ZIP),然后按照说明恢复下载的 zip 文件。

启用 Beta 版功能

确保已启用 Beta 版功能:

  1. 转到 Dialogflow ES 控制台
  2. 选择一个代理。
  3. 点击代理名称旁边的设置 按钮。
  4. 常规 (General) 标签页中向下滚动,并确保已启用 Beta 版功能 (Beta Features)。
  5. 如果您进行了更改,请点击保存 (Save)。

设置电话网关

如需设置您的网关,请按以下步骤操作:

  1. 选择一个提供商:
    1. 转到 Dialogflow ES 控制台
    2. 选择您的代理。
    3. 点击集成 (Integrations)。
    4. 点击 Dialogflow Phone Gateway
  2. 配置 Phone Gateway:
    1. 选择语言。
    2. 选择电话号码的国家/地区代码。
    3. 可选。选择首选区号。
    4. 点击下一步 (Next)。
  3. 选择一个号码:
    1. 从列表中选择一个电话号码。
    2. 点击创建 (Create)。
  4. 大功告成:
    1. 网关现已生效。
    2. 可选择更改环境
    3. 保存显示的电话号码并关闭对话窗口。您可以再次点击 Dialogflow Phone Gateway 集成按钮以检索此信息。

拨打电话号码

您现在可以拨打该号码并按照简单的语音提示进行操作。各种互动均在您的代理中定义。

检查意图

现在您已经有了一个有效的电话网关代理,我们来看看您导入的意图。 这可帮助您了解如何构建自己的电话网关代理。

欢迎来电者

当您呼叫该号码时,代理会向您致意并提供一个选项列表。请按以下步骤查看这是如何配置实现的:

  1. 转到 Dialogflow ES 控制台
  2. 选择您的代理。
  3. 点击意图 (Intents)。
  4. 点击默认欢迎意图
  5. 向下滚动到事件 (Events) 部分。请注意,欢迎 (WELCOME)电话欢迎 (TELEPHONY_WELCOME) 事件都存在,这意味着所有类型的欢迎事件都会触发此意图。或者,您也可以创建单独的意图,每个意图用于某个特定的欢迎事件。
  6. 向下滚动到响应 (Responses) 部分,然后点击 DIALOGFLOW PHONE GATEWAY 标签页。
  7. 请注意,合成语音响应包含了您在拨打该号码时听到的欢迎消息。

对测试命令的响应

在您回复“test”后,代理提供了一个新的选项列表。请按以下步骤查看这是如何配置实现的:

  1. 点击意图 (Intents)。
  2. 点击测试电话意图 (Test Telephony Intent)。
  3. 向下滚动到响应 (Responses) 部分,然后点击 DIALOGFLOW PHONE GATEWAY 标签页。
  4. 请注意,合成语音响应包含了您在说出“test”后听到的响应。

设置上下文

说完“test”后,您可以执行两种命令:“transfer”或“terminate”。这并非电话网关代理的限制,而是仅与此意图的定义方式有关。与这些命令相关联的意图会随上下文一起提供。请按以下步骤查看这是如何配置实现的:

  1. 滚动到顶部的上下文 (Context) 部分。
  2. 注意输出内容上下文 TestTelephonyIntent-followup
  3. 点击意图 (Intents)。
  4. 点击测试电话意图 (Test Telephony Intent) 旁边的展开按钮。
  5. 点击测试电话意图 - 终止 (Test Telephony Intent - Terminate)
  6. 滚动到顶部的上下文 (Context) 部分。
  7. 注意输入内容上下文 TestTelephonyIntent-followup

终止通话

当您回复“terminate”后,代理会说“goodbye”并终止通话。请按以下步骤查看这是如何配置实现的:

  1. 向下滚动到训练短语 (Training phrases) 部分,并记下用于终止通话的短语。
  2. 向下滚动到响应 (Responses) 部分,然后点击 DIALOGFLOW PHONE GATEWAY 标签页。
  3. 查看合成语音响应,其中包含“goodbye”。
  4. 请注意,已启用将此意图设置为对话结束 (Set this intent as end of conversation)。如果启用此选项,Dialogflow 会在播放完其他所有音频提示后终止通话。

电话网关富响应消息

本示例中的意图使用富响应消息来进行电话网关响应。 以下是您可以使用的类型:

  • 播放音频:播放提供的音频文件。指定包含要播放音频的 Cloud Storage 对象的 URI。例如,'gs://bucket/object'。该对象必须包含一个单声道 8kHz 的线性 PCM 音频(2 字节/采样)。
  • 合成语音:将提供的文本合成为音频并播放。或者,您可以启用使用默认标签页中的响应作为第一个响应 (Use response from the DEFAULT tab as the first response),这将使用默认响应来合成语音响应。如果您只定义了默认响应,并且未启用使用默认标签页中的响应作为第一个响应 (Use response from the DEFAULT tab as the first response),则系统只会将 QueryResult.fulfillment_text 中填充的文本(填充了随机选择的文本响应)合成为音频。
  • 转接来电:将来电者转接到另一个号码。 转接的电话上花费的时间包含在总通话时长中,并且在通话结束之前,会一直收取 Dialogflow 费用

代理设置

您可以控制语音合成的各个方面。请参阅代理语音设置

使用 Dialogflow 模拟器

在测试或试用电话网关代理时,您无需拨打电话。 您可以通过 Dialogflow 模拟器与代理进行互动并接收音频响应:

  1. 输入“hello”并按回车键
  2. 默认响应 (Default Response) 更改为 DIALOGFLOW PHONE GATEWAY
  3. 点击播放音频 (Play Audio) 按钮听听代理响应
  4. 继续与代理进行对话

免费电话号码

您可以申请一个包含 833 区号的电话号码。 请注意,免费电话号码的定价较高

事件

此集成服务调用以下事件

事件
说明
TELEPHONY_WELCOME 当有人呼叫与 Dialogflow 代理关联的电话号码时即会触发。

代理预热

当最终用户调用 Dialogflow Phone Gateway 代理时,Dialogflow 首先加载该代理,以便快速响应初始最终用户话语。代理加载时,手机会持续响铃。Dialogflow 通过向代理发送检测意图请求来实现此目的。此请求的文本是 TELEPHONY_WARMUP

检索来电者的电话号码

如果您使用的是 Dialogflow Essentials 版本,则可以通过网络钩子请求中的 OriginalDetectIntentRequest.payload 字段来检索 caller_id 值。在 Dialogflow Trial 版本中,caller_id 值会被遮盖。