多数据源中间件标准版1.0

DevLinkInc.h 5.7KB

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