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

PrdVirtualDevice.cpp 1.3KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. #include "StdAfx.h"
  2. #include "PrdVirtualDevice.h"
  3. CPrdVirtualDevice::CPrdVirtualDevice(void) : m_No(0), m_Handle(DEV_HANDLE_INVALID)
  4. {
  5. }
  6. CPrdVirtualDevice::~CPrdVirtualDevice(void)
  7. {
  8. close();
  9. }
  10. /*****************************************************************
  11. **【函数名称】 open
  12. **【函数功能】 打开系统资源
  13. **【参数】
  14. **【返回值】 成功true,失败false
  15. ****************************************************************/
  16. bool CPrdVirtualDevice::open( int No )
  17. {
  18. ASSERT(m_Handle == DEV_HANDLE_INVALID);
  19. // 打开DTI channel
  20. m_Handle = ISX_dx_open(DT_PRD, No, -1, -1, this);
  21. if(m_Handle == -1)
  22. {
  23. m_Handle = DEV_HANDLE_INVALID;
  24. LOGGER(LOG_CLASS_DEV, LOG_LEVEL_ERROR, _T("{PrdDev}: PRD设备[%d]打开失败"), m_No);
  25. return false;
  26. }
  27. m_No = No;
  28. LOGGER(LOG_CLASS_DEV, LOG_LEVEL_NORMAL, _T("{PrdDev}: PRD设备[%d]打开成功"), m_No);
  29. return true;
  30. }
  31. /*****************************************************************
  32. **【函数名称】 close
  33. **【函数功能】 关闭系统资源
  34. **【参数】
  35. **【返回值】
  36. ****************************************************************/
  37. void CPrdVirtualDevice::close( void )
  38. {
  39. if(m_Handle != DEV_HANDLE_INVALID)
  40. {
  41. ISX_dx_close(m_Handle, 0);
  42. m_Handle = DEV_HANDLE_INVALID;
  43. m_No = 0;
  44. }
  45. LOGGER(LOG_CLASS_DEV, LOG_LEVEL_NORMAL, _T("{PrdDev}: PRD设备[%d]关闭"), m_No);
  46. }