/************************************************************************* 【文件名】 IpmChannel.h 【功能模块和目的】 IPM通道管理类头文件 【开发者及日期】 郑石诺 2015/04/13 【版本】 V1.0.0 【版权信息】 Copyright (C)2015 河南华谊网络科技有限公司 【更改记录】 *************************************************************************/ #pragma once #include "channelresource.h" #include "MC.h" class CVoipChannel; /************************************************************************* 【类名】 CIpmChannel 【功能】 【接口说明】 IPM通道管理类 【开发者及日期】 郑石诺 2015/04/13 【版本】 V1.0.0 【版权信息】 Copyright (C)2015 河南华谊网络科技有限公司 【更改记录】 *************************************************************************/ class CIpmChannel : public CChannelResource { public: CIpmChannel(DEV_RES_CH_TYPE ChannelNo, DEV_RES_NO_TYPE NodeNo, DEV_RES_NO_TYPE BoardNo); virtual ~CIpmChannel(void); //////////////////////////////////////////////////////////////////////////////// //继承自CChannelResource bool open(void); void close(void); bool isFree(void) const { return m_pVoipChanBind == NULL && !m_FaxFlag;} int type(void) const { return SC_XOIP; } LPCTSTR getStateStr(void) const; void onDevEvent(METAEVENT* pMetaEvent); // 操作接口 bool isStarted(void) const { return m_StartFlag; } void reset(void); void bind(CVoipChannel* pVoipChannel); void startFax(void); void stopFax(void); bool startMedia(void); void stopMedia(void); bool switchVF(ISXSIP_IE_BODY_EX* pSdp); bool mediaAddrBoard(LPTSTR Buffer); void mediaAddrTrunk(LPTSTR Buffer); int mediaPort(void) { return DEV_MEDIA_PORT_BEGIN * (m_Id.NodeNo + 1) + MAX_XOIPCH_NUM * DEV_PER_CH_PORT_NUM * m_Id.BoardNo + DEV_PER_CH_PORT_NUM * m_Id.ChanNo; } private: friend class CVoipChannel; void __onAnswer(METAEVENT* pMetaEvent); void __onSetParam(METAEVENT* pMetaEvent); void __onFax(METAEVENT* pMetaEvent); private: CVoipChannel* m_pVoipChanBind; bool m_StartFlag; bool m_FaxFlag; XOIP_SRCADD m_SrcAddr; XOIP_CFG m_XoipCfg; };