CFD 的语音提示和表达式

介绍

当我们在设置不同的组件时,可以发现有很多组件会共享一些功能。比如 “Prompt Playback”, “Menu”, “User Input” 以及 “Record” 组件,他们都会向来电者播放一段预设的音频来收集需要的数据。当你使用这些组件时,你可以使用相同的 “Prompt Collection Edition” 来定义提示音。

与提示音相同,当一个组件的属性需要填写一个表达式时,我们也可以使用 “Expression Editor” 创建表达式。

提示音类型

很多 CFD 组件给用户播放提示音来执行想要的操作,提示音有以下类型:

  • 音频(Audio file): 可以在文件系统中查找录音。或者在下拉列表中选择已添加的 WAV 音频。
  • 动态音频(Dynamic Audio file): 会根据输入的表达式,播放存储在本地的 WAV 音频。
  • 录音(Recorded Audio): 提示音存储为 RecordComponent.AudioId 变量,包含之前的呼叫者录音。
  • 文字转语音(Text to Speech Audio): 提示音由 AWS 的 Polly TTS engine 生成,储存为 WAV 文件,最后播放给呼叫者。呼叫结束时,将自动删除创建的文件。有关使用文本到语音的更多信息,请访问此处

使用动态音频文件提示时,创建文件名的表达式必须返回一个字符串,其中包含相对于项目音频文件夹的文件路径或文件的绝对路径。如果音频文件位于项目音频文件夹中,则只需按名称引用它,不需要特殊的路径信息。项目音频文件夹:

  • Windows: “C:\ProgramData\3CX\Instance1\Data\Ivr\Prompts\Callflows\project\”
  • Linux: “/var/lib/3cxpbx/Instance1/Data/Ivr/Prompts/Callflows/project/”

Prompt Collection Editor

Prompt Collection Editor 允许编辑者通过组件播放一段编辑过的音频,以实现想要的目的。

在这里你可以添加上面介绍过的 4 种不同的提示音,根据自己的需求,是使用表达式播放,还是从下拉列表中添加,抑或是从文件系统中添加。也可以选中提示音后上移或下移调整顺序。

音频文件夹

您可以通过右键单击使用提示音的组件打开项目音频文件夹,然后选择 “Open Audio Folder” 选项。从那里你可以删除未使用的 WAV 文件,使用 Windows 工具播放它们等。

Expression Editor

有许多组件的属性栏必须填写一个表达式(expression)。在这种情况下,从配置对话框配置组件时,使用文本框右侧的 “fx” 按钮打开 Expression Editor。

表达式可以是常量值,变量或这些内置函数之一:

  • AND: 对 2 ~ 20 个参数执行一个逻辑 AND 运算,返回 Boolean 值作为结果。
  • OR: 对最多 20 个参数执行逻辑 OR 运算,返回 Boolean 值作为结果。
  • NOT: 接收一个 Boolean 值,并返回与接收值相反的 Boolean 值。
  • EQUAL: 接收任意类型的两个参数,返回一个它们是否平等的 Boolean 值。
  • NOT_EQUAL: 接收任意类型的两个参数,返回一个它们是否不相等的 Boolean 值。
  • GREAT_THAN: 接收任意类型的两个参数,返回一个第一个值是否比第二个大的 Boolean 值。
  • GREAT_THAN_OR_EQUAL: 接收任意类型的两个参数,返回一个第一个值是否大于等于第二个的 Boolean 值。
  • LESS_THAN: 接收任意类型的两个参数,并返回一个 Boolean 值,指示第一个是否小于第二个。
  • LESS_THAN_OR_EQUAL: 接收任意类型的两个参数,并返回一个 Boolean 值,指示第一个参数是否小于或等于第二个参数。
  • CONCATENATE:连接每个字符串参数并返回结果字符串。可以有2到20个参数。
  • CONTAINS:接收2个字符串,如果第一个字符串包含第二个字符串,则返回 true,否则返回 false。
  • TRIM: 接收一个字符串并返回相同的字符串,删除前导和尾随不可见的字符(空格,换行: 等)
  • LEFT: 接收两个参数。第一个是要剪切的字符串。第二个是要剪切的字符数。返回一个字符串,它是原始字符串的前 N 个字符。
  • MID: 接收三个参数:第一个是要剪切的字符串,第二个是从零开始的剪切开始位置,第三个是要剪切的字符数。返回原始字符串的指定子字符串。
  • RIGHT: 接收两个参数:第一个是要剪切的字符串,第二个是要剪切的字符数(N)。返回一个字符串,它是原始字符串的最后N个字符。
  • REPLACE: 接收三个参数。第一个是必须进行替换的字符串。第二个是要查找和替换的文本。第三是替换文本。返回包含指定替换的字符串。
  • REPLACE_REG_EXP: 接收三个参数:第一个是必须进行替换的字符串,第二个是查找要替换的文本的正则表达式,第三个是替换文本。返回包含指定替换的字符串。
  • UPPER: 接收单个字符串参数并以大写形式返回此字符串。
  • LOWER: 接收单个字符串参数并以小写形式返回此字符串。
  • NOW: 不接收任何参数,并将当前日期和时间作为 DateTime 对象返回。
  • LEN: 以数字格式返回输入字符串长度。
  • SUM: 对 2 ~ 20 个 32 位数字求和,并返回结果。
  • SUM_LONG: 对 2 ~ 20 个 64 位数字求和,并返回结果。
  • NEGATIVE: 返回 32 位整数的负数。
  • NEGATIVE_LONG: 返回 64 位整数的负数。
  • MULTIPLY: 返回 2 ~ 20 个 32 位整数的乘积。
  • MULTIPLY_LONG: 返回 2 ~ 20 个 64 位整数的乘积。
  • DIVIDE: 接收两个 32位整数,并返回第一个数除第二个数的值。
  • DIVIDE_LONG: 接收两个 64 位整数,并返回第一个数除第二个数的值。
  • ABS: 返回一个 32 位整数的绝对值。
  • ABS_LONG: 返回一个 64 位整数的绝对值。
  • GET_TABLE_ROW_COUNT: 返回数据库查询结果接收的 table 行数。
  • GET_TABLE_CELL_VALUE: 接收三个参数:第一个是包含表作为数据库查询结果的变量,第二个是从零开始的行标识符,第三个是从零开始的列标识符。返回指定行和列中指定表的单元格的值。
  • GET_LIST_ITEM_COUNT: 返回收到的列表的项目数。该列表是组件 “3CX Get Queue Extensions” 返回的结果。
  • GET_LIST_ITEM: 接收两个参数。第一个是包含列表的变量,即3CX组件“Get Queue Extensions”返回的结果。第二个是从零开始的项目索引。返回指定列表中指定索引位置的项的值。
  • TO_BOOLEAN: 将接收的变量转换为 boolean 值。
  • TO_INTEGER: 将接收的值转换为 32 位整数。
  • TO_LONG: 将接收的值转换为 64 位整数。
  • TO_STRING: 将接收的转换为字符串。

CFD 用户手册

1. CFD 安装及简介

2. 创建一个简单的 CFD 流程

3. CFD 工作区

4. CFD 组件

5. CFD 条件和变量

6. CFD 提示和表达式

7. CFD 错误排查