中间件底层,websocket

QueueMgr.h 1.9KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. /*************************************************************************
  2. 【文件名】 QueueMgr.h
  3. 【功能模块和目的】 来电队列管理类头文件
  4. 【开发者及日期】 郑石诺 2015/01/21
  5. 【版本】 V1.0.0
  6. 【版权信息】 Copyright (C)2015 河南加一信息技术有限公司
  7. 【更改记录】
  8. *************************************************************************/
  9. #pragma once
  10. class CQueue;
  11. class CAgentOffice;
  12. class CAgent;
  13. /*************************************************************************
  14. 【类名】 CQueueMgr
  15. 【功能】
  16. 【接口说明】 来电队列管理类
  17. 【开发者及日期】 郑石诺 2015/01/21
  18. 【版本】 V1.0.0
  19. 【版权信息】 Copyright (C)2015 河南加一信息技术有限公司
  20. 【更改记录】
  21. *************************************************************************/
  22. class CQueueMgr
  23. {
  24. public:
  25. CQueueMgr(void);
  26. ~CQueueMgr(void);
  27. UINT callCount(void); // 读取等待排队的来电数量
  28. UINT callCount(UINT QueueNo); // 读取等待排队的来电数量
  29. CString waitCount(); // 获取每个技能组的排队数量
  30. UINT talkIngCount(UINT QueueNo); // 读取每个坐席组通话数量 2022-01-27
  31. void clear(void);
  32. bool getCallInfo(Call2Show& Info);
  33. // 座席相关
  34. void addAgent(CAgent* pAgent);
  35. void delAgent(CAgent* pAgent, bool isClear = false); // 2022-09-13 添加参数isclear,区分是否是cti断开造成清空坐席
  36. void onAgentFree(CAgent* pAgent);
  37. // 排队管理操作
  38. void onQueueAsking(CPduEntity* pCmd); // IVR请求座席命令响应
  39. void onQueueCancel(CPduEntity* pCmd); // IVR取消排队命令响应
  40. void onQueueContinue(CPduEntity* pCmd); // IVR继续请求排队命令响应
  41. void onQueuePause(CPduEntity* pCmd); // IVR暂停排队命令响应
  42. // 更新呼入电话的当前排队位置
  43. void onUpdateCallIndex();
  44. // 根据坐席组号获取一个空闲坐席
  45. bool GetFreeAgent(int GroupNo, UINT& AgentId, UINT& ExtenId);
  46. private:
  47. CQueue* __getQueue(UINT QueueNo, bool NewWhenNull = false);
  48. void __freeQueues(void);
  49. private:
  50. CArray<CQueue*, CQueue*> m_QueueArray;
  51. std::map<UINT, UINT> m_QueryCount; // 2022-09-02 解决获取每个坐席组数量重复的情况
  52. };