📄 11696.sc
字号:
#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 + -