首页 > 代码库 > ivr

ivr

/*************************************************************北京高阳圣思园信息技术有限公司IVR业务:        流程说明:公司介绍子流程    发布版本:Version 1.0.0          编写日期:2005-05-27         修改日期:2006-03-02         流程作者:Hisunsray    联系方式:Tel - (010)84505155-531                  E_Mail :zhaojt@hisunsray.com    版权归属:北京高阳圣思园信息技术有限公司*************************************************************//*************************************************************主流程修改记录:        2005-05-27:编制公司介绍子流程        2006-03-02:修改流程为点歌台,增加上一条,下一条,重听操作*************************************************************//*************************************************************寄存器使用说明:         SR10:   播放内容         SR0:  系统提示音路径         SR30: 播放的提示音         SR50: 内容语音路径         SR51: 播放的内容语音         *************************************************************//************************************************************子流程输入输出参数说明:    输入:        无            输出:            _Field1:点送的内容    返回值:        0:表示成功        1:表示失败       *************************************************************//*****************宏定义*************************************/#define SUCCESS            0#define EXCEPTION        1/************************************************************/TRACE ONFUNCTION Func_key1{  /**  开始  */    BEGIN:        EvtStart[0]        ReadStrFromINI(_INIFileName,"PATH.key1",SR0)          /*z:\0236\125901234\1\*/        ReadStrFromINI(_INIFileName,"PATH.key1Content",SR50) /*z:\0236\125901234\1\content\*/        ->stTipVoice                //跳转到函数            /**  播放欢迎语音  */    stTipVoice:        SAssign(SR30,SR0)                     //把路径赋值给SR30        SAdd(SR30,"Tip1.vox")                       //收听过程中按1键听下一条,2键听上一条,3键重听,按*键返回主菜单        PlayFile(SR30,"?")                     //"?"代表按任意键打断,""表示不打断                 //未打断        EvtReturn[0]                            SAssign(SR1,"song")                  //歌曲名称的共有名song              SAssign(SR2,"1")                   //歌曲名称的编号            -> stPlayContent                //打断        EvtReturn[3]                            SAssign(SR1,"song")              SAssign(SR2,"1")            -> stPlayContent                    //异常            EvtReturn[-1] -> END                  //异常        /**  根据变量播放内容语音  */    stPlayContent:        SAssign(SR51,SR50)                    //*z:\0236\125901234\1\content\*/        SAdd(SR51,SR1)                              //z:\0236\125901234\1\content\song        SAdd(SR51,SR2)                              //z:\0236\125901234\1\content\song1    SR2为计数变量,下一首则加,上一首则减        SAdd(SR51,".vox")                         //播放第一首song1.vox        PlayFile(SR51,"123#*")                    //z:\0236\125901234\1\content\song1.vox        EvtReturn[0] -> stGetDigits           //等待用户按键        EvtReturn[3] -> stGetDigits        EvtReturn[-1] -> END                    stGetDigits:        GetDigits(1,3,"")                          //获取用户按键,3秒超时        EvtReturn[0]            //SAssign(SR10,_EventData)            -> stCheckButton                    //如果正常获取,则检查按键        EvtReturn[4] -> stPlayContent         //超时重放        EvtReturn[-1] -> END                  //返回        stCheckButton:                         CheckPushedButton()                   //检查用户按键        EvtReturn[1] -> stNext                //按键1        EvtReturn[2] -> stBefore              //按键2        EvtReturn[3] -> stPlayContent         //按键3        EvtReturn[10] -> END                  //按键#        EvtReturn[11] -> END                  //按键*        EvtReturn[-1] -> stPlayContent        //其他按键            stNext:                                       //听下一条        StoI(IR2,SR2)                          //类型转换        IAdd(IR2,1)                            //序号加1        IEqual(IR2,10)                         //序号与10比较        EvtReturn[2]                           //参数1大于参数2             SAssign(SR2,"1")            ->stPlayContent        EvtReturn[-1]            ItoS(SR2,IR2)              ->stPlayContent              stBefore:                    //听上一条        StoI(IR2,SR2)        ISub(IR2,1)                          //序号减1        IEqual(IR2,1)                        //序号与1比较        EvtReturn[1]                         //参数1小于参数2            SAssign(SR2,"10")            ->stPlayContent        EvtReturn[-1]                        //其他            ItoS(SR2,IR2)              ->stPlayContent          /********************************************随机播放内容音*****************************************************/    stRandPlay:        IntRand(IR2,11) //IR2中的随机数为0至10中的任意一个        IEqual(IR2,0)        EvtReturn[0]            IAdd(IR2,1)            ItoS(SR2,IR2)            ->stPlayContent        EvtReturn[-1]            ItoS(SR2,IR2)          ->stPlayContent            }            

 

ivr