/************************************************************************* 【文件名】 LineExten.h 【功能模块和目的】 分机内线代理类头文件 【开发者及日期】 郑石诺 2015/03/24 【版本】 V1.0.0 【版权信息】 Copyright (C)2015 河南华谊网络科技有限公司 【更改记录】 *************************************************************************/ #pragma once #include "VirtualProxy.h" /************************************************************************* 【类名】 CLineExten 【功能】 【接口说明】 分机内线代理类 【开发者及日期】 郑石诺 2015/03/24 【版本】 V1.0.0 【版权信息】 Copyright (C)2015 河南华谊网络科技有限公司 【更改记录】 *************************************************************************/ class CProxyExten : public CVirtualProxy { public: CProxyExten(CProxyShell* pParent, CRDRID DevId); virtual ~CProxyExten(void); bool isVoipExten(void) const { return true; } bool isNull(void) const { return m_DevId == m_RealDevId; } bool isFree(void) const; bool holdOn(void); bool takeBack(void); void getAssoExtenNo(CString& ExtenNo) { ExtenNo.Format(_T("%lu"), m_ExtNum); } //////////////////////////////////////////////////////////////////////////////// //继承自CVirtualProxy UINT lineId(void) const { return m_ExtNum; } DEV_RES_TYPE type(void) const { return DEV_RES_TYPE_EXT; } void wrap(CVirtualProxy* pWrapper) { m_DevId = pWrapper->devId(); } void notifyLineInfo(void) const; void notifyLineInfo(PDU_DEV_TYPE DestType, int DestId) const; void onLineStateChanged(long Call, long SubCall, VIRTUAL_LINE_STATE State, LPCTSTR lpCallerNum, LPCTSTR lpCalleeNum); protected: //////////////////////////////////////////////////////////////////////////////// //继承自CVirtualLine void _procLineState(long Call, long SubCall, VIRTUAL_LINE_STATE State, LPCTSTR lpCallerNum, LPCTSTR lpCalleeNum); void _notifyLineState(void); private: // 私有成员 UINT __transVirtualState2OuterState(VIRTUAL_LINE_STATE State) const; // 映设代理线路状态到外部识别的状态 private: UINT m_ExtNum; // 内线分机号 bool m_IsHoldOn; const DEV_RES_ID m_RealDevId; };