| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990 |
- /*************************************************************************
- 【文件名】 ProxyVoip.h
- 【功能模块和目的】 VOIP线路代理类头文件
- 【开发者及日期】 郑石诺 2015/05/21
- 【版本】 V1.0.0
- 【版权信息】 Copyright (C)2015 河南华谊网络科技有限公司
- 【更改记录】
- *************************************************************************/
- #pragma once
- #include "virtualproxy.h"
- /*************************************************************************
- 【类名】 CProxyVoip
- 【功能】
- 【接口说明】 VOIP线路代理类
- 【开发者及日期】 郑石诺 2015/05/21
- 【版本】 V1.0.0
- 【版权信息】 Copyright (C)2015 河南华谊网络科技有限公司
- 【更改记录】
- *************************************************************************/
- class CProxyVoip : public CVirtualProxy
- {
- private:
- class IImplement
- {
- public:
- virtual ~IImplement(void) = 0 {}
- virtual void onNewCall(CProxyVoip& Proxy, long Call, long SubCall) = 0;
- virtual void onDevChEvent(CProxyVoip& Proxy, DEV_CH_EVT_TYPE EvtType, LPCTSTR lpContent) = 0;
- virtual void onLineStateChanged(CProxyVoip& Proxy, long Call, long SubCall, VIRTUAL_LINE_STATE State, LPCTSTR lpCallerNum, LPCTSTR lpCalleeNum) = 0;
- virtual void procLineState(CProxyVoip& Proxy, long Call, long SubCall, VIRTUAL_LINE_STATE State, LPCTSTR lpCallerNum, LPCTSTR lpCalleeNum) = 0;
- virtual void notifyLineState(CProxyVoip& Proxy) = 0;
- virtual UINT transVirtualState2OuterState(VIRTUAL_LINE_STATE State) const = 0;
- };
- class CImplement4Trunk : public IImplement
- {
- public:
- void onNewCall(CProxyVoip& Proxy, long Call, long SubCall);
- void onDevChEvent(CProxyVoip& Proxy, DEV_CH_EVT_TYPE EvtType, LPCTSTR lpContent);
- void onLineStateChanged(CProxyVoip& Proxy, long Call, long SubCall, VIRTUAL_LINE_STATE State, LPCTSTR lpCallerNum, LPCTSTR lpCalleeNum);
- void procLineState(CProxyVoip& Proxy, long Call, long SubCall, VIRTUAL_LINE_STATE State, LPCTSTR lpCallerNum, LPCTSTR lpCalleeNum);
- void notifyLineState(CProxyVoip& Proxy);
- UINT transVirtualState2OuterState(VIRTUAL_LINE_STATE State) const;
- };
- class CImplement4Exten : public IImplement
- {
- void onNewCall(CProxyVoip& Proxy, long Call, long SubCall);
- void onDevChEvent(CProxyVoip& Proxy, DEV_CH_EVT_TYPE EvtType, LPCTSTR lpContent);
- void onLineStateChanged(CProxyVoip& Proxy, long Call, long SubCall, VIRTUAL_LINE_STATE State, LPCTSTR lpCallerNum, LPCTSTR lpCalleeNum);
- void procLineState(CProxyVoip& Proxy, long Call, long SubCall, VIRTUAL_LINE_STATE State, LPCTSTR lpCallerNum, LPCTSTR lpCalleeNum);
- void notifyLineState(CProxyVoip& Proxy);
- UINT transVirtualState2OuterState(VIRTUAL_LINE_STATE State) const;
- };
- public:
- CProxyVoip(CProxyShell* pParent, CRDRID DevId);
- virtual ~CProxyVoip(void);
- void getAssoExtenNo(CString& ExtenNo);
- ////////////////////////////////////////////////////////////////////////////////
- //继承自CVirtualProxy
- UINT lineId(void) const { return m_DevId.toIntId(); }
- DEV_RES_TYPE type(void) const { return DEV_RES_TYPE_VOIP; }
- void wrap(CVirtualProxy* pWrapper);
- void notifyLineInfo(void) const;
- void notifyLineInfo(PDU_DEV_TYPE DestType, int DestId) const;
- void onNewCall(long Call, long SubCall);
- void onDevChEvent(DEV_CH_EVT_TYPE EvtType, LPCTSTR lpContent);
- 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:
- friend class CImplement4Trunk;
- friend class CImplement4Exten;
- private:
- static CImplement4Trunk ms_Implement4Trunk;
- static CImplement4Exten ms_Implement4Exten;
- IImplement* m_pImplement;
- CVirtualProxy* m_IAmExten; // 当前代理所代表的SIP内线
- };
|