hd

OperationReactor.h 4.3KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. /*************************************************************************
  2. 【文件名】 OperationReactor.h
  3. 【功能模块和目的】 设备操作生成器类头文件
  4. 【开发者及日期】 郑石诺 2016/08/02
  5. 【版本】 V1.0.0
  6. 【版权信息】 Copyright (C)2016 河南华谊网络科技有限公司
  7. 【更改记录】
  8. *************************************************************************/
  9. #pragma once
  10. #include "IEslEventHandler.h"
  11. class COperation;
  12. class CVirtualChan;
  13. /*************************************************************************
  14. 【类名】 COperationReactor
  15. 【功能】
  16. 【接口说明】 设备操作生成器类
  17. 【开发者及日期】 郑石诺 2016/08/02
  18. 【版本】 V1.0.0
  19. 【版权信息】 Copyright (C)2016 河南华谊网络科技有限公司
  20. 【更改记录】
  21. *************************************************************************/
  22. class COperationReactor : public IEslEventHandler
  23. {
  24. SINGLETON_DECLARE(COperationReactor)
  25. public:
  26. ~COperationReactor(void);
  27. bool procOperation(LONG Instance, UINT OpType, ULONG ResID, LineOpParam* pParam);
  28. // 操作相关事件处理
  29. void onOpProcess(LONG Instance, UINT HostChanNo, UINT AssoChanNo, DEV_RES_TYPE AssoChanType, LPCTSTR CallerNum, LPCTSTR CalleeNum); // 操作执行进展
  30. void onOpResult(LONG Instance, bool IsSucceed); // 操作执行结果
  31. void onOpResult(LONG Instance, COperation* pOp, bool IsSucceed, CString Data = _T(""));
  32. void onOpFromDev(CVirtualChan* pChan, DEV_OP OpType, LPCTSTR CallerNum, LPCTSTR CalleeNum);
  33. void releaseOpResult(COperation* pOp);
  34. // 设备直接操作的处理
  35. bool onExtenCallFromDev(CVirtualChan* pHostChan, PCHAN_EVENT_NOTIFY pNotify);
  36. ////////////////////////////////////////////////////////////////////////////////
  37. ////继承自IEslEventHandler//////////////////////////////////////////////////////
  38. virtual void onEslEvtBgJobDone(PBG_JOB_NOTIFY pNotify);
  39. virtual void onEslEvtChanState(LONG OpInstance, CVirtualChan* pChan);
  40. private:
  41. COperationReactor(void);
  42. void __addOperation(COperation* pOperation);
  43. bool __delOperation(COperation* pOperation);
  44. COperation* __getOperation(LONG OpId);
  45. bool __execOp(COperation* pOp, LineOpParam* pParam); // 执行OP
  46. // 线路操作分类处理
  47. bool __procOpMakeCall(LONG Instance, ULONG ResID, LineOpParam* pParam); // 外呼
  48. bool __procOpPCall(LONG Instance, ULONG ResID, LineOpParam* pParam); // 预测外呼
  49. bool __procOpAnswerCall(LONG Instance, ULONG ResID, LineOpParam* pParam); // 应答
  50. bool __procOpHangUp(LONG Instance, ULONG ResID, LineOpParam* pParam); // 挂机
  51. bool __procOpTransfer(LONG Instance, ULONG ResID, LineOpParam* pParam); // 呼叫转移
  52. bool __procOpTurnAgent(LONG Instance, ULONG ResID, LineOpParam* pParam); // 外线来电转座席
  53. bool __procOpTurnOut(LONG Instance, ULONG ResID, LineOpParam* pParam); // 外线来电转外线
  54. bool __procOpTurnIvr(LONG Instance, ULONG ResID, LineOpParam* pParam); // 呼叫转IVR
  55. bool __procOpMeeting(LONG Instance, ULONG ResID, LineOpParam* pParam); // 单步会议
  56. bool __procOpHold(LONG Instance, ULONG ResID, LineOpParam* pParam); // 通话保持
  57. bool __procOpTakeBack(LONG Instance, ULONG ResID, LineOpParam* pParam); // 通话接回
  58. bool __procOpMuteOn(LONG Instance, ULONG ResID, LineOpParam* pParam); // 静音启动
  59. bool __procOpMuteOff(LONG Instance, ULONG ResID, LineOpParam* pParam); // 静音结束
  60. bool __procOpReset(LONG Instance, ULONG ResID, LineOpParam* pParam); // 重置
  61. bool __procOpListen(LONG Instance, ULONG ResID, LineOpParam* pParam); // 监听
  62. bool __procOpInsert(LONG Instance, ULONG ResID, LineOpParam* pParam); // 强插
  63. bool __procOpInstead(LONG Instance, ULONG ResID, LineOpParam* pParam); // 代接
  64. bool __procOpIntercept(LONG Instance, ULONG ResID, LineOpParam* pParam); // 强截
  65. bool __procOpInfoTransaction(LONG Instance, ULONG ResID, LineOpParam* pParam); // 数据交互
  66. bool __procOpConsultBegin(LONG Instance, ULONG ResID, LineOpParam* pParam); // 协商呼叫启动
  67. bool __procOpConsultConfirm(LONG Instance, ULONG ResID, LineOpParam* pParam); // 协商呼叫确认
  68. bool __procOpPlayAndDtmf(LONG Instance, ULONG ResID, LineOpParam* pParam); // 放音收号
  69. bool __procOpRecord(LONG Instance, ULONG ResID, LineOpParam* pParam); // 录音
  70. bool __procOpLeaveWord(LONG Instance, ULONG ResID, LineOpParam* pParam); // 留言录音
  71. bool __procOpFax(LONG Instance, ULONG ResID, LineOpParam* pParam); // 传真
  72. private:
  73. CCriticalSection m_TaskLock;
  74. CMap<LONG, LONG, COperation*, COperation*> m_TableOperation;
  75. };