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

📄 83.sc

📁 IVR的开发工具包,对于想进入IVR行业淘金的人有很大的用处哈
💻 SC
📖 第 1 页 / 共 2 页
字号:
#iniparam string @ServNo
#function funcException
#function MAIN_PRO_INIT
#function MAIN_PRO_FEE
#function SMS_TAIL
#function main
#function PRO_MobileDownload
#function PRO_MobileDownload_RingModule
#function PRO_MobileDownload_GalleryModule
#function PRO_MobileDownload_CustomRingModule
#function PRO_MobileDownload_Download
#function SEND_VOICE
main
{
:stWait
	Connect(0)->stInit
:stInit
	[CALLFUNC &MAIN_PRO_INIT]
		Returned(1)->DO_SMS_TAIL
		Returned(0)->stExit
:DO_SMS_TAIL
	[CALLFUNC &SMS_TAIL]
		Returned->stSpecial
:stSpecial
	[ OnCallCleared &funcException]//[ OnCallCleared &funerror ]
	[ OnStopFlow &funcException]
	->stFee
:stFee
	[CALLFUNC &MAIN_PRO_FEE]
		Returned(1)->stPro
		Returned(0)->stExit
:stPro
	[CALLFUNC &PRO_MobileDownload]
		Returned->stExit
:stExit
     [RETURN 0]
}
MAIN_PRO_INIT
{
:stWait
	[Assign IR1,0]
	->stAllocResource
:stAllocResource
	[SetVoxFormat  8000,4]
	[AllocMediaDevice 1]
		AllocResourceOK -> SUCC
		AllocResourceFail -> FAIL
		TimeOut -> FAIL
:SUCC
	[Assign IR1,1]
	->stExit
:FAIL
	[Assign IR1,0]
	->stExit
:stExit
	[RETURN IR1]
}

MAIN_PRO_FEE
{
:stWait
	[Assign IR1,0]
	[SETTELEBILL 1]
	[ ClearDTMF ]
	[ SetDTMF "?" ]
	[ PlayFile ".\SOUND\fee.vox" ]
	StopPlayBack -> stStartFee
	DialTerminate -> stStartFee
	Failed -> stStartFee

:stStartFee
	[BillBegin 1,0,@ServNo]
		Verify(0) -> SUCC
		Verify(-1) -> stExit
:SUCC
	[Assign IR1,1]
	->stExit
:FAIL
	[Assign IR1,0]
	->stExit
:stExit
	[RETURN IR1]
}

funcException
{
:stWait
	connect -> stQuit
:stQuit
	[BillEnd]
		Verify -> stExit
:stExit
	[Return 0]
}

SMS_TAIL
{
:stWait
	[SwitchDBA 204]
		Passed -> DO_LOAD_SMS
		Failed -> stExit
:DO_LOAD_SMS
	[ ASSIGN SR28,"SELECT Message FROM SMS_SEND WHERE ServiceNo='" ]
	[ StrCat SR28,$CalledID ]
	[ StrCat SR28,"' and COMMENT='TAIL'"]
	[ ExecSQL SR28 ]
		Passed  -> DO_LOAD_SMS_RESULT
		Failed(0)  -> DO_LOAD_SMS_RESULT_NULL
		TimeOut -> stExit
:DO_LOAD_SMS_RESULT
	[ Assign SR9,FD0]
	[ Assign IR9,1]
	->DO_SMS_SEND
:DO_SMS_SEND
	[Assign $SMSender, "0186922"]
	[Assign $SMReceiver, $CallerID]
	[Assign $SMContent, SR9]
	[Assign $SMServiceCode, "CMCCTEST"]
	[Assign $SMFeeCode,"00"]
	[Assign $SMFeeType,"01"]
	[Assign $SMCallType, 1]
	[Assign $SMDeliver, 0]
	[Assign $SMSubscribeType, 1]
	[Assign $SMFormat,  15]
	[Assign $SMPriority, 0]
	[SendSMS]
     		Passed  -> stExit
	    	Failed  -> stExit
		TimeOut -> stExit
:DO_LOAD_SMS_RESULT_NULL
	[ Assign IR9,0]
	->stExit
:stExit
	[RETURN 0]
}

SEND_VOICE
{
:stWait
	[SwitchDBA 204]
		Passed -> DO_INPUT_MOBILE_NUM
		Failed -> stExit
:DO_INPUT_MOBILE_NUM
	[ClearDTMF]
	[SetDTMF "?"]
	[PlayFile "..\GLOBAL\SEND_INPUT_MOBILE_NUM_ASK.vox"]
		StopPlayBack -> DO_INPUT_MOBILE_NUM_GETKEY
		DialTerminate -> DO_INPUT_MOBILE_NUM_GETKEY
		Failed -> ERR_VOICE
:DO_INPUT_MOBILE_NUM_GETKEY
	[SetDTMF "#"]
	[Input 12,30]
		StopDigits('#') -> DO_INPUT_MOBILE_NUM_RESULT
		StopDigits -> DO_INPUT_MOBILE_NUM_RESULT
		TimeOut -> DO_INPUT_MOBILE_NUM
:DO_INPUT_MOBILE_NUM_RESULT
	[ParseParam SR0,1,"#"]
	[Assign SR2,SR0]	//SR2=受送者手机号
	[StrLen SR2]
	[Equal IR0,11]
		Passed -> DO_INPUT_MOBILE_NUM_READ
		Failed -> DO_INPUT_MOBILE_NUM_RESULT_ERR
:DO_INPUT_MOBILE_NUM_READ
	[ClearDTMF]
	[SetDTMF "?"]
	[PlayFile "..\GLOBAL\SEND_INPUT_MOBILE_NUM_REPEAT.vox"]
		StopPlayBack -> DO_INPUT_MOBILE_NUM_READ_NUM
		DialTerminate -> DO_INPUT_MOBILE_NUM_READ_NUM
		Failed -> DO_INPUT_MOBILE_NUM_READ_NUM
:DO_INPUT_MOBILE_NUM_READ_NUM
	[ClrMixer]
	[AddStrToMixer 3,SR2]
	[PlayMixer]
		StopPlayBack -> DO_INPUT_MOBILE_NUM_SURE_NUM
		DialTerminate -> DO_INPUT_MOBILE_NUM_SURE_NUM
:DO_INPUT_MOBILE_NUM_SURE_NUM
	[ClearDTMF]
	[SetDTMF "?"]
	[PlayFile "..\GLOBAL\SEND_INPUT_MOBILE_NUM_SURE.vox"]
		StopPlayBack -> DO_INPUT_MOBILE_NUM_SURE_NUM_GETKEY
		DialTerminate -> DO_INPUT_MOBILE_NUM_SURE_NUM_GETKEY
		Failed -> DO_INPUT_DATE_TYPE
:DO_INPUT_MOBILE_NUM_SURE_NUM_GETKEY
	[SetDTMF "12*0"]
	[Digit 9]
		StopDigits('1') -> DO_INPUT_DATE_TYPE
		StopDigits('2') -> DO_INPUT_MOBILE_NUM
		StopDigits('*') -> DO_SEND_FAIL
		StopDigits('0') -> DO_SEND_FAIL
		StopDigits -> DO_INPUT_MOBILE_NUM_READ
		TimeOut -> DO_INPUT_MOBILE_NUM_READ
:DO_INPUT_MOBILE_NUM_RESULT_ERR
	[ClearDTMF]
	[SetDTMF "?"]
	[PlayFile "..\GLOBAL\SEND_INPUT_MOBILE_NUM_ERR.vox"]
		StopPlayBack -> DO_INPUT_MOBILE_NUM
		DialTerminate -> DO_INPUT_MOBILE_NUM
		Failed -> DO_INPUT_MOBILE_NUM
:DO_INPUT_DATE_TYPE
	[ClearDTMF]
	[SetDTMF "?"]
	[PlayFile "..\GLOBAL\INPUT_DATE_TYPE_ASK.vox"]
		StopPlayBack -> DO_INPUT_DATE_TYPE_GETKEY
		DialTerminate -> DO_INPUT_DATE_TYPE_GETKEY
		Failed -> ERR_VOICE
:DO_INPUT_DATE_TYPE_GETKEY
	[SetDTMF "#"]
	[Input 9,30]
		StopDigits('#') -> DO_INPUT_DATE_TYPE_RESULT
		StopDigits -> DO_INPUT_DATE_TYPE
		TimeOut -> DO_INPUT_DATE_TYPE
:DO_INPUT_DATE_TYPE_RESULT
	[ParseParam SR0,1,"#"]
	[Assign SR3,SR0]	//SR3=点送日期
	[StrLen SR3]
	[Equal IR0,8]
		Passed -> DO_INPUT_TIME
		Failed -> DO_INPUT_DATE_TYPE_RESULT_1
:DO_INPUT_DATE_TYPE_RESULT_1
	[Equal IR0,0]
		Passed -> DO_GET_SYSTEM_DATETIME_START
		Failed -> DO_INPUT_DATE_TYPE
:DO_INPUT_TIME
	[ClearDTMF]
	[SetDTMF "?"]
	[PlayFile "..\GLOBAL\INPUT_TIME_ASK.vox"]
		StopPlayBack -> DO_INPUT_TIME_GETKEY
		DialTerminate -> DO_INPUT_TIME_GETKEY
		Failed -> ERR_VOICE	
:DO_INPUT_TIME_GETKEY
	[SetDTMF "#"]
	[Input 5,30]
		StopDigits('#') -> DO_INPUT_TIME_RESULT
		StopDigits -> DO_INPUT_DATE_TYPE
		TimeOut -> DO_INPUT_DATE_TYPE
:DO_INPUT_TIME_RESULT
	[ParseParam SR0,1,"#"]
	[Assign SR4,SR0]	//SR3=点送时间
	[StrLen SR4]
	[Equal IR0,4]
		Passed -> DO_DEAL_DATETIME_START
		Failed -> DO_INPUT_TIME
:DO_DEAL_DATETIME_START
	[Assign SR5,SR0]
	[StrSub SR3,1,4]
	[StrCat SR5,SR0]	//YYYY
	[StrCat SR5,"-"]
	[StrSub SR3,5,6]
	[StrCat SR5,SR0]	//MM
	[StrCat SR5,"-"]
	[StrSub SR3,7,8]
	[StrCat SR5,SR0]	//DD
	[StrCat SR5," "]
	[StrSub SR4,1,2]
	[StrCat SR5,SR0]	//hh
	[StrCat SR5,":"]
	[StrSub SR4,3,4]
	[StrCat SR5,SR0]	//mm
	->DO_DEAL_DATETIME_END
:DO_DEAL_DATETIME_END
	[Assign SR5,SR0]
	[StrSub SR3,1,4]
	[STOI SR0]
	[ADD IR0,1]
	[ITOS IR0]
	[StrCat SR6,SR0]	//YYYY
	[StrCat SR6,"-"]
	[StrSub SR3,5,6]
	[StrCat SR6,SR0]	//MM
	[StrCat SR6,"-"]
	[StrSub SR3,7,8]
	[StrCat SR6,SR0]	//DD
	[StrCat SR6," "]
	[StrSub SR4,1,2]
	[StrCat SR6,SR0]	//hh
	[StrCat SR6,":"]
	[StrSub SR4,3,4]
	[StrCat SR6,SR0]	//mm
	->DO_SEND_READY
:DO_GET_SYSTEM_DATETIME_START
	[NOWTIME]
	[Assign SR3,SR0]
	[TimeAdd IR0,1,1]	//服务开始时间延后1分钟
	[Assign IR3,IR0]	//服务开始时间
	[TimeAdd IR0,4,1]	//服务结束时间延后1天
	[Assign IR4,IR0]	//服务结束时间

		[TimePart IR3,6]	//年
		[IToS IR0]
		[Assign SR3,SR0]
		[StrCat SR3,"-"]
		[TimePart IR3,5]	//月
		[IToS IR0]
		[STRLEN SR0]
		[EQUAL IR0,2]
			Passed -> YYYY_MM
			Failed -> YYYY_0M
:YYYY_0M
		[ASSIGN SR1,"0"]
		[STRCAT SR1,SR0] 
		[ASSIGN SR0,SR1] 
		-> YYYY_MM
:YYYY_MM
		[StrCat SR3,SR0]
		[StrCat SR3,"-"]
		[TimePart IR3,4]	//日
		[IToS IR0]
		[STRLEN SR0]
		[EQUAL IR0,2]
			Passed -> YYYY_MM_DD
			Failed -> YYYY_MM_0D
:YYYY_MM_0D
		[ASSIGN SR1,"0"]
		[STRCAT SR1,SR0] 
		[ASSIGN SR0,SR1] 
		-> YYYY_MM_DD
:YYYY_MM_DD
		[StrCat SR3,SR0]
		[StrCat SR3," "]	//SR9="YYYY-MM-DD "
		[TimePart IR3,3]	//时
		[IToS IR0]
		[STRLEN SR0]
		[EQUAL IR0,2]
			Passed -> YYYY_MM_DD_hh
			Failed -> YYYY_MM_DD_0h
:YYYY_MM_DD_0h
		[ASSIGN SR1,"0"]
		[STRCAT SR1,SR0] 
		[ASSIGN SR0,SR1] 
		-> YYYY_MM_DD_hh
:YYYY_MM_DD_hh
		[StrCat SR3,SR0]
		[StrCat SR3,":"]
		[TimePart IR3,2]	//分
		[IToS IR0]
		[STRLEN SR0]
		[EQUAL IR0,2]
			Passed -> YYYY_MM_DD_hh_mm
			Failed -> YYYY_MM_DD_hh_0m
:YYYY_MM_DD_hh_0m
		[ASSIGN SR1,"0"]
		[STRCAT SR1,SR0] 
		[ASSIGN SR0,SR1] 
		-> YYYY_MM_DD_hh_mm

:YYYY_MM_DD_hh_mm
		[StrCat SR3,SR0]	
		[StrCat SR3,":"]
		[StrCat SR3,"00"]
//---------------------------------------------------------
		[TimePart IR4,6]	//年
		[IToS IR0]
		[Assign SR4,SR0]
		[StrCat SR4,"-"]
		[TimePart IR4,5]	//月
		[IToS IR0]
		[STRLEN SR0]
		[EQUAL IR0,2]
			Passed -> YYYY_MM_e
			Failed -> YYYY_0M_e
:YYYY_0M_e
		[ASSIGN SR1,"0"]
		[STRCAT SR1,SR0] 
		[ASSIGN SR0,SR1] 
		-> YYYY_MM_e
:YYYY_MM_e
		[StrCat SR4,SR0]
		[StrCat SR4,"-"]
		[TimePart IR4,4]	//日
		[IToS IR0]
		[STRLEN SR0]
		[EQUAL IR0,2]
			Passed -> YYYY_MM_DD_e
			Failed -> YYYY_MM_0D_e
:YYYY_MM_0D_e
		[ASSIGN SR1,"0"]
		[STRCAT SR1,SR0] 
		[ASSIGN SR0,SR1] 
		-> YYYY_MM_DD_e
:YYYY_MM_DD_e
		[StrCat SR4,SR0]
		[StrCat SR4," "]	//SR9="YYYY-MM-DD "
		[TimePart IR4,3]	//时
		[IToS IR0]
		[STRLEN SR0]
		[EQUAL IR0,2]
			Passed -> YYYY_MM_DD_hh_e
			Failed -> YYYY_MM_DD_0h_e
:YYYY_MM_DD_0h_e
		[ASSIGN SR1,"0"]
		[STRCAT SR1,SR0] 
		[ASSIGN SR0,SR1] 
		-> YYYY_MM_DD_hh_e
:YYYY_MM_DD_hh_e
		[StrCat SR4,SR0]	
		[StrCat SR4,":"]
		[TimePart IR4,2]	//分
		[IToS IR0]
		[STRLEN SR0]
		[EQUAL IR0,2]
			Passed -> YYYY_MM_DD_hh_mm_e
			Failed -> YYYY_MM_DD_hh_0m_e
:YYYY_MM_DD_hh_0m_e
		[ASSIGN SR1,"0"]
		[STRCAT SR1,SR0] 
		[ASSIGN SR0,SR1] 
		-> YYYY_MM_DD_hh_mm_e

:YYYY_MM_DD_hh_mm_e
		[StrCat SR4,SR0]	//分
		[StrCat SR4,":"]
		[StrCat SR4,"00"]
		->DO_SEND_READY

:DO_SEND_READY
	[Assign SR5,SR3]	//点送开始时间
	[Assign SR6,SR4]	//点送结束时间
	[Assign SR8,"0"]	//点送外地
	[StrCat SR8,SR2]		//被点人
	[Assign SR5,$CALLERID]	//点送人
	[StrCat SR5,"|"]
	[StrCat SR5,SR2]		//被点人
	[StrCat SR5,"|"]
	[StrCat SR5,""]		//类型:默认
	[StrCat SR5,"|..\83\"]
	[StrCat SR5,SR10]		//语音1
	[StrCat SR5,"||"]		//语音2、3
	[SwitchDBA 100]
		Passed -> DO_SEND_LOCAL
		Failed -> DO_SEND_FAIL

:DO_SEND_LOCAL
	[NowTime]
	[ITOS IR0]
	[StrCat SR0,"125902222"]	
	[ ASSIGN SR28,"insert into PREDIALTASK (SERIALNUM,CALLORDER,SERVICEBEGINTIME,SERVICESTOPTIME,DIALBEGINTIME,DIALENDTIME,TIMEINTERVAL,INTERVALTYPE,CALLER,ORIGCALLER,CALLED,ORIGCALLED,PRIVATEDATA,REDIALINTERVAL,REDIALCOUNT,TYPE,SERVICEID,ANSWERTYPE,PRIORITY,STATUS) values(" ]
	[ STRCAT SR28,"'" ]
	[ STRCAT SR28,SR0]  //SERIALNUM(VARCHAR)
	[ STRCAT SR28,"'," ]
	[ STRCAT SR28,"10" ] //CALLORDER(INT)
	[ STRCAT SR28,",'" ]
	[ STRCAT SR28,SR3 ]  //SERVICEBEGINTIME(VARCHAR)
	[ STRCAT SR28,"','" ]
	[ STRCAT SR28,SR4 ]  //SERVICESTOPTIME(VARCHAR)
	[ STRCAT SR28,"','" ]
	[ STRCAT SR28,SR3 ]  //DIALBEGINTIME(VARCHAR)
	[ STRCAT SR28,"','" ]
	[ STRCAT SR28,SR4 ]  //DIALENDTIME(VARCHAR)
	[ STRCAT SR28,"'," ]
	[ STRCAT SR28,"0" ] //TIMEINTERVAL(int)
	[ STRCAT SR28,"," ] //
	[ STRCAT SR28,"0" ] //INTERVALTYPE(INT)
	[ STRCAT SR28,",'" ]
	[ STRCAT SR28,"125902222" ] //CALLER(VARCHAR)	//放歌流程
	[ STRCAT SR28,"','" ]
	[ STRCAT SR28,SR2 ] //ORIGCALLER(VARCHAR)	//听歌者
	[ STRCAT SR28,"','" ]
	[ STRCAT SR28,SR2 ] //CALLED(VARCHAR)	//听歌者
	[ STRCAT SR28,"','" ]
	[ STRCAT SR28,"125902283" ] //点歌者
	[ STRCAT SR28,"','" ]
	[ STRCAT SR28,SR5 ] //参数
	[ STRCAT SR28,"'," ]
	[ STRCAT SR28,"60" ] //REDIALINTERVAL(int)
	[ STRCAT SR28,"," ]
	[ STRCAT SR28,"0" ] //REDIALCOUNT(int)
	[ STRCAT SR28,"," ]
	[ STRCAT SR28,"2" ] //TYPE(int)
	[ STRCAT SR28,"," ]
	[ STRCAT SR28,"0" ] //SERVICEID(int)
	[ STRCAT SR28,"," ]
	[ STRCAT SR28,"1" ] //ANSWERTYPE(int)
	[ STRCAT SR28,"," ]
	[ STRCAT SR28,"3" ] //PRIORITY(int)
	[ STRCAT SR28,"," ]
	[ STRCAT SR28,"0" ] //STATUS(int)
	[ STRCAT SR28,")" ]
	[ ExecSQL SR28 ]
		Passed  -> DO_SEND_SLEEP
		Failed  -> DO_SEND_SLEEP
		TimeOut -> DO_SEND_SLEEP
:DO_SEND_SLEEP
	[ClearDTMF]
	[SetDTMF "?"]
	[PlayFile "..\GLOBAL\BLANK_s01.vox"]
		StopPlayBack -> DO_SEND_REMOTE
		DialTerminate -> DO_SEND_REMOTE
		Failed -> DO_SEND_REMOTE
:DO_SEND_REMOTE
	[NowTime]
	[ITOS IR0]
	[StrCat SR0,"125902222"]	
	[ ASSIGN SR28,"insert into PREDIALTASK (SERIALNUM,CALLORDER,SERVICEBEGINTIME,SERVICESTOPTIME,DIALBEGINTIME,DIALENDTIME,TIMEINTERVAL,INTERVALTYPE,CALLER,ORIGCALLER,CALLED,ORIGCALLED,PRIVATEDATA,REDIALINTERVAL,REDIALCOUNT,TYPE,SERVICEID,ANSWERTYPE,PRIORITY,STATUS) values(" ]
	[ STRCAT SR28,"'" ]
	[ STRCAT SR28,SR0]  //SERIALNUM(VARCHAR)
	[ STRCAT SR28,"'," ]
	[ STRCAT SR28,"10" ] //CALLORDER(INT)
	[ STRCAT SR28,",'" ]
	[ STRCAT SR28,SR3 ]  //SERVICEBEGINTIME(VARCHAR)
	[ STRCAT SR28,"','" ]
	[ STRCAT SR28,SR4 ]  //SERVICESTOPTIME(VARCHAR)
	[ STRCAT SR28,"','" ]
	[ STRCAT SR28,SR3 ]  //DIALBEGINTIME(VARCHAR)
	[ STRCAT SR28,"','" ]
	[ STRCAT SR28,SR4 ]  //DIALENDTIME(VARCHAR)
	[ STRCAT SR28,"'," ]
	[ STRCAT SR28,"0" ] //TIMEINTERVAL(int)
	[ STRCAT SR28,"," ] //
	[ STRCAT SR28,"0" ] //INTERVALTYPE(INT)
	[ STRCAT SR28,",'" ]
	[ STRCAT SR28,"125902222" ] //CALLER(VARCHAR)	//放歌流程
	[ STRCAT SR28,"','" ]
	[ STRCAT SR28,SR8 ] //ORIGCALLER(VARCHAR)	//听歌者
	[ STRCAT SR28,"','" ]
	[ STRCAT SR28,SR8 ] //CALLED(VARCHAR)	//听歌者
	[ STRCAT SR28,"','" ]
	[ STRCAT SR28,$CallerID ] //点歌者
	[ STRCAT SR28,"','" ]
	[ STRCAT SR28,SR5 ] //参数
	[ STRCAT SR28,"'," ]
	[ STRCAT SR28,"60" ] //REDIALINTERVAL(int)
	[ STRCAT SR28,"," ]
	[ STRCAT SR28,"0" ] //REDIALCOUNT(int)
	[ STRCAT SR28,"," ]
	[ STRCAT SR28,"2" ] //TYPE(int)

⌨️ 快捷键说明

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