IVR流程脚本语言编写规范 V1.2
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
IVR流程脚本语言规范
目录
一、系统功能概述 (3)
二、系统功能模块 (3)
2.1 系统提供的临时变量 (3)
2.2 用户自定义变量 (4)
2.3 系统语音节点 (4)
2.3.1 节点定义 (5)
2.3.2 节点操作 (5)
2.4 节点跳转 (5)
2.5 系统设置 (6)
2.5.1 释放节点 (6)
2.5.2 数据库配置 (6)
三、系统节点操作命令描述 (7)
3.1 放音操作 (7)
3.2 收号操作 (8)
3.3 转外呼操作 (8)
3.4 转其它业务模块操作 (9)
3.5 数据库操作 (9)
3.6 截取子字符串操作 (10)
3.7 截取字符串尾部的子字符串操作 (11)
3.8 变量赋值操作 (11)
3.9 数字运算操作 (12)
3.10 变量比较操作 (12)
3.11 节点跳转操作 (13)
四、系统节点跳转事件描述 (14)
4.1 按键跳转 (14)
4.2 数据库操作跳转 (14)
4.3 变量比较跳转 (15)
4.4 系统跳转 (15)
4.5 无条件跳转 (16)
五、IVR流程脚本编写过程及示例 (16)
5.1 编写基本原则 (16)
5.2 编写步骤 (16)
5.3 编写示例 (16)
一、系统功能概述
我公司IVR流程脚本语言是针对“iSP6000综合信息服务系统”而设计的,用于实现语音流程定制。IVR流程脚本语言采用开放式结构,以独立文本文件为信息存放基础,简便易学,维护方便。
可以使用“UltraEdit.exe文本编辑器”、记事本或写字板等工具编辑修改。
通过IVR流程脚本语言,可以实现以下功能:
◆自动语音应答:如播放语音、菜单选择、收号、数据库操作等。
◆语音播放支持播放录制文件和文本实时转换两种方式。
◆支持Mysql和Oracle两种数据库。
◆支持加减乘除运算、逻辑判断、字符串运算等。
◆支持多种跳转方式:如按键跳转、数据库查询结果跳转、变量运算跳转等。
◆系统能够将客户IVR交互活动记录到电话跟踪数据库中。
◆以独立文件为信息存放基础。
二、系统功能模块
2.1 系统提供的临时变量
系统提供一系列临时变量,变量在每次建立呼叫时产生,在语音节点中可以引用这些变量。变量名称约定如下,必须是大写字母:
[CALLLEG]:表示当前呼叫的CallLeg,长度不超过64的字符串
[CALLER_NUMBER]:表示当前呼叫的主叫号码,长度不超过32的字符串
[CALLED_NUMBER]:表示当前呼叫的被叫号码,长度不超过32的字符串
[USER_INPUT]:表示用户最近的DTMF按键,长度不超过32的字符串
[DB_SQL_RESULT]:表示数据库操作的结果,整数
[CALL_BEGIN_TIME]:表示当前呼叫的呼叫开始时间,time_t类型
[CALL_BEGIN_TIME_YYYY-MM-DD_HH:MM:SS]:呼叫开始时间的字符串型式
[TIME_NOW]:表示当前时间,time_t类型
[TIME_NOW_YYYY-MM-DD_HH:MM:SS]:当前时间的字符串型式
[TIME_NOW_YYYY-MM-DD]:当前时间的字符串型式
[TIME_NOW_YYYY_MM_DD] :当前时间的字符串型式
[TIME_NOW_YYYYMMDD] :当前时间的字符串型式
[TIME_NOW_MMDD] :当前时间的字符串型式
[TIME_NOW_YYYYMM] :当前时间的字符串型式
[TIME_NOW_YYYY_MM] :当前时间的字符串型式
[TIME_NOW_YYYY] :当前时间的字符串型式,年
[TIME_NOW_MM] :当前时间的字符串型式,月
[TIME_NOW_DD] :当前时间的字符串型式,日
[TIME_NOW_HOUR] :当前时间的字符串型式,时
[TIME_NOW_MINUTE] :当前时间的字符串型式,分
[TIME_NOW_SECOND] :当前时间的字符串型式,秒
[TIME_NOW_TODAY_SECONDS]:表示当前时刻从当天凌晨零点以来的秒数,整数
2.2 用户自定义变量
用户可以自定义一系列变量。自定义变量属于节点操作中的一个参数,在节点操作中用到变量时进行定义,一个流程中只需在最早用到该变量的节点操作中定义,之后的节点操作可以引用该变量。一个流程中自定义变量名称不能重复,也不能与系统临时变量相同。
格式:[变量名],变量类型,变量长度
(变量类型int和字符串两种)
变量支持int、char两种类型。
例如:[code],int,4
表示:定义一个名称为code,类型为int,长度为4位的变量。
2.3 系统语音节点
一个完整的IVR流程是由若干个语音节点组成的,系统最多支持99999个语音节点
(1-99999)。目前试验平台分配给学生用为每人100个节点(1-100)。一个语音节点的定义由节点定义和节点操作两种语句实现。
2.3.1 节点定义
对节点的属性进行定义,节点必须定义属性后才能生效。
语法:
STATE_ATTRIBUTE state aollowCount timeout(s)
参数:
State:节点代号,是系统唯一的编号,允许1到100之间的数字,在一个流程中,节点代号是不可重复的。
aollowCount:最多允许循环次数,表示这个节点允许跳转的最大次数,当跳转到这个节点的次数达到这个数值时,系统产生max_state_count事件,并根据这一事件的配置进行节点跳转;
timeout(s):超时时间,表示在这个节点可以停留的最长时间,超过时间系统自动挂机。
例如:
STATE_ATTRIBUTE 1 10 600
表示语音节点1,最多允许循环10次,超时时间为600秒。
2.3.2 节点操作
对节点的操作进行定义,根据操作类型的不同,操作命令和参数均不相同。同一节点如果有多个操作,可以用写多条语句。某些操作命令会产生返回事件,如:收号操作返回用户按键、数据库操作返回操作结果等,返回事件可用于节点跳转。
语法:
操作命令STATE 参数1参数2 参数3 …..
操作命令:完成一个基本操作,如:放音、收号、数据库操作等。系统定义了10多个节点命令,如:OPERATION_PLAY、OPERATION_GET等,具体用法详见第三章:系统节点操作命令描述。
参数:
State:节点代号。
参数1、参数2、参数3…:不同的操作节点命令,需要不同的参数。
2.4 节点跳转
由于IVR流程是由若干个语音节点组成的,所以节点与节点之间需要根据设定的规则进行跳转,跳转是由节点操作的返回事件触发的。