#include "stdafx.h" #include "TaskDevCallIn.h" #include "IvrFlowHolder.h" #include "IvrFlow.h" #include "SessionHolder.h" #include "CallSession.h" #include "LogicLine.h" #include "StatisticsMgr.h" CTaskDevCallIn::CTaskDevCallIn(EventDevOperation &DevOpInfo): CTask(DevOpInfo) { } CTaskDevCallIn::~CTaskDevCallIn(void) { } /***************************************************************** **【函数名称】 DoTask **【函数功能】 Task处理 **【参数】 **【返回值】 void ****************************************************************/ BOOL CTaskDevCallIn::DoTask() { // 校验 if(m_pCurrLine == NULL) { ILogger::getInstance().log(LOG_CLASS_BUSI, LOG_LEVEL_WARNING, _T("{Task}: 线路[%d]执行设备外线来电任务失败:无法获取对应线路"), m_CurrDevOp.nLineId); return FALSE; } // 创建会话 if(m_pCurrLine->callId() == 0) CSessionHolder::GetInstance().createSession(m_pCurrLine); else ILogger::getInstance().log(LOG_CLASS_BUSI, LOG_LEVEL_WARNING, _T("{Task}: 线路[%d]执行设备外线来电任务时已关联CallID"), m_CurrDevOp.nLineId); // 统计 T_EvtTrunkCallIn repInfo; memset(&repInfo, 0, sizeof(repInfo)); lstrcpy(repInfo.szCallerNum, m_CurrDevOp.szCallerNum); lstrcpy(repInfo.szCalleeNum, m_CurrDevOp.szCalleeNum); CStatisticsMgr::GetInstance().onCallDetail(m_pCurrLine->callId(), REP_EVENT_TRUNK_CALL_IN, m_pCurrLine->lineId(), &repInfo); _freeLogicLine(); ILogger::getInstance().log(LOG_CLASS_BUSI, LOG_LEVEL_WARNING, _T("{Task}: 线路[%d]执行设备外线来电,DevOp,caller=%s,callee=%s"), m_CurrDevOp.nLineId, m_CurrDevOp.szCallerNum, m_CurrDevOp.szCalleeNum); // 通知IVR外线来电 CIvrFlowHolder::GetInstance().onDevMessage(m_CurrDevOp); return FALSE; } /***************************************************************** **【函数名称】 OnDevOpResult **【函数功能】 底层线路操作结果 **【参数】 EvtType 消息事件类型;lpContent 消息内容 **【返回值】 BOOL ****************************************************************/ BOOL CTaskDevCallIn::OnDevOpResult(EventOpResult &EvtInfo) { return TRUE; }