| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108 |
- #include "StdAfx.h"
- #include "FaxReq.h"
- #include "VirtualProxy.h"
- #include "MC.h"
- #include "ProxyShell.h"
- CFaxReq::CFaxReq(CProxyShell* pParent, CPduEntity& ReqPdu) : CReqBase(pParent, ReqPdu), m_IsRecving(false)
- {
- }
- CFaxReq::~CFaxReq(void)
- {
- }
- /*****************************************************************
- **【函数名称】 request
- **【函数功能】 发出请求(命令方式)
- **【参数】
- **【返回值】
- ****************************************************************/
- bool CFaxReq::request( void )
- {
- // 校验状态
- if(m_pHostLine->state() != VIRTUAL_LINE_STATE_TALKING)
- return false;
-
- // 保存传真信息
- m_IsRecving = m_ReqPdu.GetDataUInt(3) == CLIENT_REQ_FAX_RECV ? true : false; // (0 -> 发送,1 -> 接收)
- m_FileName = m_ReqPdu.GetDataString(4);
- LOGGER(LOG_CLASS_BUSI, LOG_LEVEL_NORMAL, _T("{LineReq}: 中继[%lu]%s传真, FileName = %s"),
- m_pHostLine->lineId(), m_IsRecving ? _T("接收") : _T("发送"), m_FileName);
- // 启动操作
- return CMC::GetInstance().fax(m_pHostLine->devId(), m_FileName, m_IsRecving);
- }
- /*****************************************************************
- **【函数名称】 end
- **【函数功能】 操作完成
- **【参数】 IsSucceed 操作是否成功
- lpData 随路数据
- **【返回值】
- ****************************************************************/
- void CFaxReq::end( bool IsSucceed, LPCTSTR lpData )
- {
- if(IsSucceed)
- {
- LOGGER(LOG_CLASS_BUSI, LOG_LEVEL_NORMAL, _T("{LineReq}: 中继[%lu]%s传真成功, FileName = %s"),
- m_pHostLine->lineId(), m_IsRecving ? _T("接收") : _T("发送"), m_FileName);
- }
- else
- {
- LOGGER(LOG_CLASS_BUSI, LOG_LEVEL_NORMAL, _T("{LineReq}: 中继[%lu]%s传真失败, FileName = %s"),
- m_pHostLine->lineId(), m_IsRecving ? _T("接收") : _T("发送"), m_FileName);
- } // end if
- m_pParent->onLineReqEnd(this, IsSucceed, lpData);
- }
- /*****************************************************************
- **【函数名称】 onDevChEvent
- **【函数功能】 线路向上层发送的设备主动事件
- **【参数】 pEventLine 触发事件的线路
- EvtType 事件类型
- lpContent 事件内容
- **【返回值】
- *****************************************************************/
- void CFaxReq::onDevChEvent( CVirtualProxy* pEventLine, DEV_CH_EVT_TYPE EvtType, LPCTSTR lpContent )
- {
- switch(EvtType)
- {
- case DEV_CH_EVT_FAX_OK: // 传真成功
- {
- end(true, lpContent);
- }
- break;
- case DEV_CH_EVT_FAX_FAILED: // 传真失败
- {
- end(false, lpContent);
- }
- break;
- default:
- ASSERT(FALSE);
- break;
- } // end switch
- }
- /*****************************************************************
- **【函数名称】 onLineStateChanged
- **【函数功能】 线路状态变化事件响应接口
- **【参数】 pEventLine 状态变化的线路实体指针
- LineState 线路当前状态
- Call 主呼叫ID
- SubCall 子呼叫ID
- lpCallerNum 主叫号码
- lpCalleeNum 被叫号码
- **【返回值】
- ****************************************************************/
- void CFaxReq::onLineStateChanged( CVirtualProxy* pEventLine, VIRTUAL_LINE_STATE LineState, long Call, long SubCall, LPCTSTR lpCallerNum, LPCTSTR lpCalleeNum )
- {
- //TODO: do nothing
- }
|