📄 flwparser.cpp
字号:
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 + -