| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102 |
- #include "StdAfx.h"
- #include "LogicLineTrunk.h"
- #include "CallSession.h"
- #include "SessionHolder.h"
- #include "NetworkCti.h"
- #include "StatisticsMgr.h"
- CLogicLineTrunk::CLogicLineTrunk(UINT ResId) : CLogicLine(ResId)
- {
- }
- CLogicLineTrunk::~CLogicLineTrunk(void)
- {
- }
- /*****************************************************************
- **【函数名称】 onLineStatusUpdated
- **【函数功能】 处理线路状态变化
- **【参数】 EvtInfo: 线路资源状态
- **【返回值】
- ****************************************************************/
- void CLogicLineTrunk::onLineStatusUpdated( const EventResStatus &EvtInfo )
- {
- if(m_LineStatus == EvtInfo.nState)
- return;
- // 保存线路信息
- m_LineStatus = EvtInfo.nState;
- m_CallerNum = EvtInfo.szCallerNum;
- m_CalleeNum = EvtInfo.szCalleeNum;
- if(m_CallId != 0)
- ILogger::getInstance().log(LOG_CLASS_DEV, LOG_LEVEL_NORMAL, _T("{LogicLineTrunk}: 线路状态, LineId = %lu,State=%d,CallId=%lu,Caller=%s,Callee=%s"), m_LineId, m_LineStatus, m_CallId, m_CallerNum, m_CalleeNum);
- //白阳 2019-7-17
- //保持处理
- //if ( EvtInfo.nResType != 0 && (EvtInfo.nState && HELD_STATE_MASK) == INNER_STATE_HELD)
- //{
- // m_HoldCallId = m_CallId;
- // m_CallId = 0;
- //}
- ////接回处理
- //if (EvtInfo.nResType == 0 && (EvtInfo.nState && HELD_STATE_MASK) == INNER_STATE_HELD)
- //{
- // m_CallId = m_HoldCallId;
- // m_CallId = 0;
- //}
- ////获取中继呼入类型
- //m_FinaTrunk = CStatisticsMgr::GetInstance().getFinalExt(m_CallId);
- // 发送线路状态变化信息到ivr(需要显示的是外线的主被叫号码)
- //pushLineData2IVR();
- //统计线路状态变化
- _reportLineStatus();
- // 通知会话状态变化,保持会话(m_nHoldCallId)不再通知
- CSessionHolder::GetInstance().onLineStatusUpdated(this);
- }
- //白阳 7-18
- //中继向相关的ivr发送,不进行ivr流程的任何转接操作
- //void CLogicLineTrunk::pushLineData2IVR()
- //{
- //取到相关的随路数据,中继号
- //int m_eventID;
- //CString str_eventID;
- //UINT m_AssoLineType;
- //CCallSession* pTrunkSession;
- //pTrunkSession = CSessionHolder::GetInstance().findSession(m_CallId);
- ////str_eventID.Format("%d",m_eventID);
- //// 获取对端线路类型
- ////CLogicLine* pAssoLine = pTrunkSession->getAssoLine(this);
- ////if (pAssoLine != NULL)
- ////{
- //// m_AssoLineType = pAssoLine->type();
- //// //外线资源类型判定
- //// if (m_AssoLineType == DEV_RES_TYPE_TRUNK) {
- //// m_AssoLineType = pAssoLine->typeExtTrunk();
- //// }
- ////}
- //// 发送线路状态变化信息到IVR
- //CPduEntity Cmd(PDU_CMD_CTI_LINE_STATE);
- //Cmd.SetDataUInt(0, m_LineId);
- //Cmd.SetDataUInt(1, m_LineStatus);
- //Cmd.SetDataULong(2, (m_CallId == 0 ? m_HoldCallId : m_CallId));
- //Cmd.SetDataUInt(3, m_AgentId);
- //Cmd.SetDataString(4, m_CallerNum);
- //Cmd.SetDataString(5, m_CalleeNum);
- //Cmd.SetDataString(6, str_eventID);
- //Cmd.SetDataUInt(7, /*m_AssoLineType*/DEV_RES_TYPE_TRUNK);
- //
- ////IVR接收相关的消息,通过HP_Server发送给前端的页面显示
- //Cmd.SetDataUInt(9, m_FinaTrunk);
- //Cmd.SetDataUInt(10, m_CurrentOpType); // 传入当前线路操作类型
- //Cmd.SetDataInt(11, m_ActionID);
- //
- ////向IVR发送相关的消息
- //CNetworkCti::GetInstance().send2IVR(Cmd);
- //}
|