| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293 |
- /*************************************************************************
- 【文件名】 PBX.h
- 【功能模块和目的】 毅航PBX封装类头文件
- 【开发者及日期】 郑石诺 2015/04/07
- 【版本】 V1.0.0
- 【版权信息】 Copyright (C)2015 河南华谊网络科技有限公司
- 【更改记录】
- *************************************************************************/
- #pragma once
- class CMC;
- class CDevDsp;
- class CDevVoip;
- class CDevIpm;
- class CDevSpan;
- class CIpmChannel;
- class CVoipChannel;
- class CDspChannel;
- class CSpanChannel;
- class COneLeg;
- class CChannelResource;
- /*************************************************************************
- 【类名】 CPBX
- 【功能】
- 【接口说明】 毅航PBX封装类
- 【开发者及日期】 郑石诺 2015/04/07
- 【版本】 V1.0.0
- 【版权信息】 Copyright (C)2015 河南华谊网络科技有限公司
- 【更改记录】
- *************************************************************************/
- class CPBX
- {
- public:
- CPBX(CMC* pParent, int IsxNo);
- ~CPBX(void);
- int pbxNo(void) const { return m_IsxNo; }
- bool isOk(void) const;
- // 控制接口
- ULONG getVoipNetId(int BoardNo);
- CVoipChannel* allocVoipCh4Exten(void);
- CIpmChannel* allocIpmCh(ULONG NetId);
- CSpanChannel* allocSpanCh(int BoardNo, int SpanNo);
- CVoipChannel* allocVoipCh(int BoardNo);
- CDspChannel* allocDspCh(int BoardNo);
- COneLeg* allocFreeTrunk(int BoardNo, int SpanNo);
- COneLeg* findLeg(CRDRID Id);
- CIpmChannel* findIpmCh(CRDRID ResId);
- CDspChannel* findDspCh(CRDRID ResId);
- CVoipChannel* findVoipCh(CRDRID ResId);
- CSpanChannel* findSpanCh(CRDRID ResId);
- bool meetingCreate(int BoardNo, MeetingInfo& MeetingId);
- void meetingDelete(MeetingInfo& MeetingId);
- bool meetingJoin(int BoardNo, COneLeg* pLeg, MeetingInfo& MeetingId, bool IsOneWay);
- bool meetingRemove(int BoardNo, COneLeg* pLeg, MeetingInfo& MeetingId);
- bool meetingRecord(int BoardNo, COneLeg* pLeg, MeetingInfo& MeetingId, RecordContent* pContent, bool IsStop);
- bool meetingMute(int BoardNo, COneLeg* pLeg, MeetingInfo& MeetingId, bool IsOff);
- // 系统事件处理
- void onResourceStateUpdated(INT EvtType, SYS_EVT_DATA* pEvtData);
- void onResourceAlarm(INT EvtType, SYS_EVT_DATA* pEvtData);
- void onResourceCapacity(INT EvtType, SYS_EVT_DATA* pEvtData);
- void onSipRegSent(SEND_SIPREG_RET* pSent);
- void onSipRegAck(SIP_REGISTER_ACK* pAck);
- void onSipTransaction(SIP_TRANSACTION_IND* pTransaction);
- private:
- void __free(void);
- CDevSpan* __getSpan(int BoardNo, bool NewWhenNull = false);
- CDevDsp* __getDsp(int BoardNo, bool NewWhenNull = false);
- CDevVoip* __getVoip(int BoardNo, bool NewWhenNull = false);
- CDevIpm* __getIpm(int BoardNo, bool NewWhenNull = false);
- bool __isSpanOk(void) const;
- bool __isDspOk(void) const;
- bool __isVoipOk(void) const;
- bool __isIpmOk(void) const;
- private:
- CMC* m_pParent;
- int m_IsxNo; // 毅航设备节点号
- // PBX属性相关
- UINT m_state;
- // 设备资源相关
- CArray<CDevSpan*, CDevSpan*> m_SpanList;
- CArray<CDevDsp*, CDevDsp*> m_DspList;
- CArray<CDevVoip*, CDevVoip*> m_VoipList;
- CArray<CDevIpm*, CDevIpm*> m_IpmList;
- };
|