修改三方通话功能,在发起三方通话时,先保持住主叫,然后再拉回主叫到会议

MeetingSession.cpp 1.9KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. #include "StdAfx.h"
  2. #include "MeetingSession.h"
  3. #include "CallSession.h"
  4. #include "ProxyShell.h"
  5. #include "MC.h"
  6. CMeetingSession::CMeetingSession(CCallSession* pParent, long SubId, PendingCallInfo* pInfo) : CSubSession(pParent, SubId, pInfo)
  7. {
  8. }
  9. CMeetingSession::~CMeetingSession(void)
  10. {
  11. }
  12. /*****************************************************************
  13. **【函数名称】 _onDialOK
  14. **【函数功能】 呼叫成功后续处理
  15. **【参数】
  16. **【返回值】
  17. *****************************************************************/
  18. void CMeetingSession::_onDialOK()
  19. {
  20. // 主会话转换成会议
  21. if(!m_pParent->trans2Meeting(m_pInfo->nHostLine))
  22. {
  23. CProxyShell::GetInstance().onDevChannelEvent(m_pInfo->nHostLine, DEV_CH_EVT_MEETING_RESULT, MEETING_RESULT_FAILED, 0);
  24. }
  25. else
  26. {
  27. // 被叫线路职责转换
  28. if(m_pParent->line2Meeting(m_pInfo->nAssoLine, CALL_PARTY_PENDING))
  29. CProxyShell::GetInstance().onDevChannelEvent(m_pInfo->nHostLine, DEV_CH_EVT_MEETING_RESULT, MEETING_RESULT_SUCCESS, 0);
  30. else
  31. CProxyShell::GetInstance().onDevChannelEvent(m_pInfo->nHostLine, DEV_CH_EVT_MEETING_RESULT, MEETING_RESULT_FAILED, 0);
  32. }
  33. }
  34. /*****************************************************************
  35. **【函数名称】 _onDialing
  36. **【函数功能】 呼叫进展处理
  37. **【参数】
  38. **【返回值】
  39. *****************************************************************/
  40. void CMeetingSession::_onDialRing()
  41. {
  42. }
  43. /*****************************************************************
  44. **【函数名称】 _onDialCancel
  45. **【函数功能】 呼叫取消处理
  46. **【参数】
  47. **【返回值】
  48. *****************************************************************/
  49. void CMeetingSession::_onDialCancel(void)
  50. {
  51. // 主控线路状态修正
  52. if(m_pParent->isExist(m_pInfo->nHostLine, m_HostLineParty))
  53. {
  54. CProxyShell::GetInstance().onLineStateUpdated(m_pInfo->nHostLine, m_pParent->id(), SESSION_INVALID_SUB_CALL,
  55. (VIRTUAL_LINE_STATE)m_pInfo->nHostLineStatus, m_pInfo->szPreCallerNum, m_pInfo->szPreCalleeNum);
  56. } // end if
  57. }