| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106 |
- #include "StdAfx.h"
- #include "ProxyDti.h"
- #include "ProxyShell.h"
- CProxyDti::CProxyDti(CProxyShell* pParent, CRDRID DevId) : CVirtualProxy(pParent, DevId)
- {
- ASSERT(m_pParent != NULL);
- }
- CProxyDti::~CProxyDti(void)
- {
- // 通知业务逻辑线路被删除
- ASSERT(m_pParent != NULL);
- m_pParent->notifyDevResourceState(DEV_RES_TYPE_TRUNK, m_DevId.toIntId(), TRUNK_STATE_DISABLED);
- }
- /*****************************************************************
- **【函数名称】 __transVirtualState2OuterState
- **【函数功能】 映设虚拟线路状态到外部识别的状态
- **【参数】 State: 线路状态
- **【返回值】
- ****************************************************************/
- UINT CProxyDti::__transVirtualState2OuterState( VIRTUAL_LINE_STATE State ) const
- {
- switch(State)
- {
- case VIRTUAL_LINE_STATE_FREE: return TRUNK_STATE_FREE;
- case VIRTUAL_LINE_STATE_DIALING: return TRUNK_STATE_DIALING;
- case VIRTUAL_LINE_STATE_RING_BACK: return TRUNK_STATE_RING_BACK;
- case VIRTUAL_LINE_STATE_ALERTING: return TRUNK_STATE_ALERTING;
- case VIRTUAL_LINE_STATE_TALKING: return TRUNK_STATE_TALKING;
- case VIRTUAL_LINE_STATE_DISABLED: return TRUNK_STATE_DISABLED;
- default: ASSERT(FALSE);
- } // end switch
- return TRUNK_STATE_DISABLED;
- }
- /*****************************************************************
- **【函数名称】 _procLineState
- **【函数功能】 线路状态变化事件处理
- **【参数】 Call 主会话ID
- SubCall 子会话ID
- State 线路基本状态
- lpCallerNum 主叫号码
- lpCalleeNum 被叫号码
- **【返回值】
- ****************************************************************/
- void CProxyDti::_procLineState( long Call, long SubCall, VIRTUAL_LINE_STATE State, LPCTSTR lpCallerNum, LPCTSTR lpCalleeNum )
- {
- // 根据外线状态进行对应的逻辑处理
- if((m_State == VIRTUAL_LINE_STATE_FREE && State == VIRTUAL_LINE_STATE_TALKING) ||
- (m_State == VIRTUAL_LINE_STATE_ALERTING && State == VIRTUAL_LINE_STATE_TALKING))
- {
- // 外线来电
- m_CallerNum = lpCallerNum;
- m_CalleeNum = lpCalleeNum;
- ASSERT(m_pParent != NULL);
- m_pParent->notifyLineOpEvent(m_DevId.toIntId(), DEV_OP_CALL_IN, lpCallerNum, lpCalleeNum);
- LOGGER(LOG_CLASS_DEV, LOG_LEVEL_NORMAL, _T("{CProxyDti}: 外线来电,%d,Caller=%s,Callee=%s"), m_DevId.toIntId(),lpCallerNum, lpCalleeNum);
- }
- }
- /*****************************************************************
- **【函数名称】 _notifyLineState
- **【函数功能】 通知上层逻辑线路状态变化事件
- **【参数】
- **【返回值】
- ****************************************************************/
- void CProxyDti::_notifyLineState( void )
- {
- // 通知业务逻辑线路状态变化事件
- ASSERT(m_pParent != NULL);
- m_pParent->notifyDevResourceState(DEV_RES_TYPE_TRUNK, m_DevId.toIntId(), __transVirtualState2OuterState(m_State), m_CallerNum, m_CalleeNum);
- }
- /*****************************************************************
- **【函数名称】 notifyLineInfo
- **【函数功能】 通知上层逻辑线路信息
- **【参数】
- **【返回值】
- ****************************************************************/
- void CProxyDti::notifyLineInfo( PDU_DEV_TYPE DestType, int DestId ) const
- {
- // 通知业务逻辑线路状态变化事件
- ASSERT(m_pParent != NULL);
- m_pParent->notifyResourceDetail(DestType, DestId, DEV_RES_TYPE_TRUNK, m_DevId.toIntId());
- m_pParent->notifyDevResourceState(DestType, DestId, DEV_RES_TYPE_TRUNK, m_DevId.toIntId(), __transVirtualState2OuterState(m_State), m_CallerNum, m_CalleeNum);
- }
- /*****************************************************************
- **【函数名称】 notifyLineInfo
- **【函数功能】 通知上层逻辑线路信息
- **【参数】
- **【返回值】
- ****************************************************************/
- void CProxyDti::notifyLineInfo( void ) const
- {
- // 通知业务逻辑线路状态变化事件
- ASSERT(m_pParent != NULL);
- m_pParent->notifyResourceDetail(DEV_RES_TYPE_TRUNK, m_DevId.toIntId());
- m_pParent->notifyDevResourceState(DEV_RES_TYPE_TRUNK, m_DevId.toIntId(), __transVirtualState2OuterState(m_State), m_CallerNum, m_CalleeNum);
- }
|