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

CfgTrunkMatch.cpp 1.5KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. #include "StdAfx.h"
  2. #include "CfgTrunkMatch.h"
  3. #include "DBCtrl.h"
  4. CCfgTrunkMatch::CCfgTrunkMatch(void)
  5. {
  6. }
  7. CCfgTrunkMatch::~CCfgTrunkMatch(void)
  8. {
  9. __free();
  10. }
  11. /*****************************************************************
  12. **【函数名称】 Free
  13. **【函数功能】 释放所有中继匹配信息
  14. **【参数】
  15. **【返回值】
  16. ****************************************************************/
  17. void CCfgTrunkMatch::__free( void )
  18. {
  19. while(m_nCount > 0)
  20. {
  21. TRUNK_MATCH* pTrunk = RemoveHead();
  22. ASSERT(pTrunk != NULL);
  23. delete pTrunk;
  24. }
  25. }
  26. /*****************************************************************
  27. **【函数名称】 load
  28. **【函数功能】 加载所有中继匹配信息
  29. **【参数】
  30. **【返回值】
  31. ****************************************************************/
  32. bool CCfgTrunkMatch::load( void )
  33. {
  34. IOtlRecordset* pMatchRcd = IOtlConnection::getInstance()->QueryRecords(_T("SELECT id, prefix, caller, trunk_id, priority FROM conf_trunk_match ORDER BY id ASC"));
  35. if (NULL == pMatchRcd)
  36. return false;
  37. while(!pMatchRcd->IsEOF())
  38. {
  39. TRUNK_MATCH* pMatch = new TRUNK_MATCH;
  40. ASSERT(pMatch != NULL);
  41. ZeroMemory(pMatch, sizeof(TRUNK_MATCH));
  42. pMatchRcd->MoveNextRow();
  43. pMatch->Id = pMatchRcd->GetValueIntByIndex(1);
  44. lstrcpy(pMatch->Prefix, pMatchRcd->GetValueStrByIndex(2));
  45. lstrcpy(pMatch->Caller, pMatchRcd->GetValueStrByIndex(3));
  46. pMatch->TrunkItemId = pMatchRcd->GetValueIntByIndex(4);
  47. pMatch->Priority = pMatchRcd->GetValueIntByIndex(5);
  48. AddTail(pMatch);
  49. } // end while
  50. IOtlRecordset::DestroyInstance(pMatchRcd); // 释放记录集
  51. return true;
  52. }