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

OneLeg.h 2.6KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. /*************************************************************************
  2. 【文件名】 OneLeg.h
  3. 【功能模块和目的】 呼叫的一方抽象基类头文件
  4. 【开发者及日期】 郑石诺 2015/04/09
  5. 【版本】 V1.0.0
  6. 【版权信息】 Copyright (C)2015 河南华谊网络科技有限公司
  7. 【更改记录】
  8. *************************************************************************/
  9. #pragma once
  10. class CChannelResource;
  11. class CDspChannel;
  12. /*************************************************************************
  13. 【类名】 COneLeg
  14. 【功能】
  15. 【接口说明】 呼叫的一方抽象基类
  16. 【开发者及日期】 郑石诺 2015/04/09
  17. 【版本】 V1.0.0
  18. 【版权信息】 Copyright (C)2015 河南华谊网络科技有限公司
  19. 【更改记录】
  20. *************************************************************************/
  21. class COneLeg
  22. {
  23. public:
  24. COneLeg(void);
  25. virtual ~COneLeg(void) = 0 {}
  26. int state(void) const { return m_State; }
  27. long sessionCode(void) const { return m_SessionCode; }
  28. long& sessionCode(void) { return m_SessionCode; }
  29. const CString& getCaller(void) const { return m_CallerNum; }
  30. const CString& getCallee(void) const { return m_CalleeNum; }
  31. void reset(void);
  32. // 话务功能接口
  33. virtual bool check(void) { return false; } // 线路自检
  34. virtual bool offhook(bool IgnoreSession, LPCTSTR CallerNum = NULL) = 0; // 内线摘机
  35. virtual bool dropCall(bool IsPassive) = 0; // 挂机
  36. virtual bool makeCall(LPCTSTR Callee, LPCTSTR Caller, int AccountId) = 0; // 启动线路拨号
  37. virtual bool answer(void) = 0; // 应答呼叫
  38. virtual bool playSound(PlayVoiceContent* pContent) = 0; // 放音收号
  39. virtual bool playTone(int Type) = 0; // 播放信号音
  40. virtual bool playStop(void) = 0; // 停止放音
  41. virtual bool startRecord(RecordContent* pContent) = 0; // 开始录音
  42. virtual bool stopRecord(void) = 0; // 停止录音
  43. virtual bool monitor(COneLeg* pTalker, bool IsStop) = 0; // 监听
  44. virtual bool allowMonitor(COneLeg* pMonitorParty) = 0; // 接受监听
  45. virtual bool cancelMonitor(COneLeg* pMonitorParty) = 0; // 取消监听
  46. virtual void freeResBinded(void) = 0; // 释放绑定资源
  47. virtual void setMeetingInfo(int NodeNo, int BoardNo, int MeetingId); // 设置会议ID
  48. // 呼叫建立接口
  49. virtual bool reply(void) = 0;
  50. virtual bool progress(void) = 0;
  51. virtual bool accept(void) = 0;
  52. virtual CChannelResource* routeChannel(void) = 0;
  53. virtual CChannelResource* resourceAttribute(void) = 0;
  54. virtual void onFaxEnd(bool IsSuccess, LPCTSTR Reason) = 0; // 传真结果处理
  55. protected:
  56. long m_SessionCode; // 当前线路所属的会话(由会话控制层管理)
  57. CString m_CallerNum; // 主叫号码
  58. CString m_CalleeNum; // 被叫号码
  59. volatile int m_State;
  60. MeetingInfo m_MeetingInfo;
  61. };