中间件底层,websocket

DevLinkInc.h 6.3KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189
  1. /*************************************************************************
  2. 【文件名】 DeviceLink.h
  3. 【功能模块和目的】 设备控制模块导出类头文件
  4. 【开发者及日期】 郑石诺 2015/01/05
  5. 【版本】 V1.0.0
  6. 【版权信息】 Copyright (C)2015 河南华谊网络科技有限公司
  7. 【更改记录】
  8. *************************************************************************/
  9. #pragma once
  10. #define DEL_EXT_DETAIL 0x10000000 // 删除坐席明细
  11. #define BUFFER_LENGTH 512 // 要求缓冲区长度
  12. #define PHONE_NUM_LEN 64 // 电话号码长度
  13. #define IP_PORT_LEN 32 // IP及Port长度
  14. #define MAX_LENGTH_HASH 1999 // 哈希表最大容量
  15. #define CHAN_ID_LEN 40 // 通道ID长度 2022-09-28
  16. #define LINE_TURN_TO_IVR 0
  17. #define LINE_TURN_TO_FAX 1
  18. // 线路控制操作类型
  19. typedef enum tagLINE_OP
  20. {
  21. LINE_OP_UNKNOWN = 0, // 未知操作
  22. LINE_OP_MAKE_CALL = 1, // 呼出
  23. LINE_OP_ANSWER_CALL = 2, // 应答呼叫
  24. LINE_OP_RESET = 3, // 线路重置
  25. LINE_OP_HANG_UP = 4, // 挂机
  26. LINE_OP_HOLD = 5, // 保持
  27. LINE_OP_TAKEBACK = 6, // 接回
  28. LINE_OP_TRANSFER = 7, // 转移
  29. LINE_OP_CONFERENCE = 8, // 单步会议
  30. LINE_OP_LISTEN = 9, // 监听
  31. LINE_OP_INSERT = 10, // 强插
  32. LINE_OP_INSTEAD = 11, // 代接
  33. LINE_OP_GRAB = 12, // 强截
  34. LINE_OP_FORCELOGOUT = 13, // 强制签出
  35. LINE_OP_LEAVEWORD = 14, // 留言录音
  36. LINE_OP_PLAY_VOICE = 15, // 开始放音
  37. LINE_OP_FAX = 16, // 传真
  38. LINE_OP_TURNAGENT = 17, // 转坐席
  39. LINE_OP_RECORD = 18, // 录音
  40. LINE_OP_PREDICTION_CALL = 19, // 预测外呼
  41. LINE_OP_TURNOUT = 20, // 转外线
  42. LINE_OP_TURNIVR = 21, // 转IVR
  43. LINE_OP_TRANSFER_INFO = 22, // 上层通知底层信息
  44. LINE_OP_CONSULT_CALL_BEGIN = 23, // 协商呼叫启动
  45. LINE_OP_CONSULT_CALL_CONFIRM = 24, // 协商呼叫确认
  46. LINE_OP_MUTE_BEGIN = 25, // 静音启动
  47. LINE_OP_MUTE_END = 26, // 静音结束
  48. LINE_OP_SELF_CHECK = 27, // 线路自检
  49. LINE_OP_IVRFAX_TRANSFER = 28, // IVR发起传真转移
  50. LINE_OP_CONFERENCE_TAKEBACK = 29, // 单步会议拉主叫到会议
  51. LINE_OP_SET_CHANNEL_VARIABLE = 30, // 设置通道变量,单腿设置,2021-12-3
  52. LINE_OP_SEND_DTMF = 31, // 发送按键,2022-01-12
  53. } LINE_OP;
  54. // 线路录音操作类型
  55. typedef enum tagLINE_RECORD
  56. {
  57. LINE_RECORD_START = 0, // 开始录音
  58. LINE_RECORD_STOP = 1, // 停止录音
  59. } LINE_RECORD;
  60. // 设备回调消息类型
  61. typedef enum tagDEV_EVENT
  62. {
  63. DEV_EVENT_UNKNOWN = 0, // 未知事件
  64. DEV_EVENT_LOG = 1, // 设备日志
  65. DEV_EVENT_RES_TYPE = 2, // 设备资源类型
  66. DEV_EVENT_RES_DETAIL = 3, // 设备资源明细
  67. DEV_EVENT_INIT_END = 4, // 设备初始化结束
  68. DEV_EVENT_RES_STATUS = 5, // 设备资源状态变化
  69. DEV_EVENT_LINE_OP_PROCESS = 6, // 线路操作进展
  70. DEV_EVENT_LINE_OP_RESULT = 7, // 线路操作执行结果
  71. DEV_EVENT_DEV_OPERATOR = 8, // 设备直接操作(来电,物理外拨等)
  72. DEV_EVENT_DEV_CLOSED = 9, // 设备已关闭
  73. } DEV_EVENT;
  74. // 设备主动操作类型
  75. typedef enum tagDEV_OP
  76. {
  77. DEV_OP_UNKNOWN = 0, // 未知操作
  78. DEV_OP_PICK_UP = 1, // 线路摘机
  79. DEV_OP_CALL_IN = 2, // 线路来电
  80. DEV_OP_CALL_OUT = 3, // 线路呼出
  81. DEV_OP_HANG_UP = 4, // 线路挂机
  82. DEV_OP_TRANSFER = 5, // 按键转移
  83. DEV_OP_INSTEAD = 6, // 按键代接
  84. DEV_OP_CONFERENCE = 7, // 按键三方
  85. } DEV_OP;
  86. //设备回调消息内容:
  87. typedef struct tagEventLog /* 日志显示请求 */
  88. {
  89. UINT nLevel; // 日志级别(参阅日志类头文件定义)
  90. CHAR szContent[BUFFER_LENGTH]; // 日志内容
  91. } EventLog;
  92. typedef struct tagEventResType /* 资源类型 */
  93. {
  94. UINT nResType; // 资源类型
  95. } EventResType;
  96. typedef struct tagEventResDetail /* 资源明细 */
  97. {
  98. UINT nResType; // 资源类型
  99. UINT nResID; // 资源ID
  100. CHAR szIPPort[IP_PORT_LEN]; // IP及Port
  101. } EventResDetail;
  102. typedef struct tagEventResStatus /* 资源状态信息 */
  103. {
  104. UINT nResType; // 资源类型
  105. UINT nResID; // 资源ID
  106. UINT nState; // 资源状态
  107. CHAR szCallerNum[PHONE_NUM_LEN]; // 主叫号码
  108. CHAR szCalleeNum[PHONE_NUM_LEN]; // 被叫号码
  109. BOOL nActiveHangup; // 是否是中继主动挂机,中继通道使用 2022-04-15
  110. CHAR szChanID[CHAN_ID_LEN]; // 通道ID 2022-09-28
  111. } EventResStatus;
  112. typedef struct tagLineOpParam /* 线路控制参数信息 */
  113. {
  114. INT nParam1; // 录音时此参数为录音类型 转IVR时:0转IvrLine 1 转FaxLine
  115. INT nParam2; // 外呼、转移、会议时标识被叫线路类型(参考“设备资源类型常量”); // 传真时,0:IVR自动收发传真,1:坐席收发传真
  116. INT nParam3;
  117. INT nParam4;
  118. INT nParam5;
  119. INT nParam6;
  120. INT nParam7;
  121. INT nParam8;
  122. INT nParam9;
  123. INT nParam10; // 2023-03-15 放音收号时,询问按键次数
  124. CHAR szParam1[PHONE_NUM_LEN]; // 主叫号码 / 留言录音结束符
  125. CHAR szParam2[PHONE_NUM_LEN]; // 被叫号码
  126. // 班长操作: 被操作的分机号
  127. CHAR szParam3[BUFFER_LENGTH]; // 继续排队命令: 放音文件 /录音文件名
  128. CHAR szParam4[BUFFER_LENGTH*2]; // 传递通道变量值 2021-12-3 设置通道变量的值,暂时为语音识别设置, 按键值
  129. } LineOpParam;
  130. typedef struct tagEventOpProcess /* 设备操作进展信息 */
  131. {
  132. LONG nInstance; // 调用标识
  133. UINT nHostLine; // 主控线路
  134. UINT nAssoLine; // 关联线路
  135. UINT nAssoLineType; // 关联线路类型(0 外线 1内线)
  136. CHAR szCallerNum[PHONE_NUM_LEN]; // 主叫号码
  137. CHAR szCalleeNum[PHONE_NUM_LEN]; // 被叫号码
  138. } EventOpProcess;
  139. typedef struct tagEventOpResult /* 设备操作执行结果 */
  140. {
  141. LONG nInstance; // 调用标识
  142. UINT nHostLine; // 线路Id
  143. BOOL bIsSucceed; // 成功标志
  144. CHAR szData[BUFFER_LENGTH]; // 随路数据
  145. } EventOpResult;
  146. typedef struct tagEventDevOperation /*设备直接操作信息*/
  147. {
  148. UINT nLineId; // 线路Id
  149. UINT nOpType; // 操作类型
  150. UINT nAssoLine; // 关联线路
  151. UINT nAssoLineType; // 关联线路类型
  152. UINT nFlag; // 操作标识《主动挂机方(0 -> A端,1 -> B端), 接通时的通话方向(0 -> 呼出接通,1 -> 应答接通》
  153. CHAR szCallerNum[PHONE_NUM_LEN]; // 主叫号码
  154. CHAR szCalleeNum[PHONE_NUM_LEN]; // 被叫号码
  155. } EventDevOperation;
  156. /*************************************************************************
  157. 【类名】 IDeviceOperator
  158. 【功能】
  159. 【接口说明】 设备操作者接口类
  160. 【开发者及日期】 郑石诺 2015/05/27
  161. 【版本】 V1.0.0
  162. 【版权信息】 Copyright (C)2015 河南华谊网络科技有限公司
  163. 【更改记录】
  164. *************************************************************************/
  165. class IDeviceOperator
  166. {
  167. public:
  168. virtual ~IDeviceOperator() = 0 {}
  169. virtual void onDeviceEvent(UINT EvtType, PARAM Content) = 0;
  170. virtual BOOL IsRegExten(UINT ExtenID) = 0;
  171. };