多数据源中间件标准版1.0

DevInfoInc.h 6.5KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231
  1. /*************************************************************************
  2. 【文件名】 DevInfoInc.h
  3. 【功能模块和目的】 设备基本信息定义头文件
  4. 【开发者及日期】 郑石诺 2015/01/09
  5. 【版本】 V1.0.0
  6. 【版权信息】 Copyright (C)2015 河南华谊网络科技有限公司
  7. 【更改记录】
  8. *************************************************************************/
  9. #pragma once
  10. #define DEL_EXT_DETAIL 0x10000000 // 删除坐席明细
  11. #define DEVICE_STATE_ENABLE 1
  12. #define DEVICE_STATE_DISABLE 0
  13. #define LINE_ID_INVALID 0
  14. #define BUF_LEN_SIP_ACCOUNT 50
  15. #define BUF_LEN_SIP_PWD 30
  16. #define BUF_LEN_SIP_PROXY 50
  17. #define BUF_LEN_CALLER 24
  18. #define BUF_LEN_PREFIX 8
  19. #define INVALID_ID_SIP_ACCOUNT -1
  20. #define INVALID_ID_TRUNK_ITEM -1
  21. #define INVALID_ID_DT_SPAN -1
  22. #define CONST_DEF_SIP_REG_TRUE _T("true")
  23. #define CONST_DEF_SIP_REG_FALSE _T("false")
  24. #define CONST_TRUNK_MATCH_PRIORITY_HIGHEST 4
  25. #define CONST_TRUNK_MATCH_PRIORITY_HIGHER 3
  26. #define CONST_TRUNK_MATCH_PRIORITY_HIGH 2
  27. #define CONST_TRUNK_MATCH_PRIORITY_NORMAL 1
  28. #define CONST_STR_TRUNK_MATCH_PRIORITY_HIGHEST _T("4")
  29. #define CONST_STR_TRUNK_MATCH_PRIORITY_HIGHER _T("3")
  30. #define CONST_STR_TRUNK_MATCH_PRIORITY_HIGH _T("2")
  31. #define CONST_STR_TRUNK_MATCH_PRIORITY_NORMAL _T("1")
  32. // IPO线路类型
  33. #define CONST_IPO_LINE_TYPE_DT _T("DT")
  34. #define CONST_IPO_LINE_TYPE_ANA _T("ANA")
  35. #define CONST_IPO_LINE_TYPE_H323 _T("H323")
  36. #define CONST_IPO_LINE_TYPE_SIP _T("SIP")
  37. #define CONST_IPO_LINE_TYPE_EXT _T("EXT")
  38. #define CONST_IPO_LINE_TYPE_IVR _T("IVR")
  39. #define CONST_IPO_LINE_TYPE_FAX _T("FAX")
  40. #define CONST_IPO_DTC_SEED 10000
  41. // 设备类型
  42. typedef enum tagDEV_TYPE
  43. {
  44. DEV_TYPE_IPO = 0,
  45. DEV_TYPE_EHANGCOM = 1,
  46. DEV_TYPE_FS = 2
  47. } DEV_TYPE;
  48. // 设备资源类型常量
  49. typedef enum tagDEV_RES_TYPE
  50. {
  51. DEV_RES_TYPE_UNKNOWN = 0x00, // 未知设备
  52. DEV_RES_TYPE_EXT = 0x01, // 内线分机
  53. DEV_RES_TYPE_TRUNK = 0x02, // 外线
  54. DEV_RES_TYPE_IVR = 0x03, // IVR线路
  55. DEV_RES_TYPE_CONFERENCE = 0x04, // 会议资源
  56. DEV_RES_TYPE_FAX = 0x05, // 传真资源
  57. DEV_RES_TYPE_VOICE = 0x06, // 语音资源
  58. DEV_RES_TYPE_VOIP = 0x07, // VoIP资源
  59. DEV_RES_TYPE_DSP = 0x08, // DSP资源
  60. DEV_RES_TYPE_IPM = 0x09, // IPM资源
  61. DEV_RES_TYPE_VIDEO = 0x0A, // 视频资源
  62. DEV_RES_TYPE_MB = 0x0B // 主板
  63. } DEV_RES_TYPE;
  64. // 外线资源状态
  65. typedef enum tagTRUNK_STATE
  66. {
  67. TRUNK_STATE_DISABLED = 0x10, // 不可用
  68. TRUNK_STATE_FREE = 0x11, // 空闲
  69. TRUNK_STATE_DIALING = 0x12, // 拨号
  70. TRUNK_STATE_RING_BACK = 0x13, // 呼出振铃
  71. TRUNK_STATE_ALERTING = 0x14, // 来电振铃
  72. TRUNK_STATE_TALKING = 0x15, // 通话中
  73. TRUNK_STATE_GET_DTMF = 0x16, // 取号状态
  74. TRUNK_STATE_FAX = 0x17, // 收发传真中
  75. TRUNK_STATE_BUSY = 0x18, // 资源释放过程中(也称占用状态)
  76. TRUNK_STATE_UNKNOWN = 0x19
  77. } TRUNK_STATE;
  78. // 内线分机资源状态
  79. typedef enum tagINNER_STATE
  80. {
  81. INNER_STATE_DISABLED = 0x00, // 分机不可用
  82. INNER_STATE_FREE = 0x01, // 空闲
  83. INNER_STATE_INIT = 0x02, // 摘机等待拨号
  84. INNER_STATE_DIALING = 0x03, // 正在拨号
  85. INNER_STATE_RING_BACK = 0x04, // 呼出振铃
  86. INNER_STATE_ALERTING = 0x05, // 来电振铃
  87. INNER_STATE_TALKING = 0x06, // 通话中
  88. INNER_STATE_PLAY_BUSYTONE = 0x07, // 播放忙音中
  89. INNER_STATE_REMOVE = 0x08, // 移除IP分机
  90. INNER_STATE_HELD = 0x0100 // 通话保持中
  91. } INNER_STATE;
  92. // VOIP线路资源状态
  93. typedef enum tagVOIP_STATE
  94. {
  95. VOIP_EXT_STATE_DISABLED = INNER_STATE_DISABLED, // 内线模式下分机不可用
  96. VOIP_EXT_STATE_FREE = INNER_STATE_FREE, // 内线模式下空闲
  97. VOIP_EXT_STATE_INIT = INNER_STATE_INIT, // 内线模式下摘机等待拨号
  98. VOIP_EXT_STATE_DIALING = INNER_STATE_DIALING, // 内线模式下正在拨号
  99. VOIP_EXT_STATE_RING_BACK = INNER_STATE_RING_BACK, // 内线模式下呼出振铃
  100. VOIP_EXT_STATE_ALERTING = INNER_STATE_ALERTING, // 内线模式下来电振铃
  101. VOIP_EXT_STATE_TALKING = INNER_STATE_TALKING, // 内线模式下通话中
  102. VOIP_TRUNK_STATE_DISABLED = TRUNK_STATE_DISABLED, // 外线模式下不可用
  103. VOIP_TRUNK_STATE_FREE = TRUNK_STATE_FREE, // 外线模式下空闲
  104. VOIP_TRUNK_STATE_DIALING = TRUNK_STATE_DIALING, // 外线模式下拨号
  105. VOIP_TRUNK_STATE_RING_BACK = TRUNK_STATE_RING_BACK, // 外线模式下呼出振铃
  106. VOIP_TRUNK_STATE_ALERTING = TRUNK_STATE_ALERTING, // 外线模式下来电振铃
  107. VOIP_TRUNK_STATE_TALKING = TRUNK_STATE_TALKING, // 外线模式下通话中
  108. VOIP_TRUNK_STATE_UNKNOWN = TRUNK_STATE_UNKNOWN // 外线模式下未知状态
  109. } VOIP_STATE;
  110. #define HELD_STATE_MASK 0x0100
  111. #define HELD_STATE_FILTER_MASK 0x00FF
  112. #define HELD_STATE_IND_MASK 0xFF00
  113. // 呼叫失败原因
  114. typedef enum tagCallFailedCause
  115. {
  116. CALL_FAILED_CAUSE_SUCCESS = 0, // 呼叫成功
  117. CALL_FAILED_CAUSE_USER_HANGUP = 1, // 用户挂断
  118. CALL_FAILED_CAUSE_USER_BUSY = 2, // 占线
  119. CALL_FAILED_CAUSE_NO_ANSWER = 3, // 无人接听
  120. CALL_FAILED_CAUSE_NUM_INVALID = 4, // 无效号码
  121. CALL_FAILED_CAUSE_DST_OFF = 5, // 被叫关机
  122. CALL_FAILED_CAUSE_NETWORK_ERR = 6 // 网络问题
  123. } CallFailedCause;
  124. // 放音收号类型
  125. typedef enum tagPlayVoiceMode
  126. {
  127. PVM_PLAY_WAIT_DIGIT = 1, // 放音收号
  128. PVM_PLAY_ONLY = 2, // 只放音
  129. PVM_WAIT_DIGIT = 3, // 只收号
  130. PVM_STOP_PLAY = 4 // 停止放音
  131. } PlayVoiceMode;
  132. // 会议资源状态
  133. typedef enum tagMEETING_STATE
  134. {
  135. MEETING_STATE_DISABLED = 0, // 不可用
  136. MEETING_STATE_FREE = 1, // 空闲
  137. MEETING_STATE_BUSY = 2, // 占用
  138. } MEETING_STATE;
  139. // 传真资源状态
  140. typedef enum tagFAX_STATE
  141. {
  142. FAX_STATE_DISABLED = 0, // 不可用
  143. FAX_STATE_FREE = 1, // 空闲
  144. FAX_STATE_BUSY = 2, // 占用状态
  145. } FAX_STATE;
  146. // 语音资源状态
  147. typedef enum tagVOICE_STATE
  148. {
  149. VOICE_STATE_DISABLED = 0, // 不可用
  150. VOICE_STATE_FREE = 1, // 空闲
  151. VOICE_STATE_BUSY = 2, // 占用
  152. } VOICE_STATE;
  153. typedef enum tagLINE_TYPE
  154. {
  155. LINE_EXTEN = 0, // 分机线路
  156. LINE_TRUNK = 1, // 数字中继线路
  157. LINE_VOIP = 2, // VOIP线路
  158. LINE_IVR = 3, // IVR线路
  159. LINE_NULL = 4 // 未知类型
  160. } LINE_TYPE;
  161. // 录音类型
  162. typedef enum tagRECORD_TYPE
  163. {
  164. RECORD_TYPE_TRUNK = 0, // 中继录音
  165. RECORD_TYPE_EXTEN = 1 // 并线录音
  166. } RECORD_TYPE;
  167. // 录音格式
  168. typedef enum tagRECORD_FORMAT
  169. {
  170. RECORD_FORMAT_MP3 = 0,
  171. RECORD_FORMAT_WAV = 1
  172. } RECORD_FORMAT;
  173. // SIP账号
  174. typedef struct tagSIP_ACCOUNT
  175. {
  176. int Id;
  177. TCHAR Account[BUF_LEN_SIP_ACCOUNT];
  178. TCHAR AuthAccount[BUF_LEN_SIP_ACCOUNT];
  179. TCHAR Password[BUF_LEN_SIP_PWD];
  180. TCHAR Proxy[BUF_LEN_SIP_PROXY];
  181. int ProxyPort;
  182. bool IsReg;
  183. int RegInterval;
  184. bool IsDynamicGw;
  185. } SIP_ACCOUNT;
  186. // 中继项
  187. typedef struct tagTRUNK_ITEM
  188. {
  189. int Id;
  190. int Node;
  191. int Board;
  192. int Span;
  193. int SipAccountId;
  194. } TRUNK_ITEM;
  195. // 中继匹配
  196. typedef struct tagTRUNK_MATCH
  197. {
  198. int Id;
  199. TCHAR Prefix[BUF_LEN_PREFIX];
  200. TCHAR Caller[BUF_LEN_CALLER];
  201. int TrunkItemId;
  202. int Priority;
  203. } TRUNK_MATCH;