| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120 |
- #include "StdAfx.h"
- #include "VirtualChan.h"
- #include "Operation.h"
- #include "FsProxy.h"
- CVirtualChan::CVirtualChan(CFsProxy* pParent, UINT ChanNo) : m_pParent(pParent), m_No(ChanNo), m_State(CHAN_LOGIC_STATE_FREE), m_IsInMeeting(false), m_pOperation(NULL)
- {
- ASSERT(m_pParent != NULL);
- }
- CVirtualChan::~CVirtualChan(void)
- {
- }
- /*****************************************************************
- **【函数名称】 _setSession
- **【函数功能】 设置通道会话环境
- **【参数】
- **【返回值】
- ****************************************************************/
- void CVirtualChan::_setSession( LPCTSTR SessionId, LPCTSTR ChanId )
- {
- if(SessionId != NULL)
- m_SessionId = SessionId;
- else
- m_SessionId = _T("");
- if(ChanId != NULL)
- {
- m_ChanId = ChanId;
- m_pParent->regBusyChan(this);
- }
- else
- {
- m_pParent->unregBusyChan(this);
- m_ChanId = _T("");
- }
- }
- /*****************************************************************
- **【函数名称】 _reset
- **【函数功能】 重置通道
- **【参数】
- **【返回值】
- ****************************************************************/
- void CVirtualChan::_reset( void )
- {
- LOGGER(LOG_LEVEL_NORMAL, _T("{CVirtualChan}: 执行线路[%lu]重置",m_No));
- m_State = CHAN_LOGIC_STATE_FREE;
- m_IsInMeeting = false;
- m_CalleeNum = _T("");
- m_CalleeNum = _T("");
- m_ChanId = _T("");
- m_SessionId = _T("");
- m_OpNumber = _T("");
- }
- /*****************************************************************
- **【函数名称】 bindOp
- **【函数功能】 绑定操作
- **【参数】
- **【返回值】
- ****************************************************************/
- bool CVirtualChan::bindOp( COperation* pOp )
- {
- ASSERT(pOp != NULL);
- if(pOp == NULL || m_pOperation != NULL)
- return false;
- m_pOperation = pOp;
- return true;
- }
- /*****************************************************************
- **【函数名称】 releaseOp
- **【函数功能】 释放操作
- **【参数】
- **【返回值】
- ****************************************************************/
- bool CVirtualChan::releaseOp( COperation* pOp )
- {
- if(m_pOperation != pOp)
- return false;
- m_pOperation = NULL;
- return true;
- }
- /*****************************************************************
- **【函数名称】 onChanDtmf
- **【函数功能】 通道DTMF事件处理
- **【参数】
- **【返回值】
- ****************************************************************/
- void CVirtualChan::onChanDtmf( LPCTSTR Dtmf )
- {
- if(m_pOperation != NULL)
- m_pOperation->onHostChanDtmf(Dtmf);
- else {
- // 返回执行结果
- LOGGER(LOG_LEVEL_NORMAL, _T("{CVirtualChan}: 线路[%lu],dtmf=%s", m_No, Dtmf));
- CDevControl::GetInstance().onEventOpResult(100, m_No, false, Dtmf);
- }
- }
- /*****************************************************************
- **【函数名称】 onChanHold
- **【函数功能】 通道保持事件处理
- **【参数】
- **【返回值】
- ****************************************************************/
- void CVirtualChan::onChanHold( EVENT_HOLD_TYPE HoldType )
- {
- }
|