/************************************************************************* 【文件名】 IvrCore.h 【功能模块和目的】 IVR系统核心控制类头文件 【开发者及日期】 郑石诺 2015/01/29 【版本】 V1.0.0 【版权信息】 Copyright (C)2015 河南华谊网络科技有限公司 【更改记录】 *************************************************************************/ #pragma once #include "FlowTemplateMgr.h" #include "IvrFlowMgr.h" /************************************************************************* 【类名】 CIvrCore 【功能】 【接口说明】 IVR系统核心控制类 【开发者及日期】 郑石诺 2015/01/29 【版本】 V1.0.0 【版权信息】 Copyright (C)2015 河南华谊网络科技有限公司 【更改记录】 *************************************************************************/ class CIvrCore { SINGLETON_DECLARE(CIvrCore) public: ~CIvrCore(void); bool stage1Start(void); // IVR1阶段启动 bool stage2Start(void); // IVR2阶段启动 void exit(void); // IVR系统退出 void procPdu(CPduEntity* pPduEntity); // 处理PDU void onNetLinkUpdated(bool IsConnect); // 网络连接状态改变的处理函数 CFlowTemplateMgr& flowTemplateMgr(void) { return m_TemplateMgr; } CIvrFlowMgr& ivrFLowMgr(void) { return m_FlowMgr; } int GetCurrPos(CIvrFlow* pFlow) {return m_FlowMgr.GetCurrIvrPos(pFlow);} private: CIvrCore(void); bool __setupFlowEnvironment(void); // 设置流程环境 void __procMsgCtiCallIn(CPduEntity* pPduEntity); // CTI通知IVR外线来电 void __procMsgCtiPredictiveCall(CPduEntity* pPduEntity);// CTI通知IVR自动外呼 void __procMsgCtiTurnIvr(CPduEntity* pPduEntity); // CTI通知IVR转IVR void __procMsgCtiHangup(CPduEntity* pPduEntity); // CTI通知IVR外线挂机 private: CFlowTemplateMgr m_TemplateMgr; CIvrFlowMgr m_FlowMgr; };