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

DevVoip.h 1.8KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. /*************************************************************************
  2. 【文件名】 DevVoip.h
  3. 【功能模块和目的】 VOIP资源管理类头文件
  4. 【开发者及日期】 郑石诺 2015/04/17
  5. 【版本】 V1.0.0
  6. 【版权信息】 Copyright (C)2015 河南华谊网络科技有限公司
  7. 【更改记录】
  8. *************************************************************************/
  9. #pragma once
  10. #include "devresource.h"
  11. class CVoipChannel;
  12. class COneLeg;
  13. class CSipRegister;
  14. /*************************************************************************
  15. 【类名】 CDevVoip
  16. 【功能】
  17. 【接口说明】 VOIP资源管理类
  18. 【开发者及日期】 郑石诺 2015/04/17
  19. 【版本】 V1.0.0
  20. 【版权信息】 Copyright (C)2015 河南华谊网络科技有限公司
  21. 【更改记录】
  22. *************************************************************************/
  23. class CDevVoip : public CDevResource
  24. {
  25. public:
  26. CDevVoip(DEV_RES_NO_TYPE NodeNo, DEV_RES_NO_TYPE BoardNo);
  27. virtual ~CDevVoip(void);
  28. int channelCount(void) const { return m_VoipChList.GetCount(); }
  29. ULONG netId(void) const { return m_NetId; }
  30. bool service4Exten(void) const { return m_Serve4Exten; }
  31. // 操作接口
  32. bool open(void);
  33. void close(void);
  34. UINT makeSerialNo(void);
  35. bool isOk(void) const;
  36. CVoipChannel* getFreeVoipCh(void);
  37. CVoipChannel* findChan(int ResId);
  38. void onSipRegSent(SEND_SIPREG_RET* pSent);
  39. void onSipRegAck(SIP_REGISTER_ACK* pAck);
  40. void onSipTransaction(SIP_TRANSACTION_IND* pTransaction);
  41. private:
  42. CSipRegister* __getRegisterByAccountId(int AccountId, bool NewWhenNull = false);
  43. CSipRegister* __getRegisterBySerialNo(UINT SerialNo);
  44. void __freeRegister(void);
  45. void __regist(void);
  46. void __checkNetId(void);
  47. private:
  48. int m_CurPos;
  49. UINT m_SerialNoSeed;
  50. ULONG m_NetId;
  51. bool m_Serve4Exten;
  52. CArray<CVoipChannel*, CVoipChannel*> m_VoipChList;
  53. CList<CSipRegister*, CSipRegister*> m_SipRegisterList;
  54. };