语音杂志平台流程开发培训指南.ppt

上传人:仙人指路1688 文档编号:2960527 上传时间:2023-03-05 格式:PPT 页数:63 大小:2.10MB
返回 下载 相关 举报
语音杂志平台流程开发培训指南.ppt_第1页
第1页 / 共63页
语音杂志平台流程开发培训指南.ppt_第2页
第2页 / 共63页
语音杂志平台流程开发培训指南.ppt_第3页
第3页 / 共63页
语音杂志平台流程开发培训指南.ppt_第4页
第4页 / 共63页
语音杂志平台流程开发培训指南.ppt_第5页
第5页 / 共63页
点击查看更多>>
资源描述

《语音杂志平台流程开发培训指南.ppt》由会员分享,可在线阅读,更多相关《语音杂志平台流程开发培训指南.ppt(63页珍藏版)》请在三一办公上搜索。

1、语音杂志平台流程开发培训指南,第2页,第3页,平台模块,第4页,介绍提纲,编译器的安装及使用完成一个业务流程动作变量例解流程开发常见问题处理讨论考试,第5页,编译器的安装及使用,1.1绿色安装1.2菜单使用,第6页,1.2菜单的使用,VIVR 界面示例图,第7页,1.2菜的使用,File命令的使用New Project 新建项目New StateMachine新建状态机New text新建文本文件Open Project打开项目Open打开文件Save保存文件Save as另存为Close Project关闭项目Print打印Print Setup打印设置Exit退出,Edit命令的使用Ali

2、gn left(只在图形编程界面)图标左右对齐Align top(只在图形编程界面)图标上下对齐Undo(只在文字编程界面)撤消Cut剪切Copy复制Paste粘贴Delete删除,第8页,1.2菜单的使用,File命令的使用New Project 新建项目New Project:选择Source File格式 新建一个业务流程。这个project是一个将以后缀为FRM格式保存的文件。按下new project这菜单时,程序就为你建了一个新开始的业务流程。,第9页,介绍提纲,编译器的安装及使用完成一个业务流程动作变量例解流程开发常见问题处理习题,第10页,2.1流程文件介绍,配置文件:.sc

3、文件流程源文件.cod 文件编译生成的可执行流程文件,输出文件,编译、构造通过后,产生的二进制文件.lbj 文件编译过程中产生的连接编联文件,由编译器管理.fdp 文件项目文件,用于流程管理的项目,由编译器管理 在上述的几个文件当中,只有.sc文件是我们用来编辑业务逻辑使用的,其他文件都是由编译器产生的,下面,我们再来详细研究一下.sc文件的内部结构。,第11页,#function main/主函数main:stWait Connect(0)-stExit/Add users code:stExit RETURN 0,第12页,2.2流程源文件.sc的结构,文件头说明/filename:xxx

4、.sc version:/变量规划#declare 自定义变量#iniparam 配置参数常量说明#define 宏的定义主程序体,第13页,2.2流程源文件.sc的结构,文件头说明,#define 宏定义说明例:文件头中说明#define PromptThanks 2000主程序体中PROMPT PrompThanks等价于PROMPT 2000#iniparam 配置参数常量说明例:#iniparam int DBA_ID文件头中说明#iniparam STRING UserData主程序体中ASSIGN SR9,UserData配置文件(后缀为.ini)中Parameters DBA_I

5、D=25UserData=12345则,主程序体中该语句等价于ASSIGN SR9,”12345”,第14页,IVR流程ini文件里的注释,只能使用#和;不能使用/,变量内容128个字节 编写ini文件时,下面内容定义String类型的常量,其中V41File1和V41File2的注释正确,V41File3注释错误,V41File3读入IVR时值为“Conf.v41/Conference”。Parameters V41File1=Conf.v41;Conference V41File2=Conf.v41#Conference V41File3=Conf.v41/Conference,第15页,

6、2.2流程源文件.sc的结构,文件头说明,#declare IR 整型自定义变量说明#declare SR 字符型自定义变量说明#declare FR 浮点型自定义变量说明#function main 全局变量(所有函数中可使用):例:文件头中说明#declare SR sTelNo#declare IR iMax=1(初始化)局部变量(某个函数中可使用):例:主程序中的某个函数main#declare IR iMax=0:stWait,第16页,2.2流程源文件.sc的结构,主程序体,它通常是一组函数定义的系列,每一函数定义可描述如下:函数名:状态1动作a1参数动作an参数事件e1状态s1事

7、件e2状态s2N事件en状态sn动作a1 参数M动作am 参数:状态2同上:状态m函数定义系列中的第一个函数必须是主函数(main),第17页,流程主函数体,第18页,2.3 流程的启动与结束,流程的启动与结束,开始状态:stWait在stWait 状态下以Connect事件启动流程结束状态:stExitConnect(0)-正常 Connect(2)-外呼在stExit 状态下以 Return 0 动作结束流程,第19页,2.4注释,注 释,/单行注释/*/多行注释,第20页,2.5完成一个业务流程注意事项,注意事项,为了设计图形业务流程的思路清晰,建议在作设计前画出流程图。为了便于检查,在

8、设计图形业务流程的时候要画线清晰分明。要作好寄存器数据的规划,避免数据的冲突。有的参数要栏填写指定的数据。有的动作有事件发生,需要确定每发生一个事件的前因后果。主函数只能名为main,在开始一个业务流程的时候自动生成。在一个业务流程程序里面只能有一个主函数。子函数名不能为main,可根据子函数的意义定为其它文件名。在一个业务流程程序里面可以有多个子函数。,第21页,介绍提纲,编译器的安装及使用完成一个业务流程动作变量例解流程开发常见问题处理习题,第22页,3.1数值类,数字运算动作,div I1,I2/把I1整除I2的值赋给变量I1mod I1,I2/把I1整除I2的余值赋给变量I1IntRa

9、nd I1/产生一个0I1的随机整数,结果存于IR0中FloatRand I1 I2/产生一个0I1之间的随机浮点数,精确到小数点后I2位。结果存于FR0中,第23页,3.1数值类,Assign 赋值Assign I1,I2,功能:整数I2的赋值给变量I1,例子:Assign IR1,93 将93赋值给IR1,运算结果是IR1等于93。,Add 加Add I1,I2,功能:把整数I2的值加入到变量I1,例子:Add IR1,65 把整数65的值加入到变量IR1,若IR1原值为35,运算结果得:IR1=100。,数字运算动作,inc I,第24页,3.1数值类,Mul 乘Mul I1,I2,功能

10、:乘法运算,把(I1*I2)的值赋给变量I1,例子:Mul IR1,3 若IR1等于8,把(8*3)的值赋给变量I1,即运算结果为:IR1=24。,Sub 减Sub I1,I2,功能:把(I1-I2)的值赋给变量I1,例子:Sub IR1,20 若IR1为30,即运算结果为IR1=10。,数字运算动作,第25页,接收按键,Digit I1 接收一位话机按键,I1为最大时间(秒),接收到的字符值返回SR0,数字值返回IR0(“*”=11,“#”=12)。结束时产生事件:StopDigits(值)正常收号结束 TimeOut 超时没有收到按键,Input I1,I2 接收多位话机按键,I1为按键位

11、数,I2为最大时长(秒),接 收到的字符返回SR0。按键位数最多31位。结束时产生事件:StopDigits(值)正常收号结束,或收到一个终止按键。TimeOut 超时没有收到规定长度的按键,第26页,3.2字符类,字串运算动作,ParseParam S1,I1,S2 例如:S1=”param1$param2$param3$param4”S2=”$”ParseParam S1,2,”$”取出第二个参数param2。StrLTrim S1例如:Assign SR1,_ _ _ _abcdStrLTrim,SR1去掉SR1中字符串“_ _ _ abcd”左边的空格,即得字符串:“abcd”。,第2

12、7页,3.2字符类,字串运算动作,StrSub S1,I1,I2(取子串)例如:StrSub abcdefghijk,3,6 取字串abcdefghijk在第3个字符开始到第6个字符,即取得字符串cdef存入SR0中。,StrCat S1,S2(连接字符串)例如:ASSIGN SR1 abc StrCat SR1,def先赋值给SR1,SR1=abc,相联“abc”和“def”,得到字符“abcdef”存于SR1中。,第28页,:stPlayPrompt ClearDTMF SETDTMF?ASSIGN SR1,.voxfee STRCAT SR1,$caller STRCAT SR1,vox

13、 PLAYFILE SR1 StopPlayBack-stEnableAccount DialTerminate-stEnableAccount Failed-stEnableAccountstPlayPrompt ClearDTMF SETDTMF?ASSIGN SR1,.voxfee STRCAT SR1,SR0 STRCAT SR1,vox PLAYFILE SR1 StopPlayBack-stEnableAccount DialTerminate-stEnableAccount Failed-stEnableAccount,第29页,:stGetNowTime/取系统当前时间 Ass

14、ign IR1,1 NowTime Assign IR2,IR0 TimeToStr IR0,hms/把当前时间转换成“YYYYMMDD123456”形式 Assign SR2,SR0 StrSub SR2,9,12/去掉“YYYYMMDD”Assign SR2,SR0/SR2:hhmmss TimePart IR2,7/按I2指定的类型,取I2表示的时间的相应部分,返回值为星期(0-6)Equal IR0,0/判断星期几Passed-stSetIR0Failed-stGetNowTime1,第30页,3.2字符类,字串运算动作,StrLen S1(取字串长度)例如:StrLen abc 取得

15、字符串abc的长度为3,将长度3存于IR0中。,StrRight S1,I2(取字符串右侧子串)例如:StrRight abc,2 取得字符串abc 右边2个字串,将字串bc存于SR0中。,第31页,:stInput1SETDTMF#/输入取消号码input 7,15StopDigits(#)-stCheckStopDigits-stCheckTimeOut-stCheckFailed-stCheck:stCheckParseParam SR0,1,#Assign id,SR0/取消的ID号码StrLen SR0CASE IR0/ID为6位CASE(6)-stunregCASE-stqx,第3

16、2页,邮箱管理动作,邮箱管理动作例子,第33页,MakeCall200 S1,S2,S3产生一个类似200业务的呼叫。S1为被叫号,S2为主叫号,S3为自定义数据字串。系统变量$Called改为S1。CallTerm(0)-被叫应答,成功CallTerm(1)-无人接CallTerm(2)-被叫市话忙CallTerm(3)-被叫长话忙(呼出失败)CallTerm(4)-拥塞CallTerm(5)-空号CallTerm(-1)-其他情况,3.3呼叫控制类,第34页,3.3呼叫控制类,EnableCall发程控计费应答信号EnableCallI1 如果流程是应答流程,且在之前执行AnswerCal

17、l 0不计费的动作,执行此动作开始计费,否则不应执行此动作。含意:I11 发应答不计费信号I10 发应答计费信号,BillBegin 启动计费BillBegin I1 I2 S3I1为计费方式(0:不计费;1:按主叫;2:按被叫;3:按原主叫;4:按账号;5:按计费号码;6:按原被叫);I2是否计算可打时长(按帐号计费时用),0:否;1:是,如果需计算可服务时长,结果存放在IR0中(-1表示没有限制);S3为服务项目编码,一般情况下应该为系统变量$ServiceItemNo。,第35页,3.4播放语音,MixPlay I1,S2 根据语种播放合成音。将S2合成I1所指定的类型播放,即根据语种自

18、动合成语音播放。如果字符串格式不对或者值超出范围,播放的提示音将不可预料.I1=1 合成金额(最后两位为角分,不能带有小数点)I1=2 合成数字(对于英文,值的范围 需在整数值范围之内;对中文,最多20位)I1=3 合成字符 I1=4 合成日期时间I1=5 合成数字(可以有带小数点)I1=6 合成金额(小数点后两位为角分)I1=7 合成金额(小数点后三位为角分厘),PlayFile S1 playtts SR1 播放语音文件,S1为文件名。结束时产生以下事件:StopPlayBack正常放音结束 DialTerminate放音被按键打断 Failed失败(一般为文件不存在),第36页,3.6数

19、据库访问,SwitchDBA I1(产生的事件passed,failed)ExecSQL S1 执行SQL命令,S1为要执行的命令字符串 完成后产生事件:Passed成功 Failed 失败,第37页,DBINTERFACE表的字段,第38页,3.6数据库访问,数据库访问动作,SwitchDBA I1切换DBA模块,I1为DBA 模块的通讯站号完成后产生事件:Passed成功 Failed 失败(与新的DBA模块未能连上,检查通讯配置),第39页,3.6数据库访问,数据库访问例子,main:stWaitConnect-stExecSQL:stSwitchDBA SwitchDBA dbaid/

20、切换DBAPassed-stExecSQLFailed-stExit:stExecSQL Assign SR1,insert into fax_send_record(filename,nowtime,device1,device2,result)values(oldfile,2001-01-01,4081,3866,Example)“ExecSQL SR1 Passed-stDeleteFailed-stExitTimeOut-stExit:stExit Return 0,第40页,3.6数据库访问,数据库访问动作,FirstDB 在检索记录(SelectDB)完成之后在有多条记录返回时执行

21、该动作将 把当前数据表指针指向第一条返回记录,同时FD0FD29的结果值作 相 应修改。完成后产生事件:Passed成功 Failed 失败,第41页,3.6数据库访问,数据库访问动作,NextDB 在检索记录(SelectDB)完成之后有多条记录返回时执行该动作,将把当前数据表指针指向下一条记录,同时FD0FD29的值相应修改。完成后产生事件:Passed成功 Failed 失败,第42页,3.6数据库访问,数据库访问动作,PriorDB 在检索记录(SelectDB)完成之后有多条记录返回时执行该动作,将 把当前数据表指针指向上一条记录,同时FD0FD29的值相应修改。完成后产生事件:Pa

22、ssed成功 Failed 失败,第43页,3.6数据库访问,数据库访问动作,LastDB 在检索记录(SelectDB)完成之后在有多条记录返回时执行该动作将 把当前数据表指针指向最后一条记录,同时FD0FD29的值将相应修改。完成后产生事件:Passed成功 Failed 失败,第44页,介绍提纲,编译器的安装及使用完成一个业务流程动作变量例解流程开发常见问题处理习题,第45页,4.1系统变量,系统变量与流程相关的系统变量。如:$ServiceType、$FlowType、$InputParam、$OutputParam。与呼叫相关的系统变量。如:$CallerID、$Device1、$D

23、evice2、$Device3与数据库访问相关的系统变量。如:$DBRecCount、$DBFieldCount。与认证计费相关的系统变量。如:$AccountID、$Password。$BillStartTime,第46页,$DBKEY1$DBKEY2$DBKEY3$DBKEY4$DBKEY5$DBKEY6,是给流程访问数据库可给定的一个关键字,可以修改,DBINTERFACE使用,第47页,$PARAM1,第48页,4.2系统寄存器,变量是其值可以改变的。流程语言定义的变量有:IR0IR29:整型变量,流程里可以用它来存贮一些中间值或最终结果SR0SR29:字串型变量,流程里可以用它来存贮

24、一些中间值或最终结果,最大长度为2K。FR0FR29:浮点变量,流程里可以用它来存贮一些中间值或最终结果FD0FD29:字串型变量,它与数据当前操作的表中的字段是一一对应,可以从数据库表中读取记录存入这些变量,对这些变量修改后可以存回数据库修改相应的记录。最大长度为2K。,第49页,4.3自定义变量,全局变量必须在第一个函数体之前定义,格式如下:整型变量:#declare IR int_var浮点变量:#declare FR float_var字符串变量:#declare SR string_var局部变量必须在每个函数体内第一个状态之前定义,格式如下,main#declare IR int_

25、var#declare FR float_var#declare SR string_var:stWait全局变量和局部变量可以有初始化值,格式如下:#declare IR int_value=10#declare SR int_value=”string”#declare FR float_value=123.45,第50页,4.4INI文件里变量的使用,程序不支持一个动作的多个参数同时用INI变量。如果想在一个动作中使用多个INI中定义的变量,请先用寄存器存放各个变量,再把对应寄存器作为参数放到动作中.详细说明如下:在流程的INI中定义了几个参数,提供流程运行时读取时,如:Paramete

26、rsCaller=160Called=119ToStr=160$如果流程写成以下形式将出错:MakeCall200 Caller,Called,ToStr执行时会变成:caller=160$,called=160$,user data=160$应改成以下形式(先将参数赋给寄存器)Assign SR0,CallerAssign SR1,CalledAssign SR2,ToStrMakeCall200 SR0,SR1,SR2.,第51页,介绍提纲,编译器的安装及使用完成一个业务流程动作变量例解流程开发常见问题处理习题,第52页,5.1数据库访问例子,根据主叫号码查询话费(单条记录返回,数据库查询

27、,合成音播放),第53页,5.2计费例子,流程中拨报费率提示音的时候不收通信费,不收信息费。拨报完成后需要等待3妙,开始发出通信计费信号,信息费计费信号。,例:main:stWaitconnect-stallocresource:stallocresource allocmediadevice 1/申请媒体资源allocresourceok-stfeeallocresourcefail-stExit:stfee playfile H:flowfee2.vox/拨报费率提示音stopplayback-stimerdialterminate-stimer failed-stimer:stimert

28、imer 3/等待3妙 timeout-stsetmandarin:stsetmandarin enablecall 0/通信费信号 billbegin 1,0,$serviceitemno/信息费信号 verify(0)-stWelcomeverify(-1)-stExit,第54页,5.3预拨号,预拨号流程,第55页,5.4存储过程,假设有一存储过程如下所示:create procedure PROC_201UPDATEBALANCE(Balance varchar(8),-流程用上面SELECT语句得出的本账号余额后与转移账号相加后的数值。AccountID1 varchar(12),-

29、转移账号 AccountID2 varchar(12),-原账号 Balance1 varchar(8)-原账号认证时的金额 as begin UPDATE ACCOUNTDATA SET AD_BALANCE=Convert(Numeric(8,2),Balance)WHERE AD_ACCOUNTID=AccountID1 AND AD_ACCOUNTKIND=201 AND AD_ACCOUNTSTATUS=1 UPDATE ACCOUNTDATA SET AD_BALANCE=0,AD_ACCOUNTSTATUS=2 WHERE AD_ACCOUNTID=AccountID2 AND

30、AD_ACCOUNTKIND=201 AND AD_ACCOUNTSTATUS=1 INSERT INTO ACCOUNTTRANS VALUES(AccountID1,201,1,AccountID2,Convert(Numeric(8,2),Balance1),getdate()INSERT INTO ACCOUNTTRANS VALUES(AccountID2,201,2,AccountID1,Convert(Numeric(8,2),Balance1),getdate()end 设置用于调用时,需在表DBINTERFACE中登记:insert into DBINTERFACE valu

31、es(100,PROC_201UPDATEBALANCE,in,in,in,in,1,C,C,C,C)而在IVR中动作为:ASSIGN FD0,SR0/输入的参数在FD0FD9中ASSIGN FD1,SR8ASSIGN FD2,SR1Assign FD4,$CALLERIDExecStoredProc 100,4/DBINTERFACE表中的存储过程编号为100,参数个数为4 Passed-stBalanceTranOK Failed-stSystemBusy DBATimeOut-stSystemBusy,第56页,5.5包月项目实现,包月流程,第57页,介绍提纲,编译器的安装及使用完成一个

32、业务流程动作变量例解流程开发常见问题习题,第58页,SP在调试流程的时候需要将项目的业务流程,技术流程,以及用到的建库脚本,存储过程,ini文件都要有详细的注释。,Sp流程规范,SP的技术流程必须是编译通过的。,根据流程的难易度,代码的行数:1000行以上的流程只允许出现两个重大错误,小错误不允许超于3个;1000以下的流程指允许出现1个重大错误,小错误不超过2个。重大错误是指:主流程的死循环,预拨号使用不当,包月使用不当等。,规范流程中动作的返回事件,各个动作的返回事件要写全。,SP的流程图必须和.SC文件一致,尽量不要向SP要源文件(.sc),如果须用到SC文件,不用后需当着SP的面把SC

33、源文件删掉。,平台资源占用,平台计费,平台计费,平台点歌类流程规范,平台数据库流程规范,平台安全,第59页,6常见问题,语法分析中可能出现的错误1.WORD has not been defined WORD未被定义2.WORD define wrong in Key.txt 系统变量定义错误3.Parameter type of the word is not same with which in the action config file 参数的类型语动作配置文件中的定义不一致4.More than one Action function matched with the action

34、WORD 不只一个动作与该动作匹配(一般是配置文件有错)5.The Events parameter must be a integer or a character 事件的参数必须是一个整数或一个字符6.Parameter WORD1 of WORD is out of the range in the event config file 事件配置文件有错.其参数个数的指定用:HasAPara,NoPara,HasOrNo,第60页,6常见问题,7.last a)缺少)8.a Event must be followed a state 事件之后必须跟一个状态9.must have acti

35、ons and only actions in the state StExit在状态StExit中只能有一个动作RETURN10.the last action must be the RETURN in the state StExit在状态StExit中最后一个动作必须为RETURN11.In the state StExit the last action cant be followed anything but a 在状态StExit中最后一个动作之后必须用结束该函数12.has not defined the state WORD WORD状态未被定义13.Tthe first state must be the stWait在一个函数中第一个状态必须是stWait14.Has not defined the main function 未定义主函数(main),第61页,介绍提纲,编译器的安装及使用完成一个业务流程动作变量例解流程开发常见问题讨论,第62页,编译器的安装及使用完成一个业务流程动作变量例解流程开发常见问题讨论考试,介绍提纲,第63页,谢谢大家!,共享,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 建筑/施工/环境 > 项目建议


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号