| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889 |
- /*************************************************************************
- 【文件名】 OperationReactor.h
- 【功能模块和目的】 设备操作生成器类头文件
- 【开发者及日期】 郑石诺 2016/08/02
- 【版本】 V1.0.0
- 【版权信息】 Copyright (C)2016 河南华谊网络科技有限公司
- 【更改记录】
- *************************************************************************/
- #pragma once
- #include "IEslEventHandler.h"
- class COperation;
- class CVirtualChan;
- /*************************************************************************
- 【类名】 COperationReactor
- 【功能】
- 【接口说明】 设备操作生成器类
- 【开发者及日期】 郑石诺 2016/08/02
- 【版本】 V1.0.0
- 【版权信息】 Copyright (C)2016 河南华谊网络科技有限公司
- 【更改记录】
- *************************************************************************/
- class COperationReactor : public IEslEventHandler
- {
- SINGLETON_DECLARE(COperationReactor)
- public:
- ~COperationReactor(void);
- bool procOperation(LONG Instance, UINT OpType, ULONG ResID, LineOpParam* pParam);
- // 操作相关事件处理
- void onOpProcess(LONG Instance, UINT HostChanNo, UINT AssoChanNo, DEV_RES_TYPE AssoChanType, LPCTSTR CallerNum, LPCTSTR CalleeNum); // 操作执行进展
- void onOpResult(LONG Instance, bool IsSucceed); // 操作执行结果
- void onOpResult(LONG Instance, COperation* pOp, bool IsSucceed, CString Data = _T(""));
- void onOpFromDev(CVirtualChan* pChan, DEV_OP OpType, LPCTSTR CallerNum, LPCTSTR CalleeNum);
-
- void releaseOpResult(COperation* pOp);
- // 设备直接操作的处理
- bool onExtenCallFromDev(CVirtualChan* pHostChan, PCHAN_EVENT_NOTIFY pNotify);
- ////////////////////////////////////////////////////////////////////////////////
- ////继承自IEslEventHandler//////////////////////////////////////////////////////
- virtual void onEslEvtBgJobDone(PBG_JOB_NOTIFY pNotify);
- virtual void onEslEvtChanState(LONG OpInstance, CVirtualChan* pChan);
- private:
- COperationReactor(void);
- void __addOperation(COperation* pOperation);
- bool __delOperation(COperation* pOperation);
- COperation* __getOperation(LONG OpId);
- bool __execOp(COperation* pOp, LineOpParam* pParam); // 执行OP
- // 线路操作分类处理
- bool __procOpMakeCall(LONG Instance, ULONG ResID, LineOpParam* pParam); // 外呼
- bool __procOpPCall(LONG Instance, ULONG ResID, LineOpParam* pParam); // 预测外呼
- bool __procOpAnswerCall(LONG Instance, ULONG ResID, LineOpParam* pParam); // 应答
- bool __procOpHangUp(LONG Instance, ULONG ResID, LineOpParam* pParam); // 挂机
- bool __procOpTransfer(LONG Instance, ULONG ResID, LineOpParam* pParam); // 呼叫转移
- bool __procOpTurnAgent(LONG Instance, ULONG ResID, LineOpParam* pParam); // 外线来电转座席
- bool __procOpTurnOut(LONG Instance, ULONG ResID, LineOpParam* pParam); // 外线来电转外线
- bool __procOpTurnIvr(LONG Instance, ULONG ResID, LineOpParam* pParam); // 呼叫转IVR
- bool __procOpMeeting(LONG Instance, ULONG ResID, LineOpParam* pParam); // 单步会议
- bool __procOpHold(LONG Instance, ULONG ResID, LineOpParam* pParam); // 通话保持
- bool __procOpTakeBack(LONG Instance, ULONG ResID, LineOpParam* pParam); // 通话接回
- bool __procOpMuteOn(LONG Instance, ULONG ResID, LineOpParam* pParam); // 静音启动
- bool __procOpMuteOff(LONG Instance, ULONG ResID, LineOpParam* pParam); // 静音结束
- bool __procOpReset(LONG Instance, ULONG ResID, LineOpParam* pParam); // 重置
- bool __procOpListen(LONG Instance, ULONG ResID, LineOpParam* pParam); // 监听
- bool __procOpInsert(LONG Instance, ULONG ResID, LineOpParam* pParam); // 强插
- bool __procOpInstead(LONG Instance, ULONG ResID, LineOpParam* pParam); // 代接
- bool __procOpIntercept(LONG Instance, ULONG ResID, LineOpParam* pParam); // 强截
- bool __procOpInfoTransaction(LONG Instance, ULONG ResID, LineOpParam* pParam); // 数据交互
- bool __procOpConsultBegin(LONG Instance, ULONG ResID, LineOpParam* pParam); // 协商呼叫启动
- bool __procOpConsultConfirm(LONG Instance, ULONG ResID, LineOpParam* pParam); // 协商呼叫确认
- bool __procOpPlayAndDtmf(LONG Instance, ULONG ResID, LineOpParam* pParam); // 放音收号
- bool __procOpRecord(LONG Instance, ULONG ResID, LineOpParam* pParam); // 录音
- bool __procOpLeaveWord(LONG Instance, ULONG ResID, LineOpParam* pParam); // 留言录音
- bool __procOpFax(LONG Instance, ULONG ResID, LineOpParam* pParam); // 传真
- private:
- CCriticalSection m_TaskLock;
- CMap<LONG, LONG, COperation*, COperation*> m_TableOperation;
- };
|