中间件标准版5.1git,去除基础模块

TapiOpHangup.cpp 4.1KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143
  1. #include "StdAfx.h"
  2. #include "TapiOpHangup.h"
  3. #include "LineOpExec.h"
  4. #include "DevControl.h"
  5. #include "TapiLine.h"
  6. CTapiOpHangup::CTapiOpHangup(LONG Instance) : CTapiOpBase(Instance), m_WaitingCall(NULL), m_Step(0)
  7. {
  8. }
  9. CTapiOpHangup::~CTapiOpHangup(void)
  10. {
  11. }
  12. /*****************************************************************
  13. **【函数名称】 start
  14. **【函数功能】 操作启动(命令方式)
  15. **【参数】 pParam 操作启动参数
  16. **【返回值】
  17. ****************************************************************/
  18. bool CTapiOpHangup::start( LineOpParam* pParam )
  19. {
  20. // 对活动呼叫执行挂机操作
  21. m_WaitingCall = m_pHostLine->activeCall();
  22. if(m_WaitingCall == NULL)
  23. {
  24. CDevControl::GetInstance().onEventLog(LOG_LEVEL_WARNING, _T("{OP_Hangup}: Exten[%s]执行挂机操作时未检测到关联呼叫, 线路将被Reset"), m_pHostLine->extenID());
  25. return m_pHostLine->lineReopen();
  26. }
  27. else
  28. {
  29. // 通知启动日志
  30. CDevControl::GetInstance().onEventLog(LOG_LEVEL_NORMAL, _T("{OP_Hangup}: Exten[%s]执行挂机"), m_pHostLine->extenID());
  31. m_Step = 1;
  32. return m_pHostLine->lineDropCall(m_WaitingCall);
  33. } // end if
  34. }
  35. /*****************************************************************
  36. **【函数名称】 cancel
  37. **【函数功能】 操作取消(命令方式)
  38. **【参数】
  39. **【返回值】
  40. ****************************************************************/
  41. bool CTapiOpHangup::cancel( LONG InstanceCancel )
  42. {
  43. return false;
  44. }
  45. /*****************************************************************
  46. **【函数名称】 end
  47. **【函数功能】 操作完成
  48. **【参数】 bIsSucceed 操作是否成功
  49. **【返回值】
  50. ****************************************************************/
  51. void CTapiOpHangup::end( bool IsSucceed )
  52. {
  53. if(IsSucceed)
  54. {
  55. CDevControl::GetInstance().onEventLog(LOG_LEVEL_NORMAL, _T("{OP_Hangup}: Exten[%s]挂机成功"), m_pHostLine->extenID());
  56. }
  57. else
  58. {
  59. CDevControl::GetInstance().onEventLog(LOG_LEVEL_WARNING, _T("{OP_Hangup}: Exten[%s]挂机失败"), m_pHostLine->extenID());
  60. } // end if
  61. // 返回执行结果
  62. CLineOpExec::GetInstance().onTapiOpResult(m_Instance, this, IsSucceed);
  63. }
  64. /*****************************************************************
  65. **【函数名称】 onReply
  66. **【函数功能】 线路操作异步响应事件
  67. **【参数】 pEventLine 触发事件的线路
  68. RequestID
  69. Result
  70. **【返回值】
  71. ****************************************************************/
  72. void CTapiOpHangup::onReply( CTapiLine* pEventLine, LONG RequestID, HRESULT Result )
  73. {
  74. if(m_Step != 0)
  75. {
  76. if(Result == S_OK)
  77. end(true);
  78. else
  79. end(false); // 挂机操作在此处终止
  80. }
  81. }
  82. /*****************************************************************
  83. **【函数名称】 onCallState
  84. **【函数功能】 呼叫状态事件
  85. **【参数】 pEventLine 触发事件的线路
  86. CallId 触发事件的呼叫句柄
  87. CallState 呼叫基本状态
  88. CallStateDetail 呼叫明细状态
  89. **【返回值】
  90. ****************************************************************/
  91. void CTapiOpHangup::onCallState( CTapiLine* pEventLine, HCALL CallId, DWORD CallState, DWORD CallStateDetail )
  92. {
  93. m_Step = 1;
  94. m_WaitingCall = m_pHostLine->activeCall();
  95. m_pHostLine->lineDropCall(m_WaitingCall);
  96. }
  97. /*****************************************************************
  98. **【函数名称】 onDevLinkEventS
  99. **【函数功能】 DevLink中S事件响应
  100. **【参数】 pEventLine 触发事件的线路
  101. pInfoS DevLink S事件内容
  102. **【返回值】
  103. ****************************************************************/
  104. void CTapiOpHangup::onDevLinkEventS( CTapiLine* pEventLine, DevLinkInfoS* pInfoS )
  105. {
  106. }
  107. /*****************************************************************
  108. **【函数名称】 onDevLineEventD
  109. **【函数功能】 DevLink中D事件响应
  110. **【参数】 pEventLine 触发事件的线路
  111. DevLinkCallId DevLink事件CallId
  112. **【返回值】
  113. ****************************************************************/
  114. void CTapiOpHangup::onDevLinkEventD( CTapiLine* pEventLine, int DevLinkCallId )
  115. {
  116. }
  117. /*****************************************************************
  118. **【函数名称】 onDevLineEventA
  119. **【函数功能】 DevLink中A事件响应
  120. **【参数】 pEventLine 触发事件的线路
  121. DevLinkCallId DevLink事件CallId
  122. **【返回值】
  123. ****************************************************************/
  124. void CTapiOpHangup::onDevLinkEventA( CTapiLine* pEventLine, int DevLinkCallId )
  125. {
  126. }