电脑话务(IVR)简介

电脑话务,也可称之为语音IVR。例如拨通10086后,你会听到语音提示,指引你完成各种业务。可用于客户引导,人机交互业务处理,播放语音广告等。asterCC的IVR模块功能用于设置语音流程,控制语音流程间的转向。

添加IVR主流程

  • 添加ivr主流程,一个主流程可包含多个子流程,只有主流程可作为ivr的初始入口,有独立的内线号码。

IVR名称:任意填写,使用言简意赅的词语,表达此ivr的作用。

团队:指定此条数据适用于哪个团队,团队确认后,系统自动获取该团队下的语音文件和队列信息等。

内线号码:可以理解为电脑话务在系统中的电话号码,把电脑话务当作一个自动对话的电话机。内线号码只能填写数字且不能与其它设备的内线号码重复。

失败转向、转向目标: 主流程失败转向设置

  • 以下几种情况发生时,流程会自动转入失败转向所设置的转向目标。
  1. IVR达到最大循环次数。
  2. 调用webservice失败。
  3. 播放语音出错。
  4. 本节点未设置任何转向目标。
  5. 转向源未匹配到任何转向目标。
  6. IVR直接转分机失败。

失败结束语音:暂未启用。

IVR事件链接:IVR相关通话事件发送的目标http链接地址(可定置程序进行记录分析),可以不设置,默认为文件记录,使用预拨号拨入ivr时,选择文件记录,系统程序会装ivr路径记录到外呼任务的通话记录中,可根据其抓取用户在ivr中的输入。

该参数默认是隐藏,由系统配置文件中的 eventurl_display 参数来控制是否显示.

  • 打开一个IVR流程的编辑界面,可以看到三个标签列表:基本资料、动作和转向。

WebService超时时长: 此主流程中,执行所有调用webservice的相关动作的时,调用webservice程序的超时时长,发生调用超时情况时,会进入该流程的失败转向处理。

最大循环次数 : 允许连续调用此流程的最大次数,超过最大次数调用时,会进入失败转向处理。

保存变量 : 将流程中处理的指定的变量通过通话事件传递到坐席端或接收事件的程序中(2.0版本正式启用)。

挂机动作 :客户在IVR流程中,挂机后将要执行的动作,可以选择webservice.

设置动作

ivr名称:添加动作所属的IVR流程的名称

动作:可以通过下拉框为该IVR流程添加相关的动作.包括 应答,播放语音,放音收号,webservice,发送dtmf,播报数字,播报号码,播报金额,等待,运算,留言,忙线,阻塞,挂断,写文件,设置语言,读配置文件,发送传真

描述:对添加的动作进行简要的描述,用于描述该动作的意义

动作包含添加界面上动作参数列表中所示类型

应答

对进入IVR的话后答应,绝大部分流程应该首先设置此动作,如果线路支持progress(类似彩铃的原理),则不应答就可以进行放音,需要注意的是有一些应用如进入会议室等,应用内部会默认进行应答。

播放语音

播放指定语音,此动作期间用户的按键输入是无效的,不会被接收并将继续播放语音。所指定的语音类型:系统webserviceHTTP语音路径字符串TTS (已经不支持了)。

系 统

语音列表:选择需要播放的具体语音。

播放次数:在该IVR动作里,该语音最做循环播放多少次。

失败转向:该IVR动作失败后的转向。

失败转向目标:失败后具体的转向目标。

失败结束语音:该动作失败后要播放的语音。

描述:对该动作的简要描述说明。

webservice

  • 通过webservice方法动态获取的语音文件路径,再根据条件动态决定所播放的语音,或是需要外部系统进行动态生成语音等流程中可以用到,当然获取到的语音文件路径必须以某种方式存在于CTI服务器的文件系统中(例如:通过samba将外部目录映射到CTI服务器等方法) 。

WS 地址: 获取语音文件名所调用webservice的地址,可填写http://127.0.0.1/agentcallrate.php?wsdl

WS 方法名: 获取语音文件名所调用webservice的方法名,如:getannounce。

WS 参数: 获取语音文件名所调用webservice的参数,参数写法请参见下方介绍调用webservice动作的部分。

语音文件地址: 语音文件在文件系统中的目录,如果设置此项,则拨放语音的路径为 此项所设置的内容/webservice返回的结果,如果不设置此项则直接用webservice返回的结果。

播放次数: IVR流程中系统在挂机前自动播放该语音的次数

返回属性 :分为 语音路径 和 字符串 . 语音路径为 webservice返回的结果中获取到的语音文件的路径 , 字符串为 webservice返回的结果以字符串的形式进行返回

HTTP

HTTP 地址: 获取语音文件名所调用webservice的地址,可填写http://127.0.0.1/agentcallrate.php?wsdl

HTTP 参数:获取语音文件名所调用webservice的参数。

语音文件地址:填写服务器上语音文件的相对路径与HTTP参数的路径前缀相对应或完整路径,或者填写字符串仅限字符 : a-z A-Z 0-9 # *

返回属性:语音路径将返回语音文件的路径,选择字符串将返回字符串。

语音路径

  • 直接指定一个语音文件的绝对路径,然后由系统来对该语音文件进行播放

语音路径 :要播放的语音文件的绝对路径

字符串

  • 设定一个字符串,由系统对该字符串中的字符进行播放。

字符串 :要进行播放的字符串. 可设置的字符包括 : a-z A-Z 0-9 # *

放音收号

播放指定语音并获取用户按键输入,一旦用户开始按键,则语音将停止播放。↓

此动作的语音类型同播放话音动作同样分为 系统 , webservice , 语音路径 和 字符串 . 参见上方播放语音动作部分参数。

保存至变量: 用户的按键输入默认存入变量inputcode, 但inputcode值只在当前节点内有效果,例如主流程中有一个放音收号的动作,客户输入123,并存入inputcode,但一旦转入某个子流程后,inputcode就会被清空,并且如果在一个流程内有多次放音收号的动作,inputcode值只存最后一次的按键结果,所以,如果有以上情况,并且你希望本次动作的按键结果能随话务一直保留,则需要设置本参数,以便后续引用。此参数请以大写字母开头,且只允许包含大写字母,数字,中横杠“-” ,下划线“_” ,多个变量之间用 “|” 进行拆分.

输入位数限制: 限制此动作中允许的 最小按键位数(第一个输入框) 和 最大按键位数(第二个输入框). 0 代表无限制 .

  1. 当用户按键长度小于 最小按键位数,系统将认为输入错误,如果设定输入错误语音,将播放该语音。
  2. 当用户按键长度达到 最大按键位数,系统将停止收号并完成此动作,执行后续流程。

输入超时: 即用户开始输入后,最大输入间隔时长,如果输入间隔达到此参数值,系统则认为已完成输入,将停止收号并完成此动作,执行后续流程

以下三种情况系统将结束放音收号,执行后续流程:

  1. 达到输入位数限制中的最大按键位数(输入位数限制的第二个输入框)
  2. 达到输入超时时长
  3. 按#结束输入,#为系统默认结束符,无论何时输入#,系统都认为输入已完成,所以,#只能做为结束符提示用户输入,请不要将#设置为其它选项,要求用户输入。

如果放音收号动作中,可以确定输入按键都为固定长度(或可确定最大长度 | 或可确定最小长度),如你要求用户输入卡号,且卡号都是12位,则设置输入位数限制(第一个输入框为 12,第二个输入框也为 12),用户输入12位数字后,系统自动向下转向,不需要再按“#”或等待输入超时。如果为非固定长度可在语音提示中要求用户按#结束。

输入超时语音 : 用户输入间隔时间 超过设定的 “超时时间”,系统会播放该参数设定的语音文件

超时重播菜单 : 当用户输入超时后,是否重新播放当前菜单流程

输入错误语音 : 用户输入错误,系统会播放该参数设定的语音文件

错误输入重播菜单 :当用户输入错误后,是否重新播放当前菜单流程

是否检测转向源 :

webservice

调用外部webservice接口。↓

WS 地址: 获取语音文件名所调用webservice的地址(webservice接口请使用utf8编码)。

WS 方法名: 获取语音文件名所调用webservice的方法名。

WS 参数: 获取语音文件名所调用webservice的参数,参数写法为每个参数以竖线“|”分隔,参数可为系统内部变量(见下表)或流程中自定义的变量,也可以为字符串,字符串写法为[字符串内容]。例如要传参数为:主叫号码、流水号、当前语言、字符串abc.txt、主定义变量CARDNO,则写为 callerid|sessionid|CURLANG|[abc.txt]|CARDNO

内部变量列表:

  • systime
  • inputcode
  • callerid
  • didnumber
  • sessionid
  • TEAMID
  • TEAMIDENTITY
  • ENTERSYS
  • CURLANG
  • CURIVRID
  • AGENTNO
  • AGENTGROUPID
  • MODELTYPE
  • MODELID
  • 系统当前时间
  • 用户最后按键输入值
  • 主叫号码
  • 接入号码(DID)
  • 呼叫流水号
  • 团队ID
  • 团队标识
  • 话务接入系统时间(当前通话开始时间)
  • 当前话务语言
  • 当前IVR节点id
  • 话务最后一个相关坐席工号
  • 话务最后一个相关坐席组id
  • 业务模块类型
  • 业务模块id

注意大小写

WS 返回值:为webservice返回值加标识,以便保存全局变量时使用;webservice返回值要求为字符串,多个值之间以竖线“|”分隔,且第一个返回值会默认保存为inputcode,其它返回值按顺序依照此项设置进行标识,此参数请以大写字母开头,且只允许包含大写字母,数字,中横杠“-” ,下划线“_”。

全局变量: 将WS 返回值中标识的返回值设为全局可用变量,多个参数同样使用竖线“|”分隔,要设置的全局变量必须为WS 返回值中的参数,如WS 返回值 设置为 USERID|CREDIT , webservice 返回 1|001|321|ABC, 则第一个返回值 1 会存入内部变量inputcode中,根据WS 返回值的设置第二个参数标识为USERID,第三个参数标识为CREDIT , 如果想将这两个返回值都设为全局变量,则全局变量应设为USERID|CREDIT(先后顺序没有要求,USERID|CREDIT和CREDIT|USERID效果相同),如果只需要CREDIT设为全局变量,那么全局变量只设为CREDIT即可。

发送dtmf

DTMF(双音多频信号),如 拨打号码或拨打分机,都是发送多频信号。发送填写的内容的多频信号 ,内容支持格式 a-z A-Z 0-9 # *

播报数字

将内容中填写的数字以当前用户的朗读习惯进行播放声音

播报号码

将内容中填写的数字从左至右逐个播放声音

播报金额

将内容中填写的数字金额进行播放

系统会自动将填写到 `内容` 参数中的数字播放给客户听

等待

客户电话将会处于等待状态,可以设置 `时长` 参数,来控制等待的时间,时间单位为秒.如果后续还有其他的动作 ,将会在设置的等待秒数之后,继续执行动作

运算

是对 数值 或者 字符串 按照设定的运算方式进行运算后,将结果存储在 结果变量中

结果变量:将运算的结果存储到该变量

对象类型

  • 数值
    • 运算类型
      • 计算
      • 比较
      • 赋值
  • 字符串
    • 运算类型
      • 拼接
      • 比较
      • 赋值
      • 取右字符串
      • 取左字符串
      • 查找子字符串
      • 截取字符串
      • 字符串长度
    • 运算操作
      • 参数一 方式( 加 , 减 , 乘 , 除 ) 参数二
      • 参数一 方式( > , < , = , >= , < = , != ) 参数二
      • 参数一
    • 运算操作
      • 参数一 参数二
      • 参数一 方式( > , < , = , >= , < = , != ) 参数二
      • 参数一
      • 参数一 参数二
      • 参数一 参数二
      • 参数一 参数二
      • 参数一 参数二 参数三
      • 参数一

运算操作 :

  • 数值运算
    • 计算 : 通过设定的运算方式 将 参数一 和 参数二进行运算 然后将返回结果存储在 结果变量 里
    • 比较 : 按照设定的运算方式 将 参数一 与 参数二 进行比较,将比较的结果存储在 结果变量 里
    • 赋值 : 将 参数一 设定的值 存储到 结果变量里
  • 字符运算
    • 拼接 : 将 参数一 和 参数二 拼接成一个字符串,存储到 结果变量里
    • 比较 : 将 参数一 中的字符串 与 参数二中的字符串 按照设定的方式 进行比较,返回结果存储到 结果变量里
    • 赋值 : 将 参数一 设定的值 存储到 结果变量里
    • 取右字符串 : 在 参数一的字符串中,从右侧向左 取出 参数二中设定的数 的位数的 字符串
    • 取左字符串 : 在 参数一的字符串中,从左侧向右 取出 参数二中设定的数 的位数的 字符串
    • 查找子字符串 : 在 参数一的字符串中,查找 参数二中的字符串
    • 截取字符串 : 在 参数一的字符串中,取出 参数二(数字,起始位置) 到 参数三(数字,结束位置)的字符串
    • 字符串长度 : 求 参数一的字符串的长度

留言

可以选择一个留言应用

有关留言应用的设置,请参考:留言应用

忙线

客户将会听到忙音的提示 将会听到 悠长 的嘟嘟的声音,之后将会挂断客户电话

阻塞

客户将会听到忙音的提示吗,与 忙线听到的声音有明显的区别,将会听到 急促 的嘟嘟的声音,之后将会挂断客户电话

挂断

挂断客户的电话

写文件

将 `内容` 参数中的值 写到指定 文件夹下的 指定文件名的文件中

设置语言

设置为 指定的 语言

读配置文件

结果变量:需要存储从配置文件中获取参数的值变量

配置段: 配置文件中设置的 配置选项 段名称

配置项: 配置文件中的参数

发送传真

发送传真

传真分机: 可以选择一个传真分机,也可以使用自动,使用自动将需要填写一个传真号码

传真号码: 传真分机使用自动模式,该参数启用

传真文件: 要发送的传真文件的路径

设置目标

如果这个ivr结束后,需继续引导客户,那么我们需要设置ivr目标。

例如,你的第一条ivr是一则语音提示,“欢迎致电本公司,产品咨询请按1,技术服务请按2”。那么我们需要为按1和2设置一个去向。即按了1或2应该如何处理。

首先保存你这条ivr记录,然后在ivr列表中找到此记录,鼠标左键双击记录,打开ivr编辑界面,在编辑界面上点击【设置目标】按钮。

根据“转向”的不同,需要填写不同的参数。

  • 分机,当客户输入指定内容时(输入目标),将客户送至一部分机设备,让话务员与客户通话。
  • 呼入语音,一般配合“获取数据”的ivr使用,播报获取到的内容(需要选择后续动作=是,如果为否,仅是播放一则语音告知客户而已)。

输入,客户输入什么内容时,才触发此目标。

转向目标,选择你要播报的语音文件。

后续动作、动作类型,配合“获取数据”功能使用,譬如转向目标播放“您的卡内余额为”,接着播放后续动作的语音(号码,金额,数字)。

动作参数,指你程序返回值对应的变量,例如上文中提到的“CREDIT”,即“您的卡内余额为”+“CREDIT”(按照金额方式读出)。

返回语音,提高客户体验度,提示客户按*返回上一级菜单。

后续语音,提高客户体验度,播报返回值后(“您的卡内余额为”+“CREDIT”),提示“重听请按1”。

可参照下述实例中的步骤三。

  • 电脑话务,将客户送到另一个ivr流程中,适用于多级ivr导航。
  • 队列,将客户送到一个技能组的队列中,让某个坐席组为客户服务。例如人工服务请按0。

如果选择自动转向队列,那么系统会随机将客户送到某一个空闲队列。

跳过队列公告,进入队列后,忽略队列中设置的公告内容(即不播放队列公告中设置的语音内容)。

  • 振铃组,是分机设备的集合。客户进入振铃组后,按照振铃策略,依次有分机振铃,直到有话务员服务或者振铃超时(超时后,会结束通话)。
  • 应用
  • 会议室,将客户送到系统中的会议室,即多人群聊。
  • 语音邮件,让客户进行语音留言。
  • 忙线,系统告知电信商服务繁忙,然后我方会结束通话。客户收到电信商的忙音提示,客户自行挂机。
  • 挂断,即挂机,直接结束通话,客户电话显示通话结束。
  • 传真设备,指定传真设备,给出传真信号,让客户发送传真到系统。
  • 拨出路由

实例

要求:客户进线后,首先播报公司介绍,告知客户咨询请按1(转到客服部做产品解答),技术服务按2(转到技术部人工服务),产品许可查询按3(要求客户输入产品序列号,系统进入数据库查询后,告知客户当前许可信息)

准备工作

请确保你的系统中已存在坐席组客服部和技术部,且组内坐席能够使用内线分机互相通话。

语音录制要求:16位8kHz单通道PCM格式的wav文件。

  1. 录制语音1,内容“欢迎致电本公司,产品咨询请按1,技术服务请按2,许可查询请按3”;
  2. 录制语音2,内容“请输入产品序列号,按#键结束”
  3. 录制语音3,内容“您的产品授权坐席数为”
  4. 录制语音4,内容为“无当前产品的相关信息”
  5. 程序员需要编写一个webservice程序等待ivr的调用,收到客户输入的产品序列号后,查找到此产品的授权坐席数,并返回给ivr。
  返回格式要求为字符串,多个参数以|分割,第一位默认为输入目标(与ivr设置的输入目标相对应,稍后会具体介绍)
  格式举例1“1|50”,告知系统执行输入目标1,程序返回值50(即许可授权坐席数为50)
  格式举例2“0|0”,未查到许可信息,告知系统执行输入目标0

开始设置电脑话务

第一步:进入PBX高级管理→语音文件管理页面,上传录制好的语音文件。

点击【批量上传】,打开上传界面,选择你录制好的语音文件(如上图)。

然后点击【Uploads】按钮,开始上传,上传成功后,出现下图所示页面

选择录音属于哪个团队,如果不选团队,那么其它团队人员也可以使用此录音文件。

修改录音文件的显示名称,默认为上传时的录音文件名。

确认信息无误后,点击【保存】,录音上传完毕。

第二步:进入PBX高级管理→呼叫语音管理页面,建立语音数据,供电脑话务使用。

数据创建后,编辑这条数据,为其选择目标语音文件“语音1”。

系统ivr同一个流程支持多个语言版本播报(当然你需要录制相应语种的录音),我们这里语言都选择“简体中文”。确认语音文件选择无误后,点击【增加】。

看到下图的显示效果,表明你成功创建了一条呼叫语音。

重复步骤二,将其余三条语音也加入到呼叫语音中。

第三步:建立一条电脑话务,要求客户输入产品序列号(语音2),同时调用webservice程序,获取产品信息。

ivr名称,设置可以表达此ivr目的的词语“请输入产品序列号”;

内线号码,任意填写,只要不与系统当前存在的内线号码重复即可。使用内线分机拨打此内线号码,可以测试ivr流程。

播放语音,选择语音2,即进入此级ivr就先播放提示语“请输入产品序列号,按#结束”。

IVR类型,选择获取数据,因为我们要使用客户的输入内容去程序端获得许可信息;

获取数据类型,选择获取数据的程序类型,这里我们已webservice为例;

获取数据地址,你的程序访问地址,例如“http://192.168.1.88/getlic.php?wsdl”;

获取数据方法,调用你程序中的哪个方法;

获取数据参数,在ivr中抓取客户的输入内容,填写inputcode,即将客户输入内容赋值给inputcode变量;

获取数据返回值,将你程序的返回值赋值给一个变量,留着在此条ivr中使用。要求变量字母大写。我填写了“LICNO”;接收多个变量使用“|”分割。

准备工作中我们说到返回值的格式为“1|50”,首位为输入目标,不算作变量。所以实际上我们是将“50”赋值给“LICNO”变量。

此条ivr创建完毕后,我们打开此条记录的编辑界面,点击【设置目标】按钮,处理程序返回值。

如上图设置,按照之前约定,输入目标为1时,代表查询成功,我们需要播报语音3+返回值。

如上图设置,按照约定,输入目标为0时,代表查询失败,我们需要播报语音4.

有人会问到,“返回”字段是做什么用的?

为了提高交互体验,客户查询成功或失败后,可能还有其它业务要做,所以此处我们还可以选择一个语音,譬如“返回上级菜单请按*键”。

另外后续语音选择“是”时,可以看到“后续语音”,这个字段也是用来提高客户体验度的。例如选择一个语音“重听请按1”。

实际使用用,此条ivr的流程如下

语音3→客户输入→调用程序→得到返回值→使用返回值第一个变量匹配输入目标

匹配输入目标1→语音3+返回值→后续语音→返回语音

匹配输入目标0→语音4→返回语音

第四步:再建立一条电脑话务,播放开场白,即语音1。

这条ivr我们称为主ivr,即客户进线后,首先播报的语音。

ivr名称,设置可以表达此ivr目的的词语“主IVR”或“开场IVR”;

内线号码,任意填写,只要不与系统当前存在的内线号码重复即可。使用内线分机拨打此内线号码,可以测试ivr流程。

播放语音,选择语音1,即进入此ivr播放开场语音“欢迎致电本公司,产品咨询请按1,技术服务请按2,许可查询请按3”。

ivr类型,普通语音,即不需要程序辅助获取数据。

根据语音要求,我们为此ivr设置三个目标。

如上图,客户按1,我们将客户送到技能组1的队列中。让技能组1的坐席为客户服务。

同样的操作,我们再设置一个输入2,将客户送到技能组2的队列中。

当客户输入3时,我们要把客户送到步骤三中设置的IVR“请输入产品序列号”,如下图

测试

客服组和技术组均有坐席签入,且坐席分机已成功连接至系统。

使用系统中的任意一部内线分机,拨打第四步所创建电脑话务的内线号码50001,根据语音提示进行操作,看看每个环节是否正确,是否达到你预想的效果。

故障与调试

1.当使用ivr获取数据模式时,如何调试我的代码?

你可以在程序中进行一个写文件操作,这样你就知道ivr是否调到你的程序了。

如果未调用到你的程序,请检查获取地址和方法填写是否正确,以及网络上是否有限制,是否允许了ivr的访问。另外可以自行写个程序调用下你的程序,看看程序是否有错误。

2.测试中,在电话上按键后没有反映(ivr不能向下流转),依然重复播报语音

如果使用的是内线分机,请在pbx模版页面检查分机模版的dtmfmode参数是否正确。

如果是外部电话通过中继呼入,请在pbx模版检查中继模版的dtmfmode参数是否与线路商规定的dtmf编码符合。

还有可能是你的网关或其它设备的dtmf被禁用或配置不正确。

3.电话进入ivr或在ivr某一个环节,未听到相关语音,通话就断掉了

检查ivr中设置的语音文件是否存在。

zh/模块使用说明/pbx高级管理/电脑话务.txt · 最后更改: 2017/12/12 03:05 (外部编辑)
Recent changes RSS feed Debian Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki