中航光电的中间件仓库

AcdCore.h 3.2KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  1. /*************************************************************************
  2. 【文件名】 AcdCore.h
  3. 【功能模块和目的】 ACD系统核心控制类头文件
  4. 【开发者及日期】 郑石诺 2015/01/20
  5. 【版本】 V1.0.0
  6. 【版权信息】 Copyright (C)2015 河南华谊网络科技有限公司
  7. 【更改记录】
  8. *************************************************************************/
  9. #pragma once
  10. #include "ExtenCtrl.h"
  11. #include "AgentOffice.h"
  12. #include "QueueMgr.h"
  13. #include "SubjectRepository.h"
  14. #include "SoftAuther.h"
  15. class CAgent;
  16. class CExten;
  17. /*************************************************************************
  18. 【类名】 CAcdCore
  19. 【功能】
  20. 【接口说明】 ACD系统核心控制类
  21. 【开发者及日期】 郑石诺 2015/01/20
  22. 【版本】 V1.0.0
  23. 【版权信息】 Copyright (C)2015 河南华谊网络科技有限公司
  24. 【更改记录】
  25. *************************************************************************/
  26. class CAcdCore : public IMsgObserver
  27. {
  28. SINGLETON_DECLARE(CAcdCore)
  29. public:
  30. ~CAcdCore(void);
  31. bool stage1Start(void); // ACD一阶段启动
  32. bool stage2Start(void); // ACD二阶段启动
  33. void exit(void); // ACD系统退出
  34. void reloadAuther(); //授权刷新
  35. CExtenCtrl& getExtenCtrl(void) { return m_ExtenCtrl; }
  36. CAgentOffice& getAgentOffice(void) { return m_AgentOffice; }
  37. CQueueMgr& getQueueMgr(void) { return m_QueueMgr; }
  38. // 事件响应
  39. void onNetLinkDown(PduLinkContent linkContent); // 连接断开后续处理
  40. void onRecvCommand(CPduEntity* a_pPduEntity); // PDU命令到达事件处理
  41. // 继承自IMsgObserver
  42. void onMessage(UINT MsgType, const PARAM lpContent);
  43. private:
  44. CAcdCore(void);
  45. void __onAgentStateUpdated(UINT AgentId); // 座席状态变化事件响应
  46. void __onPhoneStateUpdated(UINT ExtenId); // 分机状态变化事件响应
  47. void __onQueueStateUpdated(UINT QueueNo); // 排队状态变化事件响应
  48. void __removeAgent(UINT AgentId, UINT ExtId, UINT HostAgent); // 关闭指定座席
  49. // 网络命令相关
  50. void __onCmdAgentReg(CPduEntity* a_pCmd); // 座席注册
  51. void __onCmdAgentDial(CPduEntity* a_pCmd); // 与呼叫相关的命令
  52. void __onCmdAgentLogin(CPduEntity* a_pCmd); // 座席签入
  53. void __onCmdAgentLogout(CPduEntity* a_pCmd); // 座席签出
  54. void __onCmdAgentSetState(CPduEntity* a_pCmd); // 主动设置座席状态
  55. void __onCmdAgentSubscribe(CPduEntity* a_pCmd); // 订阅管理
  56. void __onCmdAgentForceLogout(CPduEntity* a_pCmd); // 强制签出
  57. void __onCmdAgentMonControl(CPduEntity* a_pCmd); // 班长电话控制
  58. void __onCmdAgentForceState(CPduEntity* a_pCmd); // 强制座席状态控制
  59. void __onCmdCtiExtenInfo(CPduEntity* a_pCmd); // 内线分机状态变化
  60. void __onCmdCtiRecord(CPduEntity* a_pCmd); // CTI通知座席录音信息
  61. void __onCmdCtiDevCall(CPduEntity* a_pCmd); // CTI通知座席物理外呼
  62. void __onCmdCtiTrunkUsage(CPduEntity* a_pCmd); // CTI通知呼叫任务中继利用率
  63. void __onCmdIvrQueue(CPduEntity* a_pCmd); // 排队管理
  64. void __onCmdNeed2Forward(CPduEntity* a_pCmd); // 只需转发的命令
  65. void __onCmdDataSendToAgent(CPduEntity* a_pCmd); //向Agent转发当前通话中线路数量
  66. void __onCmdGetAgentList(CPduEntity* a_pCmd); // 获取坐席列表
  67. private:
  68. CExtenCtrl m_ExtenCtrl; // 内线分机管理类
  69. CAgentOffice m_AgentOffice; // 座席管理类
  70. CQueueMgr m_QueueMgr; // 来电排队管理类
  71. CSubjectRepository m_SubjectRepository; // 发布主题管理类
  72. SoftAuther m_Auther; //授权
  73. };