📄 flowanalysis.h
字号:
#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 + -