hd

OpAnswer.cpp 1.8KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. #include "StdAfx.h"
  2. #include "OpAnswer.h"
  3. #include "VirtualChan.h"
  4. #include "OperationReactor.h"
  5. #include "FsProxy.h"
  6. COpAnswer::COpAnswer(COperationReactor* pParent, LONG Instance) : COperation(pParent, Instance)
  7. {
  8. }
  9. COpAnswer::~COpAnswer(void)
  10. {
  11. }
  12. /*****************************************************************
  13. **【函数名称】 _end
  14. **【函数功能】 操作完成
  15. **【参数】 IsSucceed 操作是否成功
  16. lpData 随路数据
  17. **【返回值】
  18. ****************************************************************/
  19. void COpAnswer::_end( bool IsSucceed )
  20. {
  21. if(IsSucceed)
  22. {
  23. LOGGER(LOG_LEVEL_NORMAL, _T("{OpAnswer}: 分机[%lu]应答成功, CallerNum = %s"), m_pHostChan->no(), m_pHostChan->callerNum());
  24. }
  25. else
  26. {
  27. LOGGER(LOG_LEVEL_WARNING, _T("{OpAnswer}: 分机[%lu]应答失败, CallerNum = %s"), m_pHostChan->no(), m_pHostChan->callerNum());
  28. }
  29. m_pParent->onOpResult(m_Instance, this, IsSucceed);
  30. }
  31. /*****************************************************************
  32. **【函数名称】 start
  33. **【函数功能】 执行操作
  34. **【参数】
  35. **【返回值】
  36. *****************************************************************/
  37. bool COpAnswer::start( LineOpParam* pParam )
  38. {
  39. // 校验状态
  40. if(m_pHostChan->state() != CHAN_LOGIC_STATE_ALERTING)
  41. return false;
  42. // 通知启动日志
  43. LOGGER(LOG_LEVEL_NORMAL, _T("{OpAnswer}: 分机[%lu]执行应答, CallerNum = %s"), m_pHostChan->no(), m_pHostChan->callerNum());
  44. // 开始应答
  45. return CFsProxy::GetInstance().answer(uniqueId(), m_pHostChan);
  46. }
  47. /*****************************************************************
  48. **【函数名称】 onBackgroudJobDone
  49. **【函数功能】 后台命令执行结束事件处理
  50. **【参数】
  51. **【返回值】
  52. *****************************************************************/
  53. void COpAnswer::onBackgroudJobDone( PBG_JOB_NOTIFY pNotify )
  54. {
  55. if(strstr(pNotify->JobBody, ESL_JOB_DONE_RES_OK) != NULL)
  56. _end(true);
  57. else
  58. _end(false);
  59. }