MiddleWares_YiHe 郑州颐和医院随访系统中间件

OperationReactor.h 4.6KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  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 onOpProcess(LONG Instance, UINT HostChanNo, UINT AssoChanNo, DEV_RES_TYPE AssoChanType, LPCTSTR CallerNum, LPCTSTR CalleeNum,); // by 颐和随访项目接口
  31. void onOpResult(LONG Instance, bool IsSucceed); // 操作执行结果
  32. void onOpResult(LONG Instance, COperation* pOp, bool IsSucceed, CString Data = _T(""));
  33. void onOpFromDev(CVirtualChan* pChan, DEV_OP OpType, LPCTSTR CallerNum, LPCTSTR CalleeNum);
  34. void releaseOpResult(COperation* pOp);
  35. // 设备直接操作的处理
  36. bool onExtenCallFromDev(CVirtualChan* pHostChan, PCHAN_EVENT_NOTIFY pNotify);
  37. ////////////////////////////////////////////////////////////////////////////////
  38. ////继承自IEslEventHandler//////////////////////////////////////////////////////
  39. virtual void onEslEvtBgJobDone(PBG_JOB_NOTIFY pNotify);
  40. virtual void onEslEvtChanState(LONG OpInstance, CVirtualChan* pChan);
  41. private:
  42. COperationReactor(void);
  43. void __addOperation(COperation* pOperation);
  44. bool __delOperation(COperation* pOperation);
  45. COperation* __getOperation(LONG OpId);
  46. bool __execOp(COperation* pOp, LineOpParam* pParam); // 执行OP
  47. // 线路操作分类处理
  48. bool __procOpMakeCall(LONG Instance, ULONG ResID, LineOpParam* pParam); // 外呼
  49. bool __procOpPCall(LONG Instance, ULONG ResID, LineOpParam* pParam); // 预测外呼
  50. bool __procOpAnswerCall(LONG Instance, ULONG ResID, LineOpParam* pParam); // 应答
  51. bool __procOpHangUp(LONG Instance, ULONG ResID, LineOpParam* pParam); // 挂机
  52. bool __procOpTransfer(LONG Instance, ULONG ResID, LineOpParam* pParam); // 呼叫转移
  53. bool __procOpTurnAgent(LONG Instance, ULONG ResID, LineOpParam* pParam); // 外线来电转座席
  54. bool __procOpTurnOut(LONG Instance, ULONG ResID, LineOpParam* pParam); // 外线来电转外线
  55. bool __procOpTurnIvr(LONG Instance, ULONG ResID, LineOpParam* pParam); // 呼叫转IVR
  56. bool __procOpMeeting(LONG Instance, ULONG ResID, LineOpParam* pParam); // 单步会议
  57. bool __procOpHold(LONG Instance, ULONG ResID, LineOpParam* pParam); // 通话保持
  58. bool __procOpTakeBack(LONG Instance, ULONG ResID, LineOpParam* pParam); // 通话接回
  59. bool __procOpMuteOn(LONG Instance, ULONG ResID, LineOpParam* pParam); // 静音启动
  60. bool __procOpMuteOff(LONG Instance, ULONG ResID, LineOpParam* pParam); // 静音结束
  61. bool __procOpReset(LONG Instance, ULONG ResID, LineOpParam* pParam); // 重置
  62. bool __procOpListen(LONG Instance, ULONG ResID, LineOpParam* pParam); // 监听
  63. bool __procOpInsert(LONG Instance, ULONG ResID, LineOpParam* pParam); // 强插
  64. bool __procOpInstead(LONG Instance, ULONG ResID, LineOpParam* pParam); // 代接
  65. bool __procOpIntercept(LONG Instance, ULONG ResID, LineOpParam* pParam); // 强截
  66. bool __procOpInfoTransaction(LONG Instance, ULONG ResID, LineOpParam* pParam); // 数据交互
  67. bool __procOpConsultBegin(LONG Instance, ULONG ResID, LineOpParam* pParam); // 协商呼叫启动
  68. bool __procOpConsultConfirm(LONG Instance, ULONG ResID, LineOpParam* pParam); // 协商呼叫确认
  69. bool __procOpPlayAndDtmf(LONG Instance, ULONG ResID, LineOpParam* pParam); // 放音收号
  70. bool __procOpRecord(LONG Instance, ULONG ResID, LineOpParam* pParam); // 录音
  71. bool __procOpLeaveWord(LONG Instance, ULONG ResID, LineOpParam* pParam); // 留言录音
  72. bool __procOpFax(LONG Instance, ULONG ResID, LineOpParam* pParam); // 传真
  73. bool __procOpPlayAndDtmfExten(LONG Instance, ULONG ResID, LineOpParam* pParam); // 2019-09-11
  74. private:
  75. CCriticalSection m_TaskLock;
  76. CMap<LONG, LONG, COperation*, COperation*> m_TableOperation;
  77. };