/************************************************************************* 【文件名】 DevVoip.h 【功能模块和目的】 VOIP资源管理类头文件 【开发者及日期】 郑石诺 2015/04/17 【版本】 V1.0.0 【版权信息】 Copyright (C)2015 河南华谊网络科技有限公司 【更改记录】 *************************************************************************/ #pragma once #include "devresource.h" class CVoipChannel; class COneLeg; class CSipRegister; /************************************************************************* 【类名】 CDevVoip 【功能】 【接口说明】 VOIP资源管理类 【开发者及日期】 郑石诺 2015/04/17 【版本】 V1.0.0 【版权信息】 Copyright (C)2015 河南华谊网络科技有限公司 【更改记录】 *************************************************************************/ class CDevVoip : public CDevResource { public: CDevVoip(DEV_RES_NO_TYPE NodeNo, DEV_RES_NO_TYPE BoardNo); virtual ~CDevVoip(void); int channelCount(void) const { return m_VoipChList.GetCount(); } ULONG netId(void) const { return m_NetId; } bool service4Exten(void) const { return m_Serve4Exten; } // 操作接口 bool open(void); void close(void); UINT makeSerialNo(void); bool isOk(void) const; CVoipChannel* getFreeVoipCh(void); CVoipChannel* findChan(int ResId); void onSipRegSent(SEND_SIPREG_RET* pSent); void onSipRegAck(SIP_REGISTER_ACK* pAck); void onSipTransaction(SIP_TRANSACTION_IND* pTransaction); private: CSipRegister* __getRegisterByAccountId(int AccountId, bool NewWhenNull = false); CSipRegister* __getRegisterBySerialNo(UINT SerialNo); void __freeRegister(void); void __regist(void); void __checkNetId(void); private: int m_CurPos; UINT m_SerialNoSeed; ULONG m_NetId; bool m_Serve4Exten; CArray m_VoipChList; CList m_SipRegisterList; };