/************************************************************************* 【文件名】 VsControl.h 【功能模块和目的】 VS交互控制类头文件 【开发者及日期】 郑石诺 2016/03/24 【版本】 V1.0.0 【版权信息】 Copyright (C)2016 河南华谊网络科技有限公司 【更改记录】 *************************************************************************/ #pragma once /************************************************************************* 【类名】 CVsControl 【功能】 【接口说明】 VS交互控制类 【开发者及日期】 郑石诺 2016/03/24 【版本】 V1.0.0 【版权信息】 Copyright (C)2016 河南华谊网络科技有限公司 【更改记录】 *************************************************************************/ class CVsControl : public IPduCommProc, public IPduLinkProc { SINGLETON_DECLARE(CVsControl) public: ~CVsControl(void); // 初始化操作 bool init(void); void release(void); bool isVsVocOnline(void) const { return m_VsDevVoc != CONST_DEV_ID_INVALID; } bool isVsRecOnline(void) const { return m_VsDevRec != CONST_DEV_ID_INVALID; } bool isVsFaxOnline(void) const { return m_VsDevFax != CONST_DEV_ID_INVALID; } bool sendCmd2Rec(CPduEntity* pCmd); // 发送命令到录音VS bool sendCmd2Voc(CPduEntity* pCmd); // 发送命令到放音VS bool sendCmd2Fax(CPduEntity* pCmd); // 发送命令到传真VS bool notifyLineFree(UINT LineId, DEV_RES_TYPE LineType); // 通知VS线路释放 // SOCKET管理 virtual void OnRecvCommand(CPduEntity* a_pPduEntity); // PDU命令到达事件处理 virtual void OnLinkStateChanged(const PduLinkContent& linkContent); // PDU连接状态变化事件处理 private: CVsControl(void); // PDU命令执行结果处理 void __procCmdReg(CPduEntity* pCmd); void __procCmdPlayDtmf(CPduEntity* pCmd); void __procCmdFax(CPduEntity* pCmd); void __procCmdLeaveWord(CPduEntity* pCmd); private: int m_VsDevVoc; // 放音VS设备标识 int m_VsDevRec; // 录音VS设备标识 int m_VsDevFax; // 传真VS设备标识 };