这是本文档旧的修订版!
====== 如何利用IVR功能验证信用卡的有效性 ====== <note warning> 实现流程效果:输入信用卡卡号,然后验证位数。再提示输入过期日期 YYMM,验证日期合法性,最后将卡号和日期发送给http/webservice进行判断。假设http/webservice返回valid或者invalid,返回不同的值 </note> ===== 添加话务呼叫语音 ===== 以"欢迎"语音为例,其余语音同此方法。左侧管理列表,点击[PBX高级管理]->[呼叫语音管理],点击[添加]按钮,再点击[添加语音]->[TTS],如下图: {{:zh:实际案例指导:欢迎致电信用卡中心.png?700|}} ===== 添加IVR主流程 ===== 主流程用来判断卡号的正确性。左侧管理列表,点击[PBX高级管理]->[电脑话务IVR]页面下的[添加]按钮,打开IVR主流程添加页面,如下图: {{:zh:实际案例指导:信用卡验证.png?700|}} ==== 动作 ==== 1.添加"应答"动作。 {{:zh:实际案例指导:主ivr_应答动作.png?700|}} 2.添加"放音收号"动作,播放"欢迎致电信用卡中心,请输入您的信用卡号,按井号结束",然后将输入的号码存到大写的"CARDNO"变量里。 {{:zh:实际案例指导:主ivr_放音收卡号动作.png?700|}} 3.添加"播放语音"动作,播放"您输入的卡号为:",播放次数为1次。 {{:zh:实际案例指导:主ivr_确认卡号_播放语音动作01.png?700|}} 4.添加"播报号码"动作,播放刚才变量CARDNO存储的号码,此处要区分"播报号码"和"播报数字"。 {{:zh:实际案例指导:主ivr_确认卡号_播报号码动作02.png?700|}} 5.添加"放音收号"动作,播放"确认请按1,取消请按2",并将收到的号码存储到名为"OK1"的变量里,以备"转向"中使用。 {{:zh:实际案例指导:主ivr_确认卡号动作.png?700|}} ==== 转向 ==== 在主IVR动作中,最后一步是放音收号动作,收到的号存储到变量"OK1"中。 当OK1为1时,跳转到"IVR子流程一"中,进入"验证有效日期"的电脑话务IVR中。 {{:zh:实际案例指导:主ivr_转向01.png?700|}} 当OK1为2时,跳回到本主IVR,进入"获取信用卡卡号"的电脑话务流程中。 {{:zh:实际案例指导:主ivr_转向02.png?700|}} ===== 添加IVR子流程一 ===== 此流程用来判断信用卡有效日期的正确性。到[转向]标签下,转向选择"电脑话务",转向目标选择"新建",点击[确定]按钮,页面会自动跳转到子IVR创建/编辑页面,如下图: {{:zh:实际案例指导:如何进入子ivr页面01.png?700|}} 再次编辑时,可以点击左侧管理列表,点击[PBX高级管理]->[电脑话务IVR]页面找到主IVR,点击[查看子流程]按钮,进行编辑,如下图: {{:zh:实际案例指导:如何进入子ivr页面02.png?700|}} ==== 动作 ==== 1.添加"放音收号"动作。播放"请输入信用卡的有效日期:例如2015年10月,则输入1510",然后收到的日期赋值到DATENO变量。 {{:zh:实际案例指导:子ivr_放音收号动作01.png?700|}} 2.添加"播放语音"动作。播放"您输入的有效日期为:",播放次数为1次。 {{:zh:实际案例指导:子ivr_有效期验证01.png?700|}} 3.添加"播报号码"动作,播放刚才存到"DATENO"变量中的日期号码。 {{:zh:实际案例指导:子ivr_有效期验证02.png?700|}} 4.添加"放音收号"动作,播放"确认请按1,取消请按2",并将收到的号码存储到名为"OK2"的变量里,以备"转向"中使用。 {{:zh:实际案例指导:子ivr_有效期验证03.png?700|}} ==== 转向 ==== 在主IVR动作中,最后一步是放音收号动作,收到的号存储到变量"OK2"中。 当OK2为1时,跳转到"IVR子流程二"中,进入"http/webservice"的电脑话务IVR中。 {{:zh:实际案例指导:子ivr二_http_01.png?700|}} 当OK2为2时,跳回到本IVR,进入"获取信用卡有效日期"的电脑话务流程中。 {{:zh:实际案例指导:子ivr二_http_02.png?700|}} ===== 添加IVR子流程二 ===== 此流程用来获取http/webservice的返回值,并将其赋给"R1"全局变量,使之在整个IVR中都可使用。并且返回值中会默认返回一个inputcode值。 ==== 动作 ==== 添加"HTTP"动作,传进参数,返回个返回值,赋给一个全局变量备用。 {{:zh:实际案例指导:子ivr三_动作传参返回值_01.png?700|}} <note important>注意: 1.HTTP的参数格式是:inputcode|cardno=CARDNO|validdate=DATENO,其中cardno和validdate是HTTP里的参数,CARDNO和DATENO是IVR获取到的"卡号"和"日期"。默认的第一位是inputcode,不用填写,变量与变量之间用 | 进行分隔。所以此处填写:cardno=CARDNO|validdate=DATENO。 2.HTTP返回值存储格式:inputcode|返回值,其中默认第一位inputcode,不用填写。"返回值"即HTTP返回的值赋给它。若返回多个值,用 | 进行分隔。 3.HTTP返回值要想用作全局变量,名需要大写,其次,全局变量的名要与HTTP返回值完全一样。 </note> ==== 转向 ==== 当inputcode为 1时,表示返回正确,并转向"IVR子流程三",用以播放"您的信用卡可用额度为多少"。 {{:zh:实际案例指导:子ivr三_转向返回值_01.png?700|}} 当inputcode为 0时,表示返回错误,并转向"IVR子流程四",用以播放"您输入的用户不存在,按 * 键请重新输入"。 {{:zh:实际案例指导:子ivr三_转向返回值_02.png?700|}} ===== 添加IVR子流程三 ===== 此流程用来播报"信用卡可用余额,重复收听请按零,结束请挂机"。 ==== 动作 ==== 1.添加"播放语音"动作。播放"您的信用卡额度为:"。 {{:zh:实际案例指导:子ivr3_动作_01.png?700|}} 2.添加"播报金额"动作。播放HTTP的返回值,返回值被存储在全局变量"R1"中。 {{:zh:实际案例指导:子ivr3_动作_02.png?700|}} 3.添加"放音收号"动作。播放"重复收听请按0,结束请挂机"。 {{:zh:实际案例指导:子ivr3_动作_03.png?700|}} ==== 转向 ==== 当"放音收号"动作中的 inputcode为 0,那么转向本IVR,再播放一遍"可用余额"。 {{:zh:实际案例指导:子IVR3_转向_01.png?700|}} ===== 添加IVR子流程四 ===== 此流程用来,当"IVR子流程二"中inputcode为 0时,表示返回错误,并转向此流程。 ==== 动作 ==== 添加"放音收号"动作,播放"您输入的用户不存在,按*请重新输入"。 {{:zh:实际案例指导:子ivr4_动作_01.png?700|}} ==== 转向 ==== 当"放音收号"动作里,收到*号,则转向最开始的"信用卡卡号验证"的电脑话务IVR。 {{:zh:实际案例指导:子ivr四_转向_01.png?700|}}