zoukankan      html  css  js  c++  java
  • 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 ON
    
    FUNCTION Func_key1
    {
    
      /**
      开始
      */
        BEGIN:
            EvtStart[0]
            ReadStrFromINI(_INIFileName,"PATH.key1",SR0)          /*z:2361259012341*/
            ReadStrFromINI(_INIFileName,"PATH.key1Content",SR50) /*z:2361259012341content*/
            ->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:2361259012341content*/
            SAdd(SR51,SR1)                              //z:2361259012341contentsong
            SAdd(SR51,SR2)                              //z:2361259012341contentsong1    SR2为计数变量,下一首则加,上一首则减
            SAdd(SR51,".vox")                         //播放第一首song1.vox
            PlayFile(SR51,"123#*")                    //z:2361259012341contentsong1.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
    
                
    }        
        
  • 相关阅读:
    LC 1383. Maximum Performance of a Team
    P3805 【模板】manacher算法
    P1226 【模板】快速幂||取余运算
    1119 Pre- and Post-order Traversals
    1117 Eddington Number (二分)
    1111 Online Map (Dij/spfa)
    1108 Finding Average
    IPC
    Json to JObject转换的使用方法
    JsonConvert序列化
  • 原文地址:https://www.cnblogs.com/meetrice/p/4029217.html
Copyright © 2011-2022 走看看