| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263 |
- /*************************************************************************
- 【文件名】 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<CVoipChannel*, CVoipChannel*> m_VoipChList;
- CList<CSipRegister*, CSipRegister*> m_SipRegisterList;
- };
|