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

📄 flwparser.cpp

📁 flwscript解析器
💻 CPP
📖 第 1 页 / 共 5 页
字号:

	if(op>60050&&op<60060)
	{
		InternalOperateIFRVE(nChnID,op);
		return;
	}
	if(op>60060&&op<60070)
	{
		InternalOperateSFLVE(nChnID,op);
		return;
	}
	if(op>60070&&op<60080)
	{
		InternalOperateSFRVE(nChnID,op);
		return;
	}
	if(op>60080&&op<60090)
	{
		InternalOperateIFVVE(nChnID,op);
		return;
	}
	if(op>60090&&op<60100)
	{
		InternalOperateSFVVE(nChnID,op);
		return;
	}
	if(op>60100&&op<60110)
	{
		InternalOperateIFNTE(nChnID,op);
		return;
	}
	if(op>60110&&op<60120)
	{
		InternalOperateSFNTE(nChnID,op);
		return;
	}
	if(op>80000)
	{
		OperateFunction(nChnID,op);
		return;
	}
	
	int nIndex = ChnMapTable[nChnID].m_nIndex;
	memset(g_pstChnInfo[nIndex].m_stResult,0,1024);
	RETHDR *r = (RETHDR*) g_pstChnInfo[nIndex].m_stResult;
	r->m_nID = LP_FLW_UNKNOWN;

	//	char szlog[1024]="";
	///	memset(szlog,0,1024);
	//	if(op==10000)
	///		return;
	//	sprintf(szlog,"OperateScript 未处理操作op %d,nLine %s",op,	 Cont[Ivr[nChan].m_nContNo].GetLine(Ivr[nChan].m_iCurrentLine,nChan));
	//	LogMesg(nChan,szlog,DEBUGOUTPUT,THIS_FILE, __LINE__);
	//	sprintf(szlog,"OperateScript 未处理操作op %d,nLine %d",op,Ivr[nChan].m_iCurrentLine);
	//	LogMesg(nChan,szlog,DEBUGOUTPUT,THIS_FILE, __LINE__);

}


void OperateFunction(int nChnID,int op)
{
	int nIndex = ChnMapTable[nChnID].m_nIndex;
	char sztemp[1024]="",szgo1[1000]="",szop[100]="";
	char* p1=NULL,*p2=NULL;
	char szlog[1024]="";
	if(op>=PLAYFILE1&&op<=PLAYFILE4)
	{
		InternalOperatePlayFile( nChnID, op)	;
	}
	else if(op>=READDIGITS1&&op<=READDIGITS2)
	{
		InternalOperateReadDigits( nChnID, op)	;
	}
	else if(op>=CONFPLAYFILE1&&op<=CONFPLAYFILE8)
	{
		InternalOperateConfPlayFile( nChnID, op)	;
	}
	else if(op>=JOINCONF1&&op<=JOINCONF8)
	{
		InternalOperateJoinConf( nChnID, op)	;
	}
	else if(op>=DIALOUT1&&op<=DIALOUT8)
	{
		InternalOperateDialOut( nChnID, op)	;
	}
	else if(op>=TALKWITH1&&op<=TALKWITH2)
	{
		InternalOperateTalkWith( nChnID, op)	;
	}
	else if(op>=LINEISOFFHOOK1&&op<=LINEISOFFHOOK2)
	{
		InternalOperateLineIsOffHook( nChnID, op)	;
	}
	else if(op>=RECFILE1&&op<=RECFILE4)
	{
		InternalOperateRecFile( nChnID, op)	;
	}
	else if(op>=CONFRECFILE1&&op<=CONFRECFILE2)
	{
		InternalOperateConfRecFile( nChnID, op)	;
	}
	else if(op>=SETDIALOUTORICALLEENUM1&&op<=SETDIALOUTORICALLEENUM2)
	{
		InternalOperateSetDialOutOriCalleeNum( nChnID, op)	;
	}
	else if(op>=JUMPAGENT1&&op<=JUMPAGENT2)
	{
		InternalOperateJumpAgent( nChnID, op)	;
	}
	else if(op>=SENDANC1&&op<=SENDANC2)
	{
		InternalOperateSendAnc( nChnID, op)	;
	}
	else if(op>=AGENTREQ1&&op<=AGENTREQ2)
	{
		InternalOperateAgentReq( nChnID, op)	;
	}
	else if(op>=REQUESTSERVICE1&&op<=REQUESTSERVICE2)
	{
		InternalOperateRequestService(nChnID,op);
	}
	else if(op>=AGENTREQEX1&&op<=AGENTREQEX2)
	{
		InternalOperateAgentReqEx( nChnID, op)	;
	}
	else if(op>=LINKPCMFILE1&&op<=LINKPCMFILE4)
	{
		InternalOperateLinkPcmFile( nChnID, op)	;
	}
	else if(op>=GOTOFLOW1&&op<=GOTOFLOW2)
	{
		InternalOperateGotoFlow( nChnID, op)	;
	}
	else if(op>=GOTOSUBFLOW1&&op<=GOTOSUBFLOW4)
	{
		InternalOperateGotoSubFlow( nChnID, op)	;
	}
	else if(op>=LOGMSG1&&op<=LOGMSG2)
	{
		InternalOperateLogMsg(nChnID,op)	;
	}

	else if(op>=AGENTPLAYRING1&&op<=AGENTPLAYRING4)
	{
		InternalOperateAgentPlayRing(nChnID,op)	;
	}
	else if(op>=IPCALL1&&op<=IPCALL8)
	{
		InternalOperateIpCall(nChnID,op)	;
	}
	else if(op==SETDIALINTIME1)
	{
		InternalOperateSetDialInTime(nChnID,op);
	}
	else if(op>=SLEEP1&&op<=SLEEP2)
	{
		InternalOperateSleep(nChnID,op);
	
	}
	else if(op==HANGUPDEST1)
	{
		InternalOperateHangUpDest(nChnID,op);
	}
	else if(op>=STARTRECORD1&&op<=STARTRECORD4)
	{
		InternalOperateStartRecord(nChnID,op);
	}
	else if(op==IVRIPREQ1)
	{
		InternalOperateIvrIpReq(nChnID,op);
	}

	else if(op==VTTALKWITH1||op==VTTALKWITH2)
	{
		InternalOperateVTTalkWith(nChnID,op);
	}
	else if(op==VTSETSCALE1||op==VTSETSCALE2)
	{
		InternalOperateVTSetScale(nChnID,op);
	}
	else if(op==SETPROCEVENT1||op==SETPROCEVENT2)
	{
		InternalOperateSetProcEvent(nChnID,op);
	}
	else if(op==AGENTEVENTPROCSTART1)
	{
		InternalOperateLineEventStart(nChnID,op);
	}
	else if(op==AGENTEVENTPROCEND1)
	{
		InternalOperateLineEventEnd(nChnID,op);
	}
	else if(op>=SHAREFLOWVAR1&&op<=SHAREFLOWVAR4)
	{
		InternalOperateShareFlowVar(nChnID,op);
	}
	else if(op>=CHECKDIRECTORY1&&op<=CHECKDIRECTORY2)
	{
		InternalOperateCheckDirectory(nChnID,op);
	}
	else if(op>=LJOINCONF1&&op<=LJOINCONF8)
	{
		InternalOperateLJoinConf( nChnID, op)	;
	}
	else if(op>=JOINMULTICONF1&&op<=JOINMULTICONF8)
	{
		InternalOperateJoinMultiConf( nChnID, op)	;
	}
	else if(op==CONFSTOPFILE1)
	{
		InternalOperateConfStopFile( nChnID ,op);
	}
	else if(op==AGENTIVRREQ1)
	{
		InternalOperateAgentIvrReq( nChnID ,op);
	}
	else if(op>=AGENTCALLOUT1&&op<=AGENTCALLOUT16)
	{
		InternalOperateAgentCallOut( nChnID ,op);
	}
	else if(op>=STARTLINERECORD1&&op<=STARTLINERECORD2)
	{
		InternalOperateStartLineRecord( nChnID ,op);
	}
	else if(op>=SETORICALLEE1&&op<=SETORICALLEE4)
	{
		InternalOperateSetOriCallee( nChnID ,op);
	}
	else
	{
		switch (op)
		{
	
		case  80081://	 HANGUPCALL 80081
				MakeFunction(nIndex,LP_FLW_FUNCTION_HANGUPCALL);
				
				MakeHangUpCall(nIndex);
				return ;
			 break;
		case  80082://	 HANGUPCALL 80081
				//LogMesg(nChan,"挂机流程开始",DEBUGOUTPUT,THIS_FILE, __LINE__);
				break;
		case  80083://	 SLEEP
				break;
		case  SETCHANTIMER1://	 SETCHANTIMER 80091
			p1 =GetLine(g_pstChnInfo[nIndex].m_nFlwID,g_pstChnInfo[nIndex].m_iCurrentLine,nIndex);
			if(p1==NULL)
			{		
				MAKEHANGUPRESULT()
				return ;
			}
			sprintf(sztemp,"%s",p1);
			sscanf(sztemp,"%s %s",szop,szgo1);
			{
				MakeFunction(nIndex,LP_FLW_FUNCTION_SETCHANTIMER);
				int l =  LookIntTable(nChnID,szgo1);
				MakeSetChanTimer(nIndex,l);
			}
			break;		
		case  SETCHANTIMER2://	 SETCHANTIMER 80091
			p1 =GetLine(g_pstChnInfo[nIndex].m_nFlwID,g_pstChnInfo[nIndex].m_iCurrentLine,nIndex);
			if(p1==NULL)
			{		
				MAKEHANGUPRESULT()
				return ;
			}
			sprintf(sztemp,"%s",p1);
			sscanf(sztemp,"%s %s",szop,szgo1);
			{
				MakeFunction(nIndex,LP_FLW_FUNCTION_SETCHANTIMER);
				int l =  atoi(szgo1);
				MakeSetChanTimer(nIndex,l);
			}
				
			break;
		case 90001: //ITOS1 
		case 90002: //ITOS2 
		case 90003: //STOI1
		case 90004: //STOI2
			break;
		case SQLSELECT1://SQLSELECT1
		case SQLSELECT2://SQLSELECT2
		case SQLSELECT3:
		case SQLSELECT4:
		case SQLCOMMAND1:
		case SQLCOMMAND2:
		case SQLCOMMAND3:
		case SQLCOMMAND4:

			InternalOperateSql(nChnID,op);
			break;
		default:
			//sprintf(szlog,"OperateFunction 未处理操作 %d ",op);
			//LogMesg(nChan,szlog,DEBUGOUTPUT,THIS_FILE, __LINE__);
			break;

		}
	}

}


void InternalOperateSql(int nChnID,int op)
{
	int nIndex = ChnMapTable[nChnID].m_nIndex;
	char sztemp[1024]="",szgo1[1000]="",szgo2[1000]="",szop[100]="";
	char* p1=NULL,*p2=NULL;
	char szlog[1024]="";
	if(g_pstChnInfo[nIndex].m_pStmt==NULL)
	{		
		MAKEHANGUPRESULT()
		return ;
	}
	switch(op)
	{
	
	case SQLSELECT1://sqlselect id id 
		sprintf(sztemp,"%s",g_pstChnInfo[nIndex].m_pStmt);
		sscanf(sztemp,"%s %s %s",szop,szgo1,szgo2);
		{
			int l=LookIntTable(nChnID,szgo1);
			char *r=LookStringTable(nChnID,szgo2);
			if(r==NULL)
			{
				MAKEHANGUPRESULT()
				return ;
			}
			MakeFunction(nIndex,LP_FLW_FUNCTION_SQLSELECT);
			MakeSqlSelect(nIndex,l,r);
		}
		break;

	case SQLSELECT2://sqlselect id str 

		sprintf(sztemp,"%s",g_pstChnInfo[nIndex].m_pStmt);
		sscanf(sztemp,"%s %s",szop,szgo1);
		g_pstChnInfo[nIndex].m_iCurrentLine++;
		p1=GetLine(g_pstChnInfo[nIndex].m_nFlwID,g_pstChnInfo[nIndex].m_iCurrentLine,nIndex);
		if(p1==NULL)
		{
			MAKEHANGUPRESULT()
			return ;
		}
		sprintf(szgo2,"%s",p1);
		{
			int l=LookIntTable(nChnID,szgo1);
			MakeFunction(nIndex,LP_FLW_FUNCTION_SQLSELECT);
			MakeSqlSelect(nIndex,l,szgo1);
		}
		break;
		case SQLSELECT3://sqlselect num id 
		sprintf(sztemp,"%s",g_pstChnInfo[nIndex].m_pStmt);
		sscanf(sztemp,"%s %s %s",szop,szgo1,szgo2);
		{
			int l=atoi(szgo1);
			char *r=LookStringTable(nChnID,szgo2);
			if(r==NULL)
			{
					MAKEHANGUPRESULT()
					return ;
			}
			MakeFunction(nIndex,LP_FLW_FUNCTION_SQLSELECT);
			MakeSqlSelect(nIndex,l,r);
			//Ivr[nChan].m_nConnID=l;
			//strcpy(Ivr[nChan].m_szSql,szgo2);
			//SqlSelect_Send(nChan);

		}
		break;
		case SQLSELECT4://sqlselect num str 
		sprintf(sztemp,"%s",g_pstChnInfo[nIndex].m_pStmt);
		sscanf(sztemp,"%s %s",szop,szgo1);
		g_pstChnInfo[nIndex].m_iCurrentLine++;
		p1=GetLine(g_pstChnInfo[nIndex].m_nFlwID,g_pstChnInfo[nIndex].m_iCurrentLine,nIndex);
		if(p1==NULL)
		{
			MAKEHANGUPRESULT()
			return ;
		}
		sprintf(szgo2,"%s",p1);
	
		{
			int l=atoi(szgo1);
			MakeFunction(nIndex,LP_FLW_FUNCTION_SQLSELECT);
			MakeSqlSelect(nIndex,l,szgo2);
			//Ivr[nChan].m_nConnID=l;
			//strcpy(Ivr[nChan].m_szSql,szgo2);
			//SqlSelect_Send(nChan);
		
		}
		break;
		case SQLCOMMAND1://sqlselect id id 
		sprintf(sztemp,"%s",g_pstChnInfo[nIndex].m_pStmt);
		sscanf(sztemp,"%s %s %s",szop,szgo1,szgo2);
		{
			int l=LookIntTable(nChnID,szgo1);
			char *r=LookStringTable(nChnID,szgo2);
			if(r==NULL)
			{
				MAKEHANGUPRESULT()
				return ;
			}
			MakeFunction(nIndex,LP_FLW_FUNCTION_SQLCOMMAND);
			MakeSqlCommand(nIndex,l,r);
			//Ivr[nChan].m_nConnID=l;
			//strcpy(Ivr[nChan].m_szSql,r);
			//SqlCommand_Send(nChan);
		}
		break;
	case SQLCOMMAND2://sqlselect id str 
		sprintf(sztemp,"%s",g_pstChnInfo[nIndex].m_pStmt);
		sscanf(sztemp,"%s %s",szop,szgo1);
		g_pstChnInfo[nIndex].m_iCurrentLine++;
		p1=GetLine(g_pstChnInfo[nIndex].m_nFlwID,g_pstChnInfo[nIndex].m_iCurrentLine,nIndex);
		if(p1==NULL)
		{
			MAKEHANGUPRESULT()
			return ;
		}
		sprintf(szgo2,"%s",p1);

		{
			int l=LookIntTable(nChnID,szgo1);
			MakeFunction(nIndex,LP_FLW_FUNCTION_SQLCOMMAND);
			MakeSqlCommand(nIndex,l,szgo2);
			//Ivr[nChan].m_nConnID=l;
			//strcpy(Ivr[nChan].m_szSql,szgo2);
			//SqlCommand_Send(nChan);
		}
		break;
		case SQLCOMMAND3://sqlselect num id 
		sprintf(sztemp,"%s",g_pstChnInfo[nIndex].m_pStmt);
		sscanf(sztemp,"%s %s %s",szop,szgo1,szgo2);
		{
			int l=atoi(szgo1);
			char *r=LookStringTable(nChnID,szgo2);
			if(r==NULL)
			{
				MAKEHANGUPRESULT()
				return ;
			}
			MakeFunction(nIndex,LP_FLW_FUNCTION_SQLCOMMAND);
			MakeSqlCommand(nIndex,l,r);
			//Ivr[nChan].m_nConnID=l;
			//strcpy(Ivr[nChan].m_szSql,szgo2);
			//SqlCommand_Send(nChan);

		}
		break;
		case SQLCOMMAND4://sqlselect num str 
		sprintf(sztemp,"%s",g_pstChnInfo[nIndex].m_pStmt);
		sscanf(sztemp,"%s %s",szop,szgo1);
		g_pstChnInfo[nIndex].m_iCurrentLine++;
		p1=GetLine(g_pstChnInfo[nIndex].m_nFlwID,g_pstChnInfo[nIndex].m_iCurrentLine,nIndex);
		if(p1==NULL)
		{
			MAKEHANGUPRESULT()
			return ;
		}
		sprintf(szgo2,"%s",p1);
		{
			int l=atoi(szgo1);

⌨️ 快捷键说明

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