| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182 |
- /*************************************************************************
- 【文件名】 DeviceLink.h
- 【功能模块和目的】 设备控制模块导出类头文件
- 【开发者及日期】 郑石诺 2015/01/05
- 【版本】 V1.0.0
- 【版权信息】 Copyright (C)2015 河南华谊网络科技有限公司
- 【更改记录】
- *************************************************************************/
- #pragma once
- #define DEL_EXT_DETAIL 0x10000000 // 删除坐席明细
- #define BUFFER_LENGTH 512 // 要求缓冲区长度
- #define PHONE_NUM_LEN 64 // 电话号码长度
- #define IP_PORT_LEN 32 // IP及Port长度
- #define MAX_LENGTH_HASH 1999 // 哈希表最大容量
- #define LINE_TURN_TO_IVR 0
- #define LINE_TURN_TO_FAX 1
- // 线路控制操作类型
- typedef enum tagLINE_OP
- {
- LINE_OP_UNKNOWN = 0, // 未知操作
- LINE_OP_MAKE_CALL = 1, // 呼出
- LINE_OP_ANSWER_CALL = 2, // 应答呼叫
- LINE_OP_RESET = 3, // 线路重置
- LINE_OP_HANG_UP = 4, // 挂机
- LINE_OP_HOLD = 5, // 保持
- LINE_OP_TAKEBACK = 6, // 接回
- LINE_OP_TRANSFER = 7, // 转移
- LINE_OP_CONFERENCE = 8, // 单步会议
- LINE_OP_LISTEN = 9, // 监听
- LINE_OP_INSERT = 10, // 强插
- LINE_OP_INSTEAD = 11, // 代接
- LINE_OP_GRAB = 12, // 强截
- LINE_OP_FORCELOGOUT = 13, // 强制签出
- LINE_OP_LEAVEWORD = 14, // 留言录音
- LINE_OP_PLAY_VOICE = 15, // 开始放音
- LINE_OP_FAX = 16, // 传真
- LINE_OP_TURNAGENT = 17, // 转坐席
- LINE_OP_RECORD = 18, // 录音
- LINE_OP_PREDICTION_CALL = 19, // 预测外呼
- LINE_OP_TURNOUT = 20, // 转外线
- LINE_OP_TURNIVR = 21, // 转IVR
- LINE_OP_TRANSFER_INFO = 22, // 上层通知底层信息
- LINE_OP_CONSULT_CALL_BEGIN = 23, // 协商呼叫启动
- LINE_OP_CONSULT_CALL_CONFIRM = 24, // 协商呼叫确认
- LINE_OP_MUTE_BEGIN = 25, // 静音启动
- LINE_OP_MUTE_END = 26, // 静音结束
- LINE_OP_SELF_CHECK = 27, // 线路自检
- LINE_OP_IVRFAX_TRANSFER = 28 // IVR发起传真转移
- } LINE_OP;
- // 线路录音操作类型
- typedef enum tagLINE_RECORD
- {
- LINE_RECORD_START = 0, // 开始录音
- LINE_RECORD_STOP = 1, // 停止录音
- } LINE_RECORD;
- // 设备回调消息类型
- typedef enum tagDEV_EVENT
- {
- DEV_EVENT_UNKNOWN = 0, // 未知事件
- DEV_EVENT_LOG = 1, // 设备日志
- DEV_EVENT_RES_TYPE = 2, // 设备资源类型
- DEV_EVENT_RES_DETAIL = 3, // 设备资源明细
- DEV_EVENT_INIT_END = 4, // 设备初始化结束
- DEV_EVENT_RES_STATUS = 5, // 设备资源状态变化
- DEV_EVENT_LINE_OP_PROCESS = 6, // 线路操作进展
- DEV_EVENT_LINE_OP_RESULT = 7, // 线路操作执行结果
- DEV_EVENT_DEV_OPERATOR = 8, // 设备直接操作(来电,物理外拨等)
- DEV_EVENT_DEV_CLOSED = 9, // 设备已关闭
- } DEV_EVENT;
- // 设备主动操作类型
- typedef enum tagDEV_OP
- {
- DEV_OP_UNKNOWN = 0, // 未知操作
- DEV_OP_PICK_UP = 1, // 线路摘机
- DEV_OP_CALL_IN = 2, // 线路来电
- DEV_OP_CALL_OUT = 3, // 线路呼出
- DEV_OP_HANG_UP = 4, // 线路挂机
- DEV_OP_TRANSFER = 5, // 按键转移
- DEV_OP_INSTEAD = 6, // 按键代接
- DEV_OP_CONFERENCE = 7, // 按键三方
- } DEV_OP;
- //设备回调消息内容:
- typedef struct tagEventLog /* 日志显示请求 */
- {
- UINT nLevel; // 日志级别(参阅日志类头文件定义)
- CHAR szContent[BUFFER_LENGTH]; // 日志内容
- } EventLog;
- typedef struct tagEventResType /* 资源类型 */
- {
- UINT nResType; // 资源类型
- } EventResType;
- typedef struct tagEventResDetail /* 资源明细 */
- {
- UINT nResType; // 资源类型
- UINT nResID; // 资源ID
- CHAR szIPPort[IP_PORT_LEN]; // IP及Port
- } EventResDetail;
- typedef struct tagEventResStatus /* 资源状态信息 */
- {
- UINT nResType; // 资源类型
- UINT nResID; // 资源ID
- UINT nState; // 资源状态
- CHAR szCallerNum[PHONE_NUM_LEN]; // 主叫号码
- CHAR szCalleeNum[PHONE_NUM_LEN]; // 被叫号码
- } EventResStatus;
- typedef struct tagLineOpParam /* 线路控制参数信息 */
- {
- INT nParam1; // 录音时此参数为录音类型 转IVR时:0转IvrLine 1 转FaxLine
- INT nParam2; // 外呼、转移、会议时标识被叫线路类型(参考“设备资源类型常量”); // 传真时,0:IVR自动收发传真,1:坐席收发传真
- INT nParam3;
- INT nParam4;
- INT nParam5;
- INT nParam6;
- INT nParam7;
- INT nParam8;
- INT nParam9;
- CHAR szParam1[PHONE_NUM_LEN]; // 主叫号码 / 留言录音结束符
- CHAR szParam2[PHONE_NUM_LEN]; // 被叫号码
- // 班长操作: 被操作的分机号
- CHAR szParam3[BUFFER_LENGTH]; // 继续排队命令: 放音文件 /录音文件名
- } LineOpParam;
- typedef struct tagEventOpProcess /* 设备操作进展信息 */
- {
- LONG nInstance; // 调用标识
- UINT nHostLine; // 主控线路
- UINT nAssoLine; // 关联线路
- UINT nAssoLineType; // 关联线路类型(0 外线 1内线)
- CHAR szCallerNum[PHONE_NUM_LEN]; // 主叫号码
- CHAR szCalleeNum[PHONE_NUM_LEN]; // 被叫号码
- } EventOpProcess;
- typedef struct tagEventOpResult /* 设备操作执行结果 */
- {
- LONG nInstance; // 调用标识
- UINT nHostLine; // 线路Id
- BOOL bIsSucceed; // 成功标志
- CHAR szData[BUFFER_LENGTH]; // 随路数据
- } EventOpResult;
- typedef struct tagEventDevOperation /*设备直接操作信息*/
- {
- UINT nLineId; // 线路Id
- UINT nOpType; // 操作类型
- UINT nAssoLine; // 关联线路
- UINT nAssoLineType; // 关联线路类型
- UINT nFlag; // 操作标识《主动挂机方(0 -> A端,1 -> B端), 接通时的通话方向(0 -> 呼出接通,1 -> 应答接通》
- CHAR szCallerNum[PHONE_NUM_LEN]; // 主叫号码
- CHAR szCalleeNum[PHONE_NUM_LEN]; // 被叫号码
- } EventDevOperation;
- /*************************************************************************
- 【类名】 IDeviceOperator
- 【功能】
- 【接口说明】 设备操作者接口类
- 【开发者及日期】 郑石诺 2015/05/27
- 【版本】 V1.0.0
- 【版权信息】 Copyright (C)2015 河南华谊网络科技有限公司
- 【更改记录】
- *************************************************************************/
- class IDeviceOperator
- {
- public:
- virtual ~IDeviceOperator() = 0 {}
-
- virtual void onDeviceEvent(UINT EvtType, PARAM Content) = 0;
- virtual BOOL IsRegExten(UINT ExtenID) = 0;
- };
|