/************************************************************************* 【文件名】 DevControl.h 【功能模块和目的】 设备控制类头文件 【开发者及日期】 郑石诺 2015/05/27 【版本】 V1.0.0 【版权信息】 Copyright (C)2015 河南华谊网络科技有限公司 【更改记录】 *************************************************************************/ #pragma once #include "devicelink.h" #include "NetRepInterface.h" /************************************************************************* 【类名】 CDevControl 【功能】 【接口说明】 设备控制类 【开发者及日期】 郑石诺 2015/05/27 【版本】 V1.0.0 【版权信息】 Copyright (C)2015 河南华谊网络科技有限公司 【更改记录】 *************************************************************************/ class CDevControl : public IDeviceLink, public IPduLinkProc, public IPduCommProc { SINGLETON_DECLARE(CDevControl) public: virtual ~CDevControl(void); //////////////////////////////////////////////////////////////////////////////// ////继承自IDeviceLink/////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////// bool open(IDeviceOperator* a_pOperator); void close(void); bool operate(LONG Instance, LINE_OP OpType, ULONG ResID, LineOpParam* pLineOpParam); //////////////////////////////////////////////////////////////////////////////// //继承自IPduLinkProc, IPduCommProc void OnLinkStateChanged(const PduLinkContent& linkContent); // PDU连接状态变化事件处理 void OnRecvCommand(CPduEntity* a_pPduEntity); // PDU命令到达事件处理 private: CDevControl(void); bool __initNetLink(void); // 初始化网络连接 void __shutNetLink(void); // 关闭网络连接 void __notifyResType(void); // 操作接口 void __onLog(UINT Level, CHAR* lpszFormat, ...); // 通知显示日志 void __onDevStateUpdated(UINT DevState); // 通知设备不可用 void __onNetLinkDisconnected(PduLinkContent linkContent); // 连接断开后续处理 void __onOpResult(long Instance, BOOL IsSucceed, LPCTSTR Data); // 设备操作执行结果 void __onDevResDetail(CPduEntity* a_pPduEntity); // 设备资源明细处理 void __onDevResState(CPduEntity* a_pPduEntity); // 设备资源状态处理 void __onDevOpProcess(CPduEntity* a_pPduEntity); // 设备操作进展处理 void __onDevOpResult(CPduEntity* a_pPduEntity); // 设备操作结果处理 void __onDevActiveEvent(CPduEntity* a_pPduEntity); // 设备主动事件处理 void __onDevReqReturn(CPduEntity* a_pPduEntity); // 设备请求返回处理 // OP处理子函数 bool __procOpInfoTransaction(long Instance, ULONG ResID, LineOpParam* pParam); // 数据交互 bool __procOpPlayVoice(long Instance, ULONG ResID, LineOpParam* pLineOpParam); // 线路放音收号 bool __procOpMakeCall(long Instance, ULONG ResID, LineOpParam* pLineOpParam); // 线路外呼处理 bool __procOpHangUp(long Instance, ULONG ResID, LineOpParam* pLineOpParam); // 线路挂机处理 bool __procOpTrunkTurn(long Instance, ULONG ResID, LineOpParam* pLineOpParam); // 外线呼叫转移 bool __procOpTurnAgent(long Instance, ULONG ResID, LineOpParam* pLineOpParam); // 外线转坐席 bool __procOpAnswerCall(long Instance, ULONG ResID, LineOpParam* pLineOpParam); // 应答呼叫 bool __procOpPCall(long Instance, ULONG ResID, LineOpParam* pLineOpParam); // 预测外呼 bool __procOpTransfer(long Instance, ULONG ResID, LineOpParam* pLineOpParam); // 座席呼叫转移 bool __procOpConf(long Instance, ULONG ResID, LineOpParam* pLineOpParam); // 单步会议 bool __procOpTurnIvr(long Instance, ULONG ResID, LineOpParam* pLineOpParam); // 转IVR bool __procOpInstead(long Instance, ULONG ResID, LineOpParam* pLineOpParam); // 代接 bool __procOpGrab(long Instance, ULONG ResID, LineOpParam* pLineOpParam); // 强截 bool __procOpInsert(long Instance, ULONG ResID, LineOpParam* pLineOpParam); // 强插 bool __procOpListen(long Instance, ULONG ResID, LineOpParam* pLineOpParam); // 监听 bool __procOpReset(long Instance, ULONG ResID, LineOpParam* pLineOpParam); // 重置 bool __procOpFax(long Instance, ULONG ResID, LineOpParam* pLineOpParam); // 传真 bool __procOpRecord(long Instance, ULONG ResID, LineOpParam* pLineOpParam); // 录音 bool __procOpLeaveWord(long Instance, ULONG ResID, LineOpParam* pLineOpParam); // 留言录音 bool __procOpMuteOn(long Instance, ULONG ResID, LineOpParam* pLineOpParam); // 静音启动 bool __procOpMuteOff(long Instance, ULONG ResID, LineOpParam* pLineOpParam); // 静音结束 bool __procOpSelfCheck(long Instance, ULONG ResID, LineOpParam* pLineOpParam); // 线路自检 bool __procOpConsultCallBegin(long Instance, ULONG ResID, LineOpParam* pLineOpParam); // 协商呼叫启动 bool __procOpConsultCallConfirm(long Instance, ULONG ResID, LineOpParam* pLineOpParam); // 协商呼叫确认 private: IDeviceOperator* m_pOperator; bool m_IsConnected2Sc; bool m_IsDevOK; };