MiddleWares_YiHe 郑州颐和医院随访系统中间件

OpLeaveWord.cpp 2.5KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. #include "StdAfx.h"
  2. #include "OpLeaveWord.h"
  3. #include "ChanTrunk.h"
  4. #include "OperationReactor.h"
  5. #include "FsProxy.h"
  6. COpLeaveWord::COpLeaveWord(COperationReactor* pParent, LONG Instance) : COperation(pParent, Instance)
  7. {
  8. }
  9. COpLeaveWord::~COpLeaveWord(void)
  10. {
  11. }
  12. /*****************************************************************
  13. **【函数名称】 _end
  14. **【函数功能】 操作完成
  15. **【参数】 IsSucceed 操作是否成功
  16. lpData 随路数据
  17. **【返回值】
  18. ****************************************************************/
  19. void COpLeaveWord::_end( bool IsSucceed )
  20. {
  21. if(IsSucceed)
  22. {
  23. LOGGER(LOG_LEVEL_NORMAL, _T("{OpLeaveWord}: 中继[%lu]留言成功, FileName = %s"), m_pHostChan->no(), m_FileName);
  24. }
  25. else
  26. {
  27. LOGGER(LOG_LEVEL_WARNING, _T("{OpLeaveWord}: 中继[%lu]留言失败, FileName = %s"), m_pHostChan->no(), m_FileName);
  28. }
  29. // 返回执行结果
  30. if(m_InstanceCancel != FS_LINK_INSTANCE_INVALID)
  31. m_pParent->onOpResult(m_InstanceCancel, !IsSucceed);
  32. m_pParent->onOpResult(m_Instance, this, IsSucceed);
  33. }
  34. /*****************************************************************
  35. **【函数名称】 start
  36. **【函数功能】 执行操作
  37. **【参数】
  38. **【返回值】
  39. *****************************************************************/
  40. bool COpLeaveWord::start( LineOpParam* pParam )
  41. {
  42. // 线路是否在通话中
  43. if(m_pHostChan->state() != CHAN_LOGIC_STATE_STANDBY)
  44. return false;
  45. UINT LimitTime = pParam->nParam3;
  46. m_FileName = pParam->szParam3;
  47. // 录音启动日志
  48. LOGGER(LOG_LEVEL_NORMAL, _T("{OpLeaveWord}: 中继[%lu]执行留言, FileName = %s, LimitTime = %lu(s), FinishKey = '%s'"),
  49. m_pHostChan->no(), m_FileName, LimitTime, pParam->szParam1);
  50. return CFsProxy::GetInstance().leaveWord(dynamic_cast<CChanTrunk*>(m_pHostChan), m_FileName, LimitTime, pParam->szParam1[0]);
  51. }
  52. /*****************************************************************
  53. **【函数名称】 onHostChanStateUpdated
  54. **【函数功能】 关联通道状态更新处理
  55. **【参数】
  56. **【返回值】
  57. *****************************************************************/
  58. void COpLeaveWord::onHostChanStateUpdated( CVirtualChan* pHostChan )
  59. {
  60. if(m_pHostChan->state() == CHAN_LOGIC_STATE_FREE)
  61. _end(true);
  62. }
  63. /*****************************************************************
  64. **【函数名称】 onChanAppExecuted
  65. **【函数功能】 通道任务执行结束事件处理
  66. **【参数】
  67. **【返回值】
  68. *****************************************************************/
  69. void COpLeaveWord::onChanAppExecuted( CVirtualChan* pHostChan, PAPP_EXEC_NOTIFY pNotify )
  70. {
  71. ASSERT(pNotify != NULL);
  72. if (pNotify == NULL)
  73. return;
  74. if(lstrcmp(pNotify->App, ESL_APP_LEAVEWORD) == 0)
  75. _end(true);
  76. }