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

Mixer.h 1.7KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. /*************************************************************************
  2. 【文件名】 Mixer.h
  3. 【功能模块和目的】 呼叫通道混音器类头文件
  4. 【开发者及日期】 郑石诺 2015/05/15
  5. 【版本】 V1.0.0
  6. 【版权信息】 Copyright (C)2015 河南华谊网络科技有限公司
  7. 【更改记录】
  8. *************************************************************************/
  9. #pragma once
  10. #include "IMixerHost.h"
  11. class CDspChannel;
  12. class CChannelResource;
  13. /*************************************************************************
  14. 【类名】 CMixer
  15. 【功能】
  16. 【接口说明】 呼叫通道混音器类
  17. 【开发者及日期】 郑石诺 2015/05/15
  18. 【版本】 V1.0.0
  19. 【版权信息】 Copyright (C)2015 河南华谊网络科技有限公司
  20. 【更改记录】
  21. *************************************************************************/
  22. class CMixer
  23. {
  24. public:
  25. CMixer(IMixerHost& Host);
  26. ~CMixer(void);
  27. bool allowedMonitor(void) const { return m_pMonitorChan == NULL; }
  28. //{ return m_pRecordDsp == NULL && m_pMonitorChan == NULL; }
  29. // 操作接口
  30. bool playSound(PlayVoiceContent* pContent); // 放音收号
  31. bool playTone(int Type); // 播放信号音
  32. bool playStop(void); // 停止放音
  33. bool startRecord(RecordContent* pContent); // 开始录音
  34. bool stopRecord(void); // 停止录音
  35. void release(void); // 释放所有资源
  36. bool setupMonitor(CChannelResource* pMonitorParty); // 建立监听
  37. bool undoMonitor(CChannelResource* pMonitorParty); // 撤销监听
  38. // voice处理接口
  39. void onPlayEnd(LPCTSTR lpDtmf);
  40. void onRecEnd(UINT TaskId);
  41. void onToneEnd(int ToneTp);
  42. private:
  43. bool __attachPlayDsp(void);
  44. void __detachPlayDsp(void);
  45. bool __attachRecordDsp(void);
  46. void __detachRecordDsp(void);
  47. private:
  48. IMixerHost& m_Host;
  49. CDspChannel* m_pPlayDsp;
  50. CDspChannel* m_pRecordDsp;
  51. CChannelResource* m_pMonitorChan;
  52. };