| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273 |
- /*************************************************************************
- 【文件名】 G_AgentDef.h
- 【功能模块和目的】 OCX端全局变量声明
- 【开发者及日期】 郑石诺 2015.05.22
- 【版本】 V1.0
- 【版权信息】 Copyright (C)2015 河南华谊网络科技有限公司
- 【更改记录】
- *************************************************************************/
- // 封装ACD服务器,用于简单扩展
- typedef struct tagAcdServer
- {
- int m_nAcdServerId; // ACD服务器的标志索引:用于区分主备
- CString m_sAcdServerName; // ACD服务器的名称
- CString m_sAcdServerIpAddr; // ACD服务器的IP地址
- int m_nAcdServerPort; // ACD服务器的端口号
- }stAcdServer;
- // 定义映射结构,建立全局映射表
- typedef struct tagMapTable
- {
- int codeId;
- CString codeInfo;
- }stMapTable;
- // 座席状态的映射表
- static const stMapTable AgentStatusMapTable[] =
- {
- // 分机关联状态
- {AGENT_STATE_UNKNOWN, "未知座席状态"},
- {AGENT_STATE_LOGING, "登录中"},
- {AGENT_STATE_FREE, "空闲"},
- {AGENT_STATE_BUSY, "通话中"},
- {AGENT_STATE_POST_PROCESSING, "话后处理中"},
- {AGENT_STATE_REPOSE, "小休"},
- {AGENT_STATE_REQUESTED, "被请求"},
- {AGENT_STATE_LOGOUT, "注销"}
- };
- // 线路状态的映射表
- static const stMapTable LineStatusMapTable[] =
- {
- {INNER_STATE_DISABLED, "内线-分机不可用"},
- {INNER_STATE_FREE, "内线-空闲"},
- {INNER_STATE_INIT, "内线-摘机等待拨号"},
- {INNER_STATE_DIALING, "内线-正在拨号"},
- {INNER_STATE_RING_BACK, "内线-呼出振铃"},
- {INNER_STATE_ALERTING, "内线-来电振铃"},
- {INNER_STATE_TALKING, "内线-通话中"},
- {INNER_STATE_PLAY_BUSYTONE, "内线-播放忙音中"},
- {INNER_STATE_HELD, "内线-通话保持中"},
- {INNER_STATE_REMOVE, "内线-话机移除"},
- {INNER_STATE_HELD+INNER_STATE_FREE,"内线-保持/空闲"},
- {INNER_STATE_HELD+INNER_STATE_INIT,"内线-保持/摘机等待拨号"},
- {INNER_STATE_HELD+INNER_STATE_DIALING,"内线-保持/正在拨号"},
- {INNER_STATE_HELD+INNER_STATE_RING_BACK,"内线-保持/呼出振铃"},
- {INNER_STATE_HELD+INNER_STATE_TALKING,"内线-保持/通话中"}
- };
- // 连接ACD服务器状态的映射表
- static const stMapTable LinkStatusMapTable[] =
- {
- {PDU_LINK_STATE_UNKNOWN, "连接ACD服务器未知"},
- {PDU_LINK_STATE_SUCCESSED, "请求连接ACD服务器成功"},
- {PDU_LINK_STATE_FAILED, "请求连接ACD服务器失败"},
- {PDU_LINK_STATE_REG_OK, "注册ACD服务器成功"},
- {PDU_LINK_STATE_REG_FAILED, "注册ACD服务器失败"},
- {PDU_LINK_STATE_DISCONNECTED, "与ACD服务器连接断开"}
- };
- // 错误码的映射表
- typedef enum tagErrorCode
- {
- NO_ERR = 0, // 无错误
- NONE_ERR = 9000, // 无错误
- ERR_NO_AGENT_CLIENT, // 座席客户端不存在
- ERR_NO_AGENT_OPERATE, // 座席操作类不存在
- ERR_NO_AGENT_SOCKET, // 与服务器连接断开
- ERR_AGENT_INFO_INVALID, // 座席签入相关信息无效
- ERR_CREATE_SOCKET, // 创建MFC的socket套接字失败
- ERR_CLOSE_SOCKET, // 关闭MFC的socket套接字失败
- ERR_SEND_MSG, // Socket通讯类发送消息失败
- ERR_NO_CTI, // CTI未启动
- ERR_NO_ACD, // ACD未启动
- ERR_NO_IP, // IP地址错误
- ERR_NO_EXT, // 分机号不存在
- ERR_BIND_EXT, // 分机号已绑定
- ERR_BIND_AGENT, // 坐席号已绑定
- ERR_PACKAGE_CMD, // 命令打包错误
- ERR_IVR_FILE_PATH, // 错误的IVR文件路径:空或者错误
- ERR_FAX_FILE_PATH, // 错误的传真文件路径
- ERR_FAX_RECV_FILE_PATH, // 错误的传真接收文件路径
- ERR_SAY_BUSY, // ACD不能置该座席为忙
- ERR_SAY_FREE, // ACD不能置该座席为闲
-
- ERR_RESET_AGENT, // CTI重置该座席失败
-
- ERR_MAKE_CALL, // CTI执行外呼失败
- ERR_ANSWER_CALL, // CTI执行应答失败
- ERR_DROP_CALL, // CTI执行挂机失败
-
- ERR_HOLD, // CTI执行保持失败
- ERR_UN_HOLD, // CTI执行接回失败
-
- ERR_TRANSFER, // CTI执行转移失败
- ERR_CANCEL_TRANSFER, // CTI执行取消转移失败
- ERR_CANCEL_THREETALK, // CTI执行取消三方失败
- ERR_CANCEL, // CTI执行取消失败
-
- ERR_CONSULTATION_CALL, // CTI执行协商呼叫失败
- ERR_CONFIRM_TRANSFER, // CTI执行确认转移失败
- ERR_THREE_TALK, // CTI执行加三方通话失败
- ERR_LISTEN_AGENT, // CTI执行监听座席失败
- ERR_INSERT_AGENT, // CTI执行强插座席失败
- ERR_INSTEAD, // CTI执行代接座席失败
- ERR_CUT_AGENT, // CTI执行强拆座席失败
- ERR_INTERCEPT_AGENT, // CTI执行强截座席失败
- ERR_FORCE_LOGOUT_AGENT, // 强制签出
- ERR_FORCE_CONTROL_AGENT, // CTI执行强制控制座席失败
- ERR_TRANSFER_TO_IVR, // CTI执行转移到IVR失败
- ERR_MAKECALL_BY_SELF, // 自己呼自己
- ERR_TARGET_NUMBER_TOO_LONG, // 目标号码太长
- ERR_IVR_FILE_PATH_TOO_LONG, // ivr文件路径太长
- ERR_FAX_FILE_PATH_TOO_LONG, // fax文件路径太长
- ERR_NO_AGENT_EVENT_MANAGER, // 座席事件管理类为NULL
- ERR_NO_AGENT_LOG, // 座席日志类为NULL
- ERR_PREVIEW_MAKECALL, // CTI平台暂不支持 预览外拨
- ERR_BEGIN_MUTE, // 开始静音失败
- ERR_END_MUTE, // 结束静音失败
- ERR_STOP_RECORD, // CTI停止录音失败
- ERR_SEND_FAX, // CTI发送传真失败
- ERR_RECV_FAX, // CTI接收传真失败
- ERR_CREATE_TIMER, // 创建定时器失败
- ERR_SUB_AGENT, // 订阅坐席失败
- ERR_CANCEL_SUB_AGENT, // 取消订阅坐席失败
- ERR_DESTNUM_SPACIL, // 包含特殊字符
- ERR_LOGIN_AGIN, // 重复签入
- ERR_AUTH_FAILED // 授权验证失败
- }ErrorCode;
- static const stMapTable ErrorCodeMapTable[] =
- {
- {NO_ERR, ""},
- {NONE_ERR, ""},
- {ERR_NO_AGENT_CLIENT, "座席客户端为NULL"},
- {ERR_NO_AGENT_OPERATE, "座席操作类为NULL"},
- {ERR_NO_AGENT_SOCKET, "座席与ACD连接断开"},
- {ERR_AGENT_INFO_INVALID, "座席签入相关信息无效"},
- {ERR_CREATE_SOCKET, "创建MFC的socket套接字失败"},
- {ERR_CLOSE_SOCKET, "关闭MFC的socket套接字失败"},
- {ERR_SEND_MSG, "Socket通讯类发送消息失败"},
- //签入时业务性错误
- {ERR_NO_CTI, "CTI未启动"},
- {ERR_NO_ACD, "ACD未启动"},
- {ERR_NO_IP, "IP地址错误"},
- {ERR_NO_EXT, "分机号不存在"},
- {ERR_BIND_EXT, "分机号已绑定"},
- {ERR_BIND_AGENT, "坐席号已绑定"},
- {ERR_PACKAGE_CMD, "命令打包错误"},
- {ERR_IVR_FILE_PATH, "错误的IVR文件路径:空或者错误"},
- {ERR_FAX_FILE_PATH, "错误的传真文件路径"},
- {ERR_FAX_RECV_FILE_PATH, "错误的传真接收文件路径"},
- {ERR_SAY_BUSY, "ACD不能置该座席为忙"},
- {ERR_SAY_FREE, "ACD不能置该座席为闲"},
-
- {ERR_RESET_AGENT, "CTI重置该座席失败"},
-
- {ERR_MAKE_CALL, "CTI执行外呼失败"},
- {ERR_ANSWER_CALL, "CTI执行应答失败"},
- {ERR_DROP_CALL, "CTI执行挂机失败"},
-
- {ERR_HOLD, "CTI执行保持失败"},
- {ERR_UN_HOLD, "CTI执行接回失败"},
-
- {ERR_TRANSFER, "CTI执行转移失败"},
- {ERR_CANCEL_TRANSFER, "CTI执行取消转移失败"},
- {ERR_CANCEL_THREETALK, "CTI执行取消三方失败"},
- {ERR_CANCEL, "CTI执行取消失败"},
- {ERR_CONSULTATION_CALL, "CTI执行协商呼叫失败"},
- {ERR_CONFIRM_TRANSFER, "CTI执行确认转移失败"},
- {ERR_THREE_TALK, "CTI执行加三方通话失败"},
- {ERR_LISTEN_AGENT, "CTI执行监听座席失败"},
- {ERR_INSERT_AGENT, "CTI执行强插座席失败"},
- {ERR_INSTEAD, "CTI执行代接座席失败"},
- {ERR_CUT_AGENT, "CTI执行强拆座席失败"},
- {ERR_INTERCEPT_AGENT, "CTI执行强截座席失败"},
- {ERR_FORCE_LOGOUT_AGENT, "CTI执行强制签出座席失败"},
- {ERR_FORCE_CONTROL_AGENT, "CTI执行强制控制座席失败"},
- {ERR_TRANSFER_TO_IVR, "CTI执行转移到IVR失败"},
- {ERR_MAKECALL_BY_SELF, "目标号码是自己"},
- {ERR_TARGET_NUMBER_TOO_LONG,"目标号码太长"},
- {ERR_IVR_FILE_PATH_TOO_LONG,"ivr文件路径太长"},
- {ERR_FAX_FILE_PATH_TOO_LONG,"fax文件路径太长"},
- {ERR_NO_AGENT_EVENT_MANAGER,"座席事件管理类为NULL"},
- {ERR_NO_AGENT_LOG, "座席日志类为NULL"},
- {ERR_PREVIEW_MAKECALL, "鼎晟CTI平台暂不支持 预览外拨"},
- {ERR_BEGIN_MUTE, "开始静音失败"},
- {ERR_END_MUTE, "取消静音失败"},
- {ERR_STOP_RECORD, "CTI停止录音失败"},
- {ERR_SEND_FAX, "CTI发送传真失败"},
- {ERR_RECV_FAX, "CTI接收传真失败"},
- {ERR_CREATE_TIMER, "创建定时器失败"},
- {ERR_SUB_AGENT, "订阅坐席失败"},
- {ERR_CANCEL_SUB_AGENT, "取消订阅坐席失败"},
- {ERR_DESTNUM_SPACIL, "操作号码中包含特殊字符"},
- {ERR_LOGIN_AGIN, "重复签入"},
- {ERR_AUTH_FAILED, "授权验证失败"}
- };
|