⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 11696.sc

📁 用于收费语音服务的电话充值业务
💻 SC
📖 第 1 页 / 共 2 页
字号:
#function FuncVerifyUser	 //主叫认证函数
#function funcReConVox          //退出聊天状态后重连设备
#function funcRandomLogon   //游客登陆
#function FuncChatRoom1        //聊天室1
#function FuncChatRoom2       //聊天室2
#iniparam string @vox_path   //相关的配置文件参考sports 流程的 .ini相应文件
#iniparam int @PWDCount //卡认证的输入次数
#iniparam int @CardLen //卡认证的卡号长度
#iniparam int @PWDLen //卡认证的密码长度
#iniparam string @FeeFile
#declare IR IfCardUser
#declare SR wsTopic //聊天室
#declare SR wsQQType //QQ类型

// SR29 语音路径存放  SR28用户按键存放 sr27,sr26,ir9用户按键临时变量  IR1 全播放时记数器

main
{
:stWait
     	Connect->stAllocResource                                                //用户呼入
:stAllocResource
//	[Assign $CallerID ,"1088380568"]
	[Assign SR29,@vox_path]                                             //语音路径存放在变量SR29中
	[AllocMediaDevice 1]
	AllocResourceOK -> stVerifyUser                                     //分配资源
	AllocResourceFail -> stExit
	
:stVerifyUser
	[CallFunc &FuncVerifyUser]
	Returned(0)->stBillBegin                                               //卡认证成功,开始计费
	Returned(1) -> stExit	                                               //卡认证失败,直接退出

:stBillBegin
	[BillBegin 1,0,$ServiceItemNo]                             //开始计费
	Verify(0) -> stStartFlow
	Verify -> stExit
	Failed ->stExit
:stStartFlow                                                                
	[ClearDTMF]
	[SetDTMF "?"]
	[Assign SR1,SR29 ]
	[StrCat SR1, "WELCOME1.vox"]                          //欢迎提示语音
	[PlayFile  SR1]	
	StopPlayBack -> stRandomLogon
	DialTerminate -> stRandomLogon
	StopDigits -> stStartFlow
	
:stRandomLogon
	[CallFunc &funcRandomLogon]
	Returned(0)->stChoice                        //正常退出,让用户选择菜单
	Returned->stBillEnd

:stChoice
	[Digit 5]
	StopDigits('1')->stBegintalk                                           //按1进入聊天提示语音
	StopDigits('2')->stBegintalk 
	StopDigits('9')->stFlowhelp 
	StopDigits('*')->stStartFlow 
	StopDigits->stStartFlow
	TimeOut->stStartFlow

:stFlowhelp
	[ClearDTMF]
	[SetDTMF "?"]
	[Assign SR1,SR29 ]
	[StrCat SR1, "INTRODUCTION.vox"]                          //欢迎提示语音
	[PlayFile  SR1]	
	StopPlayBack -> stStartFlow
	DialTerminate -> stStartFlow
	StopDigits -> stStartFlow
	
:stBegintalk
	[Equal SR0,"1"]
	Passed ->stRoom1                      //进入chatroom1
	Failed ->stRoom2                         //进入chatroom2
	
:stRoom1
	[CallFunc &FuncChatRoom1]                   
	Returned(0)->stBillEnd                        //正常退出
	Returned->stStartFlow 

+:stRoom2
	[CallFunc &FuncChatRoom2]
	Returned(0)->stBillEnd                        //正常退出
	Returned->stStartFlow 

:stBillEnd
	[QQLogOff]
	[BillEnd]
	Verify -> stExit

:stExit
	[DeallocMediaDevice 1]
	[Return 0]	//挂机退出
	
}


//★★★★聊天室1开始

FuncChatRoom1
{
#declare SR wsTopic
:stWait
	[Assign wsTopic,"10"]                 //把用户选择的聊天室编号传入聊天室操作的参数
	->stStarttalk1
	
:stStarttalk1
	[ClearDTMF]
	[SetDTMF "?"]
	[Assign SR1,SR29 ]
	[StrCat SR1, "room1.vox"]                                             //语音提示:欢迎您进入×××聊吧,目前在线人数有*人 
	[PlayFile  SR1]	
	StopPlayBack -> stwsTopic
	DialTerminate -> stwsTopic
	StopDigits -> stCalCount

:stwsTopic
	[SToI wsTopic]
	[QQGetChatroomInfo 2,IR0]  
	Passed ->stCalCount
	Failed ->stFlow_talk1 

:stCalCount                                                                             //取聊天室在线人数
	[Assign SR21,SR0]
	[ParseParam SR21,4,"$"]           //聊天室在线人数
	[SToI SR0]
	[Assign IR19,IR0]
	[ParseParam SR21,5,"$"]           //主持人数
	[SToI SR0 ]
	[Assign IR20,IR0]
	[Add IR19,IR20]                   //聊天室在线人数
	[IToS IR19]                          //把整数IR19转化为字符型存于SR0
	[Assign SR21,SR0]
	[Assign SR1,SR29 ]
	[StrCat SR1,"NUMBER.vox"]
	[PlayFile SR1 ]                                                            //目前在线总人数为
	StopPlayBack ->stTotalNum           
	DialTerminate ->stTotalNum
	Failed ->stTotalNum 

:stTotalNum
	[ClearDTMF]
	[MixPlay 2,SR21]
	StopPlayBack ->stFlow_talk1           
	DialTerminate ->stFlow_talk1
	Failed ->stStarttalk1
		
:stFlow_talk1
        [ClearDTMF]
	[SetDTMF "?"]
	[Assign SR1,SR29 ]
	[StrCat SR1, "keys.vox"]                                              //语音提示1可听可说2旁听
	[PlayFile  SR1]	
	StopPlayBack -> stTalkchoice
	DialTerminate -> stTalkchoice
        StopDigits->stFlow_talk1

:stTalkchoice
	[Digit 4]
	StopDigits('1')->stTalk_branch1                                  //按1进入聊天
	StopDigits('2')->stTalk_branch2                                  //按2直接进入旁听
	StopDigits('*')->stNotNormal                                         //按×退回主菜单
	StopDigits->stFlow_talk1
	TimeOut->stStarttalk1
	
:stTalk_branch1
	[SToI wsTopic]
	[QQAddToChatRoom IR0 ,2, 0]                                    //进入聊天室
	Passed ->stwaitcommand
	Failed ->stAddFailed
	Full->stAddFailed
	
:stAddFailed                                                            //资源不够
	[ClearDTMF ]
	[SetDTMF "?"]
	[Assign SR1,SR29]
	[StrCat SR1,"noresource.vox"]                                   //语音提示返回重新选择进入只听模式 
     	[PlayFile SR1]                                                          
     	StopPlayBack ->stStarttalk1                                           
       	DialTerminate ->stStarttalk1                                           
	
:stwaitcommand                                            
        [Timer 1]
        TimeOut->stwaitcommandwait22
//      hastalkresource->stIFEnterRoom
:stwaitcommandwait22
       [ ClearDTMF  ]
       [Input 1,999999]
        StopDigits('*')->stLeave
	    StopDigits->stwaitcommand 
        TimeOut ->stwaitcommand
//      hastalkresource->stIFEnterRoom

//:stIFEnterRoom
//	[QQChangeInChatRoomMode IR0,1]
//	Passed ->stwaitcommand
//	Failed ->stNotNormal
	
:stLeave
        [SToI wsTopic]
     	[QQLeaveChatRoom IR0]
        Passed->stConnectDevice
        Failed->stConnectDevice

:stConnectDevice
        [CallFunc &funcReConVox]
        Returned(0)->stNotNormal
        Returned->stNotNormal
   
:stNotNormal
	[Assign  IR2,1]
	->stExit

//*******************************************进入旁听
:stTalk_branch2
	[SToI wsTopic]
	[QQAddToChatRoom IR0 ,3, 0]
	Passed ->stwaitcommand
	Failed ->stLeave
	Full->stLeave

:stExit
	[Return IR2 ] 
}

//★★★★聊天室1end


//★★★★聊天室2begin

FuncChatRoom2
{
#declare SR wsTopic
:stWait
	[Assign wsTopic,"11"]                 //把用户选择的聊天室编号传入聊天室操作的参数
	->stStarttalk2

:stStarttalk2
	[ClearDTMF]
	[SetDTMF "?"]
	[Assign SR1,SR29 ]
	[StrCat SR1, "room2.vox"]                                             //语音提示:欢迎您进入×××聊吧,目前在线人数有*人 
	[PlayFile  SR1]	
	StopPlayBack -> stwsTopic
	DialTerminate -> stwsTopic
	StopDigits -> stwsTopic
	
:stwsTopic
	[SToI wsTopic]
	[QQGetChatroomInfo 2,IR0]  
	Passed ->stCalCount
	Failed ->stFlow_talk2

:stCalCount                                                                             //取聊天室在线人数
	[Assign SR21,SR0]
	[ParseParam SR21,4,"$"]
	[SToI SR0]
	[Assign IR19,IR0]
	[ParseParam SR21,5,"$"]
	[SToI SR0 ]
	[Assign IR20,IR0]
	[Add IR19,IR20]
	[IToS IR19]
	[Assign SR21,SR0]
	[Assign SR1,SR29 ]
	[StrCat SR1,"NUMBER.vox"]
	[PlayFile SR1 ]                                                            //目前在线总人数为
	StopPlayBack ->stTotalNum           
	DialTerminate ->stTotalNum
	Failed ->stTotalNum 

:stTotalNum
	[ClearDTMF]
	[MixPlay 2,SR21]
	StopPlayBack ->stFlow_talk2           
	DialTerminate ->stFlow_talk2
	Failed ->stFlow_talk2
	
	
:stFlow_talk2
        [ClearDTMF]
	[SetDTMF "?"]
	[Assign SR1,SR29 ]
	[StrCat SR1, "keys.vox"]                                              //语音提示1可听可说2旁听
	[PlayFile  SR1]	
	StopPlayBack -> stTalkchoice
	DialTerminate -> stTalkchoice
        StopDigits->stFlow_talk2

:stTalkchoice
	[Digit 4]
	StopDigits('1')->stTalk_branch1                                  //按1进入聊天
	StopDigits('2')->stTalk_branch2                                  //按2直接进入旁听
	StopDigits('*')->stNotNormal                                         //按×退回主菜单
	StopDigits->stFlow_talk2
	TimeOut->stStarttalk2
	
:stTalk_branch1
	[SToI wsTopic]
	[QQAddToChatRoom IR0 ,2, 0]                                    //进入聊天室
	Passed ->stwaitcommand
	Failed ->stAddFailed
	Full->stAddFailed
	
:stAddFailed                                                                        //资源不够
	[ClearDTMF ]
	[SetDTMF "?"]
	[Assign SR1,SR29]
	[StrCat SR1,"noresource.vox"]                                   //语音提示返回重新选择进入只听模式 
     	[PlayFile SR1]                                                          
     	StopPlayBack ->stStarttalk2                                           
       	DialTerminate ->stStarttalk2                                           
	
:stwaitcommand                                                                 //有资源进入聊天状态
        [Timer 1]
        TimeOut->stwaitcommandwait22
//        hastalkresource->stIFEnterRoom
:stwaitcommandwait22
       [ ClearDTMF ]
       [Input 1,999999]
        StopDigits('*')->stLeave
	    StopDigits->stwaitcommand 
        TimeOut ->stwaitcommand
//        hastalkresource->stIFEnterRoom

//:stIFEnterRoom
//	[QQChangeInChatRoomMode IR0,1]
//	Passed ->stwaitcommand
//	Failed ->stNotNormal
	
:stLeave
        [SToI wsTopic]
     	[QQLeaveChatRoom IR0]
        Passed->stConnectDevice
        Failed->stConnectDevice

:stConnectDevice
        [CallFunc &funcReConVox]
        Returned(0)->stNotNormal
        Returned->stNotNormal
   
:stNotNormal
	[Assign  IR2,1]
	->stExit
  
		
//*******************************************进入旁听
:stTalk_branch2
	[SToI wsTopic]
	[QQAddToChatRoom IR0 ,3, 0]
	Passed ->stwaitcommand
	Failed ->stLeave
	Full->stLeave
     	                                                                      	
:stExit
	[Return IR2 ]

}

//★★★★聊天室2end




//★★重新连接设备和语音资源,板卡使用$Device1,Excel使用$MediaPortID
funcReConVox
{
#declare IR varRET 
:stWait
    [Timer 2]
    TimeOut->stReCon
:stReCon
    [Assign varRET,1]   
    [ConnectDevice $Device1,$VoxDevice,2]
    Passed->stOK
    Failed->stExit
:stOK
    [Assign varRET,0]
    ->stExit
:stExit
    [Return varRET]
}



//游客登陆@@@@@@@@@@

funcRandomLogon

{
#declare SR psPassword
#declare SR wsMYQQ   //本用户的QQ号。
:stWait
	[QQAllocID "",6]   //第一个参数为空串""时, 系统预分配一个QQ号码,这时第二个参数表示要求预分配QQ号码时,该参数表示要求分配的
				//号码类型类型0:其他;1:靓号;2:普通号码;3:管理员号码;4:保留号;5:欠费号;6:游客号
	Passed ->stSetPwd1
	Failed ->stNotNormal
:stSetPwd1
	[Assign wsMYQQ,SR0]

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -