升龙物业 老版本 ocx IPO, 加密狗 转值班电话

PduLinkInc.h 7.6KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210
  1. /*************************************************************************
  2. 【文件名】 PduLinkInc.h
  3. 【功能模块和目的】 定义PDU通讯相关信息
  4. 【开发者及日期】 郑石诺 2015/03/19
  5. 【版本】 V1.0.0
  6. 【版权信息】 Copyright (C)2015 河南华谊网络科技有限公司
  7. 【更改记录】
  8. *************************************************************************/
  9. #pragma once
  10. // 业务相关
  11. #define PDU_RECONN_TIMER 1001 // 自动重连定时器
  12. #define PDU_LISTEN_TIMER 1002 // 心跳监听定时器
  13. #define VAL_RECONNECT_INTERVAL 15000
  14. #define VAL_LISTEN_INTERVAL 30000
  15. #define VAL_THREAD_PER_PROCESSOR 2
  16. #define VAL_THREAD_EXIT_CODE ((void*)-1)
  17. // 命令收发相关
  18. #define PDU_IP_LEN 32 // IP地址长度
  19. #define PDU_HEAD_LEN 26 // PDU消息包头长度
  20. #define PDU_MAX_DATA_LEN 2048 // 消息内容最大长度
  21. #define PDU_BUFFER_LEN 4096
  22. #define MAX_POST_ACCEPT 5
  23. // 命令解析相关
  24. #define PDU_MAX_CMD_COUNT 1000 // PDU命令最大数量
  25. #define PDU_CMD_MAX_DATA_COUNT 32 // PDU单个命令中数据字段最大数量
  26. #define PDU_MAX_DATA_BUF_LEN 512 // PDU数据字段最大长度
  27. // 命令内容相关
  28. #define BUFFER_LENGTH 512 // 要求缓冲区长度
  29. #define PHONE_NUM_LEN 64 // 电话号码长度
  30. #define FILE_NAME_LEN 512 // 文件全路径加文件名长度
  31. #define MAX_DATA_BUF_LEN 512 // 随路数据
  32. #define PHONE_NUM_INFO 512 // 号码归属地
  33. //类型定义:设备类型
  34. typedef enum tagPDU_DEV_TYPE
  35. {
  36. PDU_DEV_TYPE_UNKNOWN = 0x00, // 未知
  37. PDU_DEV_TYPE_CTI = 0x01, // CTI
  38. PDU_DEV_TYPE_IVR = 0x02, // IVR
  39. PDU_DEV_TYPE_ACD = 0x03, // ACD
  40. PDU_DEV_TYPE_AGENT = 0x04, // 座席OCX
  41. PDU_DEV_TYPE_VS_PLAY = 0x05, // VS语音
  42. PDU_DEV_TYPE_VS_REC = 0x06, // VS录音
  43. PDU_DEV_TYPE_VS_PLAY_REC = 0x07, // 录放音VS
  44. PDU_DEV_TYPE_VS_FAX = 0x08, // 传真VS
  45. PDU_DEV_TYPE_SC_SERVER = 0x09, // 毅航控制核心程序
  46. PDU_DEV_TYPE_SC_CLIENT = 0x10, // 毅航控制核心程序客户端
  47. PDU_DEV_TYPE_SERVER = 0x11 //Server Type
  48. } PDU_DEV_TYPE;
  49. // 类型定义:SOCKET连接类型
  50. typedef enum tagPDU_LINK_TYPE
  51. {
  52. PDU_LINK_TYPE_SERVER = 0, // SERVER端连接
  53. PDU_LINK_TYPE_CLIENT = 1, // CLIENT端连接
  54. } PDU_LINK_TYPE;
  55. //类型定义:连接状态
  56. typedef enum tagPDU_LINK_STATE
  57. {
  58. PDU_LINK_STATE_UNKNOWN = 0, // 未知状态
  59. PDU_LINK_STATE_SUCCESSED = 1, // 请求连接成功
  60. PDU_LINK_STATE_FAILED = 2, // 请求连接失败
  61. PDU_LINK_STATE_ACCEPTED = 3, // 已接受连接请求
  62. PDU_LINK_STATE_DISCONNECTED = 4, // 连接已断开
  63. PDU_LINK_STATE_REG_OK = 5, // 注册成功
  64. PDU_LINK_STATE_REG_FAILED = 6, // 注册失败
  65. } PDU_LINK_STATE;
  66. // 类型定义:录音控制类型
  67. typedef enum tagPDU_REC_CONTROL
  68. {
  69. PDU_REC_BEGIN = 0, // 录音启动
  70. PDU_REC_STOP, // 录音停止
  71. PDU_REC_PAUSE, // 录音暂停
  72. PDU_REC_RESUME, // 录音继续
  73. } PDU_REC_CONTROL;
  74. //类型定义:连接信息
  75. typedef struct tagPduLinkContent
  76. {
  77. PDU_DEV_TYPE nLocalType; // 本端设备类型
  78. int nLocalId; // 本端设备ID
  79. PDU_DEV_TYPE nFarType; // 对端设备类型
  80. int nFarId; // 对端设备ID
  81. CHAR szFarIp[PDU_IP_LEN]; // 对端IP地址
  82. int nFarPort; // 对端端口号
  83. PDU_LINK_STATE nLinkState; // PDU连接当前状态
  84. } PduLinkContent;
  85. // 类型定义:PDU单条数据
  86. typedef struct tagPduDataMemo
  87. {
  88. int nDataType; // 数据类型
  89. int nDataLen; // 数据长度
  90. CHAR szExplain[PDU_MAX_DATA_BUF_LEN]; // 说明
  91. int nIsExecReturn; // 是否为执行返回数据
  92. CHAR szValue[PDU_MAX_DATA_BUF_LEN]; // 数据内容
  93. } PduDataMemo;
  94. // 类型定义:PDU命令类型
  95. typedef enum tagPDU_CMD_TYPE
  96. {
  97. // 通用命令(1-100)
  98. PDU_CMD_UNKNOWN = 0, // 未知命令
  99. PDU_CMD_REG, // 注册
  100. PDU_CMD_LISTEN, // 心跳监听
  101. // OCX命令集(101-200)
  102. PDU_CMD_AGENT_LOGIN = 101, // 签入
  103. PDU_CMD_AGENT_LOGOUT = 102, // 签出
  104. PDU_CMD_AGENT_SETSTATE = 103, // 设置坐席状态
  105. PDU_CMD_AGENT_MAKECALL = 104, // 坐席通知CTI外呼
  106. PDU_CMD_AGENT_ANSWER = 105, // 应答
  107. PDU_CMD_AGENT_HANGUP = 106, // 挂机
  108. PDU_CMD_AGENT_HOLD = 107, // 保持
  109. PDU_CMD_AGENT_TAKEBACK = 108, // 接回
  110. PDU_CMD_AGENT_TRANSTALK = 109, // 转移
  111. PDU_CMD_AGENT_THREETALK = 110, // 三方通话
  112. PDU_CMD_AGENT_CANCEL = 111, // 取消操作
  113. PDU_CMD_AGENT_CONSULTATION_CALL = 112, // 协商呼叫
  114. PDU_CMD_AGENT_CONFIRM_TRANSFER = 113, // 确认转移
  115. PDU_CMD_AGENT_RESET = 114, // 重置
  116. PDU_CMD_AGENT_MONI_LISTEN = 115, // 监听
  117. PDU_CMD_AGENT_MONI_REPLACE = 116, // 代接
  118. PDU_CMD_AGENT_MONI_INSERT = 117, // 强插
  119. PDU_CMD_AGENT_MONI_INTERCEPT = 118, // 强截
  120. PDU_CMD_AGENT_MONI_CUT = 119, // 强拆
  121. PDU_CMD_AGENT_MONI_FORCE_LOGOUT = 120, // 强制签出
  122. PDU_CMD_AGENT_MONI_FORCE_STATE = 121, // 强制状态控制
  123. PDU_CMD_AGENT_FAX = 122, // 传真
  124. PDU_CMD_AGENT_TURN_TO_IVR = 123, // 座席转IVR
  125. PDU_CMD_AGENT_SUBSCRIBE = 124, // OCX订阅
  126. PDU_CMD_AGENT_CANCEL_SUBSCRIBE = 125, // 取消订阅
  127. PDU_CMD_AGENT_MUTE = 126, // 静音操作(0开始静音,1结束静音)
  128. // ACD命令集(201-300)
  129. PDU_CMD_ACD_AGENT_STATE = 201, // ACD通知坐席状态(包括订阅状态,用工号区分自己还是被订阅者)
  130. PDU_CMD_ACD_CALL_NUM = 202, // ACD通知坐席来电数量
  131. PDU_CMD_ACD_SUBMIT_DATA = 203, // ACD通知Ocx订阅数据
  132. // CTI命令集(301-400)
  133. PDU_CMD_CTI_LINE_STATE = 301, // CTI通知ACD及OCX内线线路信息
  134. PDU_CMD_CTI_DEV_CALL = 302, // CTI通知坐席物理外呼
  135. PDU_CMD_CTI_RECORD = 303, // CTI通知坐席录音信息
  136. PDU_CMD_CTI_ACD_QUEUE_PAUSE = 304, // CTI通知ACD暂停排队
  137. PDU_CMD_CTI_ACD_TRUNK_USAGE = 305, // CTI通知ACD呼叫任务外线利用率
  138. PDU_CMD_CTI_IVR_CALLIN = 306, // CTI通知IVR外线来电
  139. PDU_CMD_CTI_IVR_TURNIVR = 307, // CTI通知IVR转IVR
  140. PDU_CMD_CTI_IVR_HANGUP = 308, // CTI通知IVR外线挂机
  141. PDU_CMD_CTI_IVR_PREDICTIVECALL = 309, // CTI通知IVR预测呼叫
  142. PDU_CMD_CTI_VS_RECORD = 310, // CTI通知VS录音控制
  143. PDU_CMD_CTI_VS_LINECONTROL = 311, // CTI通知VS线路控制
  144. // IVR命令集(401-500)
  145. PDU_CMD_IVR_HANGUP = 401, // IVR通知CTI挂机
  146. PDU_CMD_IVR_END = 402, // IVR通知CTI流程结束
  147. PDU_CMD_IVR_WANT_AGENT = 403, // IVR通知CTI请求排队
  148. PDU_CMD_IVR_QUEUE_CONTINUE = 404, // IVR通知CTI继续排队
  149. PDU_CMD_IVR_QUEUE_CANCEL = 405, // IVR通知CTI取消排队
  150. PDU_CMD_IVR_TURN_AGENT = 406, // IVR通知CTI转坐席
  151. PDU_CMD_IVR_CALL_OUT = 407, // IVR通知CTI自动呼叫
  152. PDU_CMD_IVR_TURN_OUTLINE = 408, // IVR通知CTI转外线
  153. PDU_CMD_IVR_PLAY_DTMF = 409, // IVR通知CTI放音收按键(VS也要用)
  154. PDU_CMD_IVR_FAX = 410, // IVR通知CTI收发传真(VS也要用)
  155. PDU_CMD_IVR_LEAVE_WORD = 411, // IVR通知Cti留言(VS也要用)
  156. // Stable Core命令集(501-600)
  157. PDU_CMD_SC_RES_DETAIL = 501, // SC上报资源明细
  158. PDU_CMD_SC_RES_STATE = 502, // SC上报资源状态
  159. PDU_CMD_SC_ACTIVE_EVENT = 503, // SC上报设备主动事件
  160. PDU_CMD_SC_REQ_PROCESS = 504, // SC上报请求执行进展
  161. PDU_CMD_SC_REQ_RESULT = 505, // SC上报请求执行结果
  162. PDU_CMD_SC_REQ_PCALL = 506, // 请求预测外呼
  163. PDU_CMD_SC_REQ_MAKECALL = 507, // 请求呼叫
  164. PDU_CMD_SC_REQ_ANSWER = 508, // 请求应答
  165. PDU_CMD_SC_REQ_HANGUP = 509, // 请求挂机
  166. PDU_CMD_SC_REQ_TRANSFER = 510, // 请求转移
  167. PDU_CMD_SC_REQ_TRUNKTURN = 511, // 请求中继线路转移
  168. PDU_CMD_SC_REQ_PLAY = 512, // 请求放音
  169. PDU_CMD_SC_REQ_CONSULTCALL = 513, // 请求协商呼叫
  170. PDU_CMD_SC_REQ_CONSULTCONFIRM = 514, // 请求协商确认
  171. PDU_CMD_SC_REQ_MUTE = 515, // 请求静音
  172. PDU_CMD_SC_REQ_INSTEAD = 516, // 请求代接
  173. PDU_CMD_SC_REQ_INTERCEPT = 517, // 请求强截
  174. PDU_CMD_SC_REQ_INSERT = 518, // 请求强插
  175. PDU_CMD_SC_REQ_LISTEN = 519, // 请求监听
  176. PDU_CMD_SC_REQ_LEAVEWORD = 520, // 请求留言
  177. PDU_CMD_SC_REQ_MEETING = 521, // 请求会议
  178. PDU_CMD_SC_REQ_FAX = 522, // 请求传真
  179. PDU_CMD_SC_REQ_TURNIVR = 523, // 请求转移IVR
  180. PDU_CMD_SC_REQ_RESET = 524, // 请求重置
  181. PDU_CMD_SC_REQ_RECORD = 525, // 请求录音
  182. PDU_CMD_SC_REQ_LINECHECK = 526, // 请求线路自检
  183. PDU_CMD_SC_REQ_INFOTRANSFER = 527, // 请求数据交换
  184. PDU_CMD_SC_REQ_TURNAGENT = 528 // 请求转坐席
  185. } PDU_CMD_TYPE;