| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210 |
- /*************************************************************************
- 【文件名】 PduLinkInc.h
- 【功能模块和目的】 定义PDU通讯相关信息
- 【开发者及日期】 郑石诺 2015/03/19
- 【版本】 V1.0.0
- 【版权信息】 Copyright (C)2015 河南华谊网络科技有限公司
- 【更改记录】
- *************************************************************************/
- #pragma once
- // 业务相关
- #define PDU_RECONN_TIMER 1001 // 自动重连定时器
- #define PDU_LISTEN_TIMER 1002 // 心跳监听定时器
- #define VAL_RECONNECT_INTERVAL 15000
- #define VAL_LISTEN_INTERVAL 30000
- #define VAL_THREAD_PER_PROCESSOR 2
- #define VAL_THREAD_EXIT_CODE ((void*)-1)
- // 命令收发相关
- #define PDU_IP_LEN 32 // IP地址长度
- #define PDU_HEAD_LEN 26 // PDU消息包头长度
- #define PDU_MAX_DATA_LEN 2048 // 消息内容最大长度
- #define PDU_BUFFER_LEN 4096
- #define MAX_POST_ACCEPT 5
- // 命令解析相关
- #define PDU_MAX_CMD_COUNT 1000 // PDU命令最大数量
- #define PDU_CMD_MAX_DATA_COUNT 32 // PDU单个命令中数据字段最大数量
- #define PDU_MAX_DATA_BUF_LEN 512 // PDU数据字段最大长度
- // 命令内容相关
- #define BUFFER_LENGTH 512 // 要求缓冲区长度
- #define PHONE_NUM_LEN 64 // 电话号码长度
- #define FILE_NAME_LEN 512 // 文件全路径加文件名长度
- #define MAX_DATA_BUF_LEN 512 // 随路数据
- #define PHONE_NUM_INFO 512 // 号码归属地
- //类型定义:设备类型
- typedef enum tagPDU_DEV_TYPE
- {
- PDU_DEV_TYPE_UNKNOWN = 0x00, // 未知
- PDU_DEV_TYPE_CTI = 0x01, // CTI
- PDU_DEV_TYPE_IVR = 0x02, // IVR
- PDU_DEV_TYPE_ACD = 0x03, // ACD
- PDU_DEV_TYPE_AGENT = 0x04, // 座席OCX
- PDU_DEV_TYPE_VS_PLAY = 0x05, // VS语音
- PDU_DEV_TYPE_VS_REC = 0x06, // VS录音
- PDU_DEV_TYPE_VS_PLAY_REC = 0x07, // 录放音VS
- PDU_DEV_TYPE_VS_FAX = 0x08, // 传真VS
- PDU_DEV_TYPE_SC_SERVER = 0x09, // 毅航控制核心程序
- PDU_DEV_TYPE_SC_CLIENT = 0x10, // 毅航控制核心程序客户端
- PDU_DEV_TYPE_SERVER = 0x11 //Server Type
- } PDU_DEV_TYPE;
- // 类型定义:SOCKET连接类型
- typedef enum tagPDU_LINK_TYPE
- {
- PDU_LINK_TYPE_SERVER = 0, // SERVER端连接
- PDU_LINK_TYPE_CLIENT = 1, // CLIENT端连接
- } PDU_LINK_TYPE;
- //类型定义:连接状态
- typedef enum tagPDU_LINK_STATE
- {
- PDU_LINK_STATE_UNKNOWN = 0, // 未知状态
- PDU_LINK_STATE_SUCCESSED = 1, // 请求连接成功
- PDU_LINK_STATE_FAILED = 2, // 请求连接失败
- PDU_LINK_STATE_ACCEPTED = 3, // 已接受连接请求
- PDU_LINK_STATE_DISCONNECTED = 4, // 连接已断开
- PDU_LINK_STATE_REG_OK = 5, // 注册成功
- PDU_LINK_STATE_REG_FAILED = 6, // 注册失败
- } PDU_LINK_STATE;
- // 类型定义:录音控制类型
- typedef enum tagPDU_REC_CONTROL
- {
- PDU_REC_BEGIN = 0, // 录音启动
- PDU_REC_STOP, // 录音停止
- PDU_REC_PAUSE, // 录音暂停
- PDU_REC_RESUME, // 录音继续
- } PDU_REC_CONTROL;
- //类型定义:连接信息
- typedef struct tagPduLinkContent
- {
- PDU_DEV_TYPE nLocalType; // 本端设备类型
- int nLocalId; // 本端设备ID
- PDU_DEV_TYPE nFarType; // 对端设备类型
- int nFarId; // 对端设备ID
- CHAR szFarIp[PDU_IP_LEN]; // 对端IP地址
- int nFarPort; // 对端端口号
- PDU_LINK_STATE nLinkState; // PDU连接当前状态
- } PduLinkContent;
- // 类型定义:PDU单条数据
- typedef struct tagPduDataMemo
- {
- int nDataType; // 数据类型
- int nDataLen; // 数据长度
- CHAR szExplain[PDU_MAX_DATA_BUF_LEN]; // 说明
- int nIsExecReturn; // 是否为执行返回数据
- CHAR szValue[PDU_MAX_DATA_BUF_LEN]; // 数据内容
- } PduDataMemo;
- // 类型定义:PDU命令类型
- typedef enum tagPDU_CMD_TYPE
- {
- // 通用命令(1-100)
- PDU_CMD_UNKNOWN = 0, // 未知命令
- PDU_CMD_REG, // 注册
- PDU_CMD_LISTEN, // 心跳监听
- // OCX命令集(101-200)
- PDU_CMD_AGENT_LOGIN = 101, // 签入
- PDU_CMD_AGENT_LOGOUT = 102, // 签出
- PDU_CMD_AGENT_SETSTATE = 103, // 设置坐席状态
- PDU_CMD_AGENT_MAKECALL = 104, // 坐席通知CTI外呼
- PDU_CMD_AGENT_ANSWER = 105, // 应答
- PDU_CMD_AGENT_HANGUP = 106, // 挂机
- PDU_CMD_AGENT_HOLD = 107, // 保持
- PDU_CMD_AGENT_TAKEBACK = 108, // 接回
- PDU_CMD_AGENT_TRANSTALK = 109, // 转移
- PDU_CMD_AGENT_THREETALK = 110, // 三方通话
- PDU_CMD_AGENT_CANCEL = 111, // 取消操作
- PDU_CMD_AGENT_CONSULTATION_CALL = 112, // 协商呼叫
- PDU_CMD_AGENT_CONFIRM_TRANSFER = 113, // 确认转移
-
- PDU_CMD_AGENT_RESET = 114, // 重置
- PDU_CMD_AGENT_MONI_LISTEN = 115, // 监听
- PDU_CMD_AGENT_MONI_REPLACE = 116, // 代接
- PDU_CMD_AGENT_MONI_INSERT = 117, // 强插
- PDU_CMD_AGENT_MONI_INTERCEPT = 118, // 强截
- PDU_CMD_AGENT_MONI_CUT = 119, // 强拆
- PDU_CMD_AGENT_MONI_FORCE_LOGOUT = 120, // 强制签出
- PDU_CMD_AGENT_MONI_FORCE_STATE = 121, // 强制状态控制
- PDU_CMD_AGENT_FAX = 122, // 传真
- PDU_CMD_AGENT_TURN_TO_IVR = 123, // 座席转IVR
- PDU_CMD_AGENT_SUBSCRIBE = 124, // OCX订阅
- PDU_CMD_AGENT_CANCEL_SUBSCRIBE = 125, // 取消订阅
- PDU_CMD_AGENT_MUTE = 126, // 静音操作(0开始静音,1结束静音)
- // ACD命令集(201-300)
- PDU_CMD_ACD_AGENT_STATE = 201, // ACD通知坐席状态(包括订阅状态,用工号区分自己还是被订阅者)
- PDU_CMD_ACD_CALL_NUM = 202, // ACD通知坐席来电数量
- PDU_CMD_ACD_SUBMIT_DATA = 203, // ACD通知Ocx订阅数据
- // CTI命令集(301-400)
- PDU_CMD_CTI_LINE_STATE = 301, // CTI通知ACD及OCX内线线路信息
- PDU_CMD_CTI_DEV_CALL = 302, // CTI通知坐席物理外呼
- PDU_CMD_CTI_RECORD = 303, // CTI通知坐席录音信息
- PDU_CMD_CTI_ACD_QUEUE_PAUSE = 304, // CTI通知ACD暂停排队
- PDU_CMD_CTI_ACD_TRUNK_USAGE = 305, // CTI通知ACD呼叫任务外线利用率
- PDU_CMD_CTI_IVR_CALLIN = 306, // CTI通知IVR外线来电
- PDU_CMD_CTI_IVR_TURNIVR = 307, // CTI通知IVR转IVR
- PDU_CMD_CTI_IVR_HANGUP = 308, // CTI通知IVR外线挂机
- PDU_CMD_CTI_IVR_PREDICTIVECALL = 309, // CTI通知IVR预测呼叫
- PDU_CMD_CTI_VS_RECORD = 310, // CTI通知VS录音控制
- PDU_CMD_CTI_VS_LINECONTROL = 311, // CTI通知VS线路控制
-
- // IVR命令集(401-500)
- PDU_CMD_IVR_HANGUP = 401, // IVR通知CTI挂机
- PDU_CMD_IVR_END = 402, // IVR通知CTI流程结束
- PDU_CMD_IVR_WANT_AGENT = 403, // IVR通知CTI请求排队
- PDU_CMD_IVR_QUEUE_CONTINUE = 404, // IVR通知CTI继续排队
- PDU_CMD_IVR_QUEUE_CANCEL = 405, // IVR通知CTI取消排队
- PDU_CMD_IVR_TURN_AGENT = 406, // IVR通知CTI转坐席
- PDU_CMD_IVR_CALL_OUT = 407, // IVR通知CTI自动呼叫
- PDU_CMD_IVR_TURN_OUTLINE = 408, // IVR通知CTI转外线
- PDU_CMD_IVR_PLAY_DTMF = 409, // IVR通知CTI放音收按键(VS也要用)
- PDU_CMD_IVR_FAX = 410, // IVR通知CTI收发传真(VS也要用)
- PDU_CMD_IVR_LEAVE_WORD = 411, // IVR通知Cti留言(VS也要用)
- // Stable Core命令集(501-600)
- PDU_CMD_SC_RES_DETAIL = 501, // SC上报资源明细
- PDU_CMD_SC_RES_STATE = 502, // SC上报资源状态
- PDU_CMD_SC_ACTIVE_EVENT = 503, // SC上报设备主动事件
- PDU_CMD_SC_REQ_PROCESS = 504, // SC上报请求执行进展
- PDU_CMD_SC_REQ_RESULT = 505, // SC上报请求执行结果
- PDU_CMD_SC_REQ_PCALL = 506, // 请求预测外呼
- PDU_CMD_SC_REQ_MAKECALL = 507, // 请求呼叫
- PDU_CMD_SC_REQ_ANSWER = 508, // 请求应答
- PDU_CMD_SC_REQ_HANGUP = 509, // 请求挂机
- PDU_CMD_SC_REQ_TRANSFER = 510, // 请求转移
- PDU_CMD_SC_REQ_TRUNKTURN = 511, // 请求中继线路转移
- PDU_CMD_SC_REQ_PLAY = 512, // 请求放音
- PDU_CMD_SC_REQ_CONSULTCALL = 513, // 请求协商呼叫
- PDU_CMD_SC_REQ_CONSULTCONFIRM = 514, // 请求协商确认
- PDU_CMD_SC_REQ_MUTE = 515, // 请求静音
- PDU_CMD_SC_REQ_INSTEAD = 516, // 请求代接
- PDU_CMD_SC_REQ_INTERCEPT = 517, // 请求强截
- PDU_CMD_SC_REQ_INSERT = 518, // 请求强插
- PDU_CMD_SC_REQ_LISTEN = 519, // 请求监听
- PDU_CMD_SC_REQ_LEAVEWORD = 520, // 请求留言
- PDU_CMD_SC_REQ_MEETING = 521, // 请求会议
- PDU_CMD_SC_REQ_FAX = 522, // 请求传真
- PDU_CMD_SC_REQ_TURNIVR = 523, // 请求转移IVR
- PDU_CMD_SC_REQ_RESET = 524, // 请求重置
- PDU_CMD_SC_REQ_RECORD = 525, // 请求录音
- PDU_CMD_SC_REQ_LINECHECK = 526, // 请求线路自检
- PDU_CMD_SC_REQ_INFOTRANSFER = 527, // 请求数据交换
- PDU_CMD_SC_REQ_TURNAGENT = 528 // 请求转坐席
- } PDU_CMD_TYPE;
|