| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162 |
- #include "stdafx.h"
- #include "OpSendDtmf.h"
- #include "VirtualChan.h"
- #include "FsProxy.h"
- #include "OperationReactor.h"
- COpSendDtmf::COpSendDtmf(COperationReactor * pParent, LONG Instance):COperation(pParent, Instance)
- {
- }
- COpSendDtmf::~COpSendDtmf(void)
- {
- }
- bool COpSendDtmf::attachHostChan(CVirtualChan * pChan)
- {
- m_pHostChan = pChan;
- return true;
- }
- void COpSendDtmf::detachHostChan(void)
- {
- m_pHostChan = NULL;
- }
- bool COpSendDtmf::start(LineOpParam * pParam)
- {
- if (m_pHostChan == NULL || m_pHostChan->state() != CHAN_LOGIC_STATE_TALKING)
- {
- return false;
- }
- m_dtmf.Format("%s",pParam->szParam4);
- LOGGER(LOG_LEVEL_NORMAL, _T("{COpSendDtmf}: 通道[%lu]执行通道[%lu]发送按键, DTMF = %s"), pParam->nParam1,m_pHostChan->no(), m_dtmf);
- return CFsProxy::GetInstance().sendDtmf(uniqueId(), m_pHostChan->chanId(), m_dtmf);
- }
- void COpSendDtmf::onBackgroudJobDone(PBG_JOB_NOTIFY pNotify)
- {
- if (strstr(pNotify->JobBody, ESL_JOB_DONE_RES_FAILED) == NULL)
- _end(true);
- else
- _end(false);
- }
- void COpSendDtmf::_end(bool IsSucceed)
- {
- if (IsSucceed)
- {
- LOGGER(LOG_LEVEL_NORMAL, _T("{COpSendDtmf}: 线路[%lu]发送按键成功, DTMF = %s"), m_pHostChan->no(), m_dtmf);
- }
- else
- {
- LOGGER(LOG_LEVEL_WARNING, _T("{COpSendDtmf}: 线路[%lu]发送按键失败, DTMF = %s"), m_pHostChan->no(), m_dtmf);
- }
- // 返回执行结果
- if (m_InstanceCancel != FS_LINK_INSTANCE_INVALID)
- m_pParent->onOpResult(m_InstanceCancel, !IsSucceed);
- m_pParent->onOpResult(m_Instance, this, IsSucceed);
- }
|