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

📄 flowanalysis.h

📁 flwscript解析器
💻 H
📖 第 1 页 / 共 2 页
字号:
#if !defined(_FLOWANALYSIS_H_)
#define  _FLOWANALYSIS_H_
#define MAX_FLOW  1000 
#define MAX_NUMLEN 1024
#define MAX_STRLEN 1024
#define STRC_PAM 50002
#define	VARHEAPSIZE  100	
typedef struct SCRIPTSTRINGHEAP
{
	int  string_level;
	char string_name[1024];
	char string_value[1024];
}
SCRIPTSTRINGHEAP;
typedef struct SCRIPTINTHEAP
{
	int int_level;
	char int_name[1024];
	int int_value;
}
SCRIPTINTHEAP;

typedef struct 
{
  char scriptline[100];
} 
SCRIPTLINE; 

typedef struct 
{
  char sqlline[300];
} 
SQLLINE;
typedef struct
{
	char m_szFieldName[200];
	char m_szFieldValue[1024];
}
SQLRESULT;
typedef struct
{
	int m_nIndex;
	int m_nChnID;
}
CHNMAPTABLE;
typedef struct FLOWCONTAIN  
{
    int m_nStrC;
    int m_nFlowID;  //如果是外拨流程,那么就外拨流程表的id,否则就是流程表的id
    int m_nMaxLine;
	int m_nCurLine;
	int m_nContNo;
	int m_nHangUpLine;
	int m_nOnHookLine;
	int m_nOffHookLine;
	int m_nUserHangUpLine;
	int m_nUserCallInLine;
	int m_nAgentDigitLine;
	int m_nAgentEventProcLine;
	int m_nWaitEventProcLine;
	int m_nInterServiceLine;
	int m_nUse;
	int m_nStrCFlag;
	int m_nSubFlowFlag ; //是否是外拨流程
	char m_szCompanyID[100] ;
	int m_nDialOutID;
	int m_nSectionCount;
	int m_nHanUpFlag ; //挂机流程只能读一次
	char m_szAccessNo[100];
	char m_szCompany[100];
	char m_szFlowName[100];
	FILE *m_fFlowFile;
	SCRIPTLINE *m_pScript;
    SQLLINE*m_pSql;
	int m_Sections[10];
	int m_nOldScript;	
	int m_nChanLinks;
	DWORD m_nHighTime;
	DWORD m_nLowTime;
	char m_szFileTime[1024];
	char m_szFileName[500];
	int m_nIsOld;
	int m_nListItemNo;
}
FLOWCONTAIN;

typedef struct CALL{
	int  m_nChnID;
	char m_szCallerNum[MAX_NUMLEN];//主叫号码
	char m_szCalledNum[MAX_NUMLEN];//被叫号码
	char m_szOriCalledNum[MAX_NUMLEN];
	int m_nNetStatus;//用来保存当前收到的网络事件
	int m_nWaitNetMsg;//流程正在等待的网络事件

	char m_szVoice[MAX_NUMLEN];//当前播放的语音
	char m_szDTMF[MAX_NUMLEN];//收到的dtmf按键
	int	m_nDigitNum;//当前要收的按键的个数
	time_t m_tStartTime;//超时计算的开始时间
	bool m_bCheckTime;//是否要检查超时
	bool m_bFilePlayTimeFlag;//是否要计算文件放音的超时
	int  m_nWaitTime;//当前的可以等待的时间
	int  m_nWaitCount;//已经超时的次数
	int  m_nWaitMaxCount;//可以超时的最大次数
	int  m_nDestChan;//目标通道
	int  m_nGotoFlag ;
	int  m_bInMultiConf;
	char m_szDialNum[MAX_NUMLEN];//外拨的号码
	char m_szDialerNum[MAX_NUMLEN];//外拨主叫的号码
	char m_szRecFile[MAX_NUMLEN];//录音的文件名
	bool m_bNetMsgComing;//是否有网络事件到来
	int m_nNetMsgResult;//网络事件的结果
	bool m_bIsInit;//流程是否是初始化
	bool m_bWaitFlag;//流程是否直接执行
	bool m_bInUse;//通道是否空闲
	int m_nConfNo;//参与的会议号
	int m_nIpChanNo;//参与的会议号
	bool m_bInConf;//是否在会议中
	int m_nBlockSection;//是否阻止在section之外
	int m_nInSection;//是否处在section中,处理在SECTION中挂机问题
	int m_nRecordLine;
	int m_nAgentLine;
	int m_nLineState;

	bool m_bTalking;//聊天中
//	CTime * m_tDialInTime;//电话拨入的时间

	char m_szCalledRecord[MAX_NUMLEN];//记录时长的被叫号码
	char m_szCallerRecord[MAX_NUMLEN];//记录时长的主机号码
	long m_nMusicCount;//点歌次数
	long m_nMusicId;//点歌记录的id号
	char m_szMusicSmsStr[MAX_STRLEN];//送歌中的短消息


	int m_iCurrentLine;//流程当前行
	int m_iNextStateLine;//下一个状态行
	int m_iIfResult;//表达式结果
	int m_iInit;//避免重复挂机
	int m_nLineEventCode;
    int m_HangUpFlag;
	SCRIPTSTRINGHEAP m_stVStringHeap[VARHEAPSIZE];//字符串变量表
	SCRIPTINTHEAP m_stVIntHeap[VARHEAPSIZE];//整型变量表
	int m_nBoolResult[10];//bool表达式的值
	int m_nBoolResultTop;//bool表达式的指针
	int m_iIntVarCount;//整型变量的指针
	int m_iStringVarCount;///字符串变量的指针
	int m_iIntVarLevel;//进入的层次
	int m_iStringVarLevel;//
	int m_iTimeoutProcLine;//超时跳转行
	int m_iFlowTotalLine;//流程总行数
	int m_iLeaveFlag;//是否有留言
//	int m_iDialOutFlag;//数据库检索外呼
	int m_iDialOutResult;//外拨结果
	int m_iDialOutType;
	int m_nSleepSeconds;
	time_t m_tSleepTime ;
	int m_bSleepFlag;
	SQLRESULT m_stSqlResult[10];//sql查询的值
	int  m_nSqlAffectedRow; //sql
	int  m_nSqlAffectedRol;
	char m_szSql[1024];
	char m_szCompany[1024];
	char m_szFlowName[1024];
	char m_szAgentCallOutFlowName[1024];//坐席外呼 指定的流程
	char m_szDialInTime[1024];
	char m_szAccessNo[1024];//接入号
	int m_nDbID;//外拨表中的id
	int m_nConnID;//数据库联接id
	int m_nFlwID;//对应流程号
	char m_szCompanyID[1000];
	char m_sSubFlow[1000];//外拨流程的名字
	int m_nSqlOpFlag;//sql操作的结果
	int m_nDialCountFlag;//dialcount 处理标记
	int m_nChanState ;//0正常1挂机流程中
//	char* GetFieldValue(int dex);
//	char* GetFieldValue(char* dex);
	int m_nFlowState;
	int m_nLevelTemp;
	int m_nDestTermNo;
	char m_szDbCallerMobile[1024];
	char m_szDbDisplayMobile[1024];
	char m_szDbCalledMobile[1024];
	int m_nDbOrderType;
	char m_szDbSongId[1024];
	char m_szDbDialTime[1024];
	char m_szDbLeaveWord[1024];
	char m_szDbSmsMsg[1024];
	char m_szRecordFile[1024];
	int m_nDbDialCount;
	int m_nDbFlag;
	int m_nDbSex;
	char m_szDbName[1024];
	char m_szDbSmsCode[1024];
	int m_nDbFeeValue;
	char m_szDbSmsSender[1024];
	int m_nDbExFeeValue;
	char m_szDbLinkId[1024];
	char m_szDbServiceType[1024];
	char m_szDbExServiceType[1024];
	char m_szDbCompanyId[1024];
	char m_szDbSubFlow[1024];
	char m_szDbAccessNo[1024];
	char m_szDbPrivateData[1024];
	char m_szAgentID[1024];
	char m_szCallID[1024];
	int m_nLineNo;
//	int m_nLineState;

	int m_nLineLevel;
	int m_nHangUpError;//0 自己正常挂机,1被动正常挂机,2数据库错误挂机3放音失败挂机4流程挂机5违例读取挂机6为接入挂机
	void StartFlow(int nContNo);
	void StartHangUpFlow(int nContNo);
	int m_nAgentHangUpFlag ;
	int m_nUserCallInFlag ;
	int m_nUserHangUpFlag;
	int m_nSetScale;
	int m_nInitOK;//读过state后就认为初始化OK
	int m_nProcEvent;
	int m_nEventTime;

	int m_nPriority;
	int m_nFreeTime;
	BYTE m_stResult[1024];
	char *m_pStmt;
	int heap[20];
	int heapp ;
	char szResult[1024];
	char szName[1024];
	int optype;
	int m_nPageStringCount;
	int m_nPageIntCount;

//	int m_nLineEventCode;
	//CString m_sLog;
}CALL;



#define	DDSTR  50001
#define	STRC_PAM  50002
#define	STRV_PAM  50003
#define	DEF_END  50004
#define	DDINT 50005
#define	INTV_PAM  50006
#define	INTC_PAM  50007
#define	AGN_STR  50008
#define	AGN_END  50009
#define	AGN_INT  50010
#define	PLUS_OPT  50011
#define	MINUS_OPT  50012
#define	MUL_OPT  50013
#define	DIV_OPT  50014
#define	MOD_OPT  50015

	/*整型比较 大于*/
#define IFLFV1  60001  /*60001 userid1 userid2 */ /*IFLFV1 userid1 userid2 */ /*if(userid1 > userid2) */ 
#define IFLFV2  60002  /*60002 userid1 2 */ /*IFLFV2 userid1 2 */ /*if(userid1 > 2) */
#define IFLFV3  60003  /*60003 1 userid2 */ /*IFLFV3 1 userid2 */ /*if(2 >userid1 ) */
#define IFLFV4  60004  /*60004 1 2 */ /*IFLFV4 1 2 */ /*if(1 >2 ) */
	/*整型比较 小于*/
#define    IFRFV1 60011  /*60011 userid1 userid2 */ /*IFRFV1 userid1 userid2 */ /*if(userid1 < userid2) */ 
#define    IFRFV2 60012 /*60012 userid1 2 */ /*IFRFV2 userid1 2 */ /*if(userid1 < 2) */
#define    IFRFV3 60013   /*60013 1 userid2 */ /*IFRFV3 1 userid2 */ /*if(2 <userid1 ) */
#define    IFRFV4 60014  /*60014 1 2 */ /*IFRFV4 1 2 */ /*if(1 <2 ) */
	/*字符串比较 大于*/
#define   SFLFV1 60021 /*60021 songid1 songid2 */ /*SFLFV1 songid1 songid2 */ /*sf(songid1 > songid2) */ 
#define   SFLFV2 60022   /*60022 songid1 */ /*IFLFV2 songid1 */ /*sf(songid1 > "welcome.pcm") */
					/* welcome.pcm*/	/* welcome.pcm*/
#define   SFLFV3 60023  /*60023 */			/*SFLFV3 */			/*sf("welcome.pcm" >songid1 )
					/*"welcome.pcm"*/ 	/*"welcome.pcm"*/ 
					/*songid1 */ 		/*songid1 */ 
#define   SFLFV4 60024 /*60024 */			/*IFLFV4 */			/*sf("welcome.pcm" >"welcome1.pcm" )
					/*"welcome.pcm"*/ 	/*"welcome.pcm"*/ 
					/*"welcome1.pcm" */ /*"welcome1.pcm" */ 
	/*字符串比较 小于*/
#define  SFRFV1 60031    /*60031 songid1 songid2 */ /*SFRFV1 songid1 songid2 */ /*sf(songid1 < songid2) */ 
#define  SFRFV2 60032     /*60032 songid1 */ /*SFRFV2 songid1 */ /*sf(songid1 < "welcome.pcm") */
					/* welcome.pcm*/	/* welcome.pcm*/
#define  SFRFV3 60033   /*60033 */			/*SFRFV3 */			/*sf("welcome.pcm" <songid1 )
					/*"welcome.pcm"*/ 	/*"welcome.pcm"*/ 
					/*songid1 */ 		/*songid1 */ 
#define  SFRFV4 60034   /*60034 */			/*IFRFV4 */			/*sf("welcome.pcm" <"welcome1.pcm" )
					/*"welcome.pcm"*/ 	/*"welcome.pcm"*/ 
					/*"welcome1.pcm" */ /*"welcome1.pcm" */ 
	/*整型比较 大于等于*/
#define  IFLVE1 60041  /*60041 userid1 userid2 */ /*IFLVE1 userid1 userid2 */ /*if(userid1 >= userid2) */ 
#define  IFLVE2 60042 /*60042 userid1 2 */ /*IFLVE2 userid1 2 */ /*if(userid1 >= 2) */
#define  IFLVE3 60043 /*60043 1 userid2 */ /*IFLVE3 1 userid2 */ /*if(2 >=userid1 ) */
#define  IFLVE4 60044  /*60044 1 2 */ /*IFLVE4 1 2 */ /*if(1 >=2 ) */
	/*整型比较 小于等于*/
#define  IFRVE1 60051  /*60051 userid1 userid2 */ /*IFRVE1 userid1 userid2 */ /*if(userid1 =< userid2) */ 
#define  IFRVE2 60052  /*60052 userid1 2 */ /*IFRVE2 userid1 2 */ /*if(userid1 =< 2) */
#define  IFRVE3 60053  /*60053 1 userid2 */ /*IFRVE3 1 userid2 */ /*if(2 =<userid1 ) */
#define  IFRVE4 60054   /*60054 1 2 */ /*IFRVE4 1 2 */ /*if(1 =<2 ) */
	/*字符串比较 大于等于*/
#define  SFLVE1 60061 /*60061 songid1 songid2 */ /*SFLVE1 songid1 songid2 */ /*sf(songid1 >= songid2) */ 
#define  SFLVE2 60062 /*60062 songid1 */ /*SFLVE1 songid1 */ /*sf(songid1 >= "welcome.pcm") */
					/* welcome.pcm*/	/* welcome.pcm*/
#define  SFLVE3 60063 /*60063 */			/*SFLVE1 */			/*sf("welcome.pcm" >=songid1 )
					/*"welcome.pcm"*/ 	/*"welcome.pcm"*/ 
					/*songid1 */ 		/*songid1 */ 
#define  SFLVE4 60064/*60064 */			/*SFLVE1 */			/*sf("welcome.pcm" >="welcome1.pcm" )
					/*"welcome.pcm"*/ 	/*"welcome.pcm"*/ 
					/*"welcome1.pcm" */ /*"welcome1.pcm" */ 
	/*字符串比较 小于*/
#define   SFRVE1 60071/*60071 songid1 songid2 */ /*SFRVE1 songid1 songid2 */ /*sf(songid1 <= songid2) */ 
#define   SFRVE2 60072 /*60072 songid1 */ /*SFRVE2 songid1 */ /*sf(songid1 <= "welcome.pcm") */
					/* welcome.pcm*/	/* welcome.pcm*/
#define   SFRVE3 60073 /*60073 */			/*SFRVE3 */			/*sf("welcome.pcm" <=songid1 )
					/*"welcome.pcm"*/ 	/*"welcome.pcm"*/ 
					/*songid1 */ 		/*songid1 */ 
#define   SFRVE4 60074/*60074 */			/*SFRVE4 */			/*sf("welcome.pcm" <="welcome1.pcm" )
					/*"welcome.pcm"*/ 	/*"welcome.pcm"*/ 
					/*"welcome1.pcm" */ /*"welcome1.pcm" */ 
	/*整型比较 等于*/
#define     IFVVE1 60081/*60081 userid1 userid2 */ /*IFVVE1 userid1 userid2 */ /*if(userid1 == userid2) */ 
#define     IFVVE2 60082/*60082 userid1 2 */ /*IFVVE2 userid1 2 */ /*if(userid1 == 2) */
#define     IFVVE3 60083/*60083 1 userid2 */ /*IFVVE3 1 userid2 */ /*if(2 ==userid1 ) */
#define     IFVVE4 60084/*60084 1 2 */ /*IFVVE4 1 2 */ /*if(1 ==2 ) */

	/*字符串比较 等于*/
#define     SFVVE1 60091/*60091 songid1 songid2 */ /*SFVVE1 songid1 songid2 */ /*sf(songid1 == songid2) */ 
#define     SFVVE2 60092/*60092 songid1 */ /*SFVVE2 songid1 */ /*sf(songid1 == "welcome.pcm") */
					/* welcome.pcm*/	/* welcome.pcm*/
#define     SFVVE3 60093/*60093 */			/*SFVVE3 */			/*sf("welcome.pcm" ==songid1 )
					/*"welcome.pcm"*/ 	/*"welcome.pcm"*/ 
					/*songid1 */ 		/*songid1 */ 
#define     SFVVE4 60094/*60094 */			/*SFVVE4 */			/*sf("welcome.pcm" =="welcome1.pcm" )
					/*"welcome.pcm"*/ 	/*"welcome.pcm"*/ 
					/*"welcome1.pcm" */ /*"welcome1.pcm" */ 

	/*整型比较 不等于*/
#define     IFNTE1 60101/*60101 userid1 userid2 */ /*IFNTE1 userid1 userid2 */ /*if(userid1 != userid2) */ 
#define     IFNTE2 60102/*60102 userid1 2 */ /*IFNTE2 userid1 2 */ /*if(userid1 != 2) */
#define     IFNTE3 60103/*60102 1 userid2 */ /*IFNTE3 1 userid2 */ /*if(2 !=userid1 ) */
#define     IFNTE4 60104/*60103 1 2 */ /*IFNTE4 1 2 */ /*if(1 !=2 ) */
	/*字符串比较 不等于*/
#define     SFNTE1 60111/*60111 songid1 songid2 */ /*SFNTE1 songid1 songid2 */ /*sf(songid1 != songid2) */ 
#define     SFNTE2 60112/*60112 songid1 */ /*SFNTE2 songid1 */ /*sf(songid1!= "welcome.pcm") */
					/* welcome.pcm*/	/* welcome.pcm*/
#define     SFNTE3 60113/*60113 */			/*SFNTE3 */			/*sf("welcome.pcm" !=songid1 )
					/*"welcome.pcm"*/ 	/*"welcome.pcm"*/ 
					/*songid1 */ 		/*songid1 */ 
#define     SFNTE4 60114/*60114 */			/*SFNTE4 */			/*sf("welcome.pcm" !="welcome1.pcm" )
					/*"welcome.pcm"*/ 	/*"welcome.pcm"*/ 
					/*"welcome1.pcm" */ /*"welcome1.pcm" */ 

	
#define     NSTATE 20001/*20001 M_1_BEIJING*/  /*NSTATE M_1_BEIJING*/  /*STAET M_1_BEIJING*/ 
#define     NSINIT 20002/*20002*/  /* NSINIT*/  /* init */		/*NOP*/
#define     NSPROC 20003/*20003*/  /* NSPROC*/  /* proc */		/*NOP*/
#define     ICHEAP 20004/*20004*/  /* ICHEAP*/  /*加大变量层次变量进堆, */
#define     DEHEAP 20005/*20005*/  /* DEHEAP*/  /*减少变量层次变量出堆, */
#define     RESULT 20006/*20006 243 454*/  /* RESULT 243 454*/  /*判断当前ifresult结果,如果1 转到243,否则转到454 */
#define     TESTIF 20007/*20007 243 454*/  /* TESTIF 243 454*/  /*判断当前ifresult结果,如果1 转到454,否则转到243 */
#define     NELSE   20008/*20008 344 */  /* ELSE 344*/  /*判断当前ifresult结果,如果1 转到344,否则走到下一条 */
#define     TESTSF   20009	
#define     CASERESULT   20010	
#define     CASESF   20011	
#define     CASEGOTO 20012
#define     CASEDEFAULT 20013
#define     STATEGOTO 20014
#define     INRESULT 20015
#define     OUTRESULT 20016
#define     WHILERESULT 20017
#define     WHILEEND 20018
#define     BEGINSECTION 20019
#define     ENDSECTION 20020
#define     STATERGOTO 20021
#define     PLAYFILE1 80001/*80001 songid index */			/*PLAYFILE1 songid index */			/*playfile(songid,index)*/
#define     PLAYFILE2 80002/*80002 songid 1 */			/*PLAYFILE2 songid 1 */			/*playfile(songid,1)*/
#define     PLAYFILE3 80003/*80003  index */			/*PLAYFILE3 index */			/*playfile("welcome.pcm",index)*/
						/*"welcome.pcm" */			/*"welcome.pcm" */		
#define     PLAYFILE4 80004/*80004 1 */			/*PLAYFILE4 1 */			/*playfile("welcome.pcm",1)*/

⌨️ 快捷键说明

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