linux版本中间件

VirtualChan.h 2.0KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. #pragma once
  2. #include "FsLinkInc.h"
  3. #include <iostream>
  4. #include <string>
  5. using namespace std;
  6. class CFsProxy;
  7. class COperation;
  8. class VirtualChan
  9. {
  10. public:
  11. VirtualChan(CFsProxy* pParent, uint32_t ChanNo);
  12. virtual ~VirtualChan();
  13. void setRecordFile(const std::string& strFileName); // 设置坐席录音文件名
  14. const std::string& recordFile() const { return m_RecordFile; } // 获取当前线路录音文件名
  15. uint32_t no(void) const { return m_No; }
  16. CHAN_LOGIC_STATE state(void) const { return m_State; }
  17. bool isInMeeting(void) const { return m_IsInMeeting; }
  18. bool& isInMeeting(void) { return m_IsInMeeting; }
  19. COperation* currOp(void) const { return m_pOperation; }
  20. string chanId(void) const { return m_ChanId; }
  21. string sessionId(void) const { return m_SessionId; }
  22. string callerNum(void) const { return m_CallerNum; }
  23. string calleeNum(void) const { return m_CalleeNum; }
  24. string opNumber(void) const { return m_OpNumber; }
  25. string& opNumber(void) { return m_OpNumber; }
  26. bool bindOp(COperation* pOp);
  27. bool releaseOp(COperation* pOp);
  28. // 待实现接口
  29. virtual DEV_RES_TYPE type(void) const = 0; // 通道类型
  30. virtual bool isFree(void) const = 0;
  31. virtual bool isVoid(void) const = 0;
  32. virtual void regist(void) const = 0;
  33. virtual void onChanEvent(PCHAN_EVENT_NOTIFY pNotify) = 0;
  34. virtual void onSessionChanEvent(VirtualChan* pChanSession, PCHAN_EVENT_NOTIFY pNotify) = 0;
  35. virtual void onChanHold(EVENT_HOLD_TYPE HoldType) {};
  36. protected:
  37. void _setSession(string SessionId, string ChanId);
  38. void _reset(void);
  39. protected:
  40. CFsProxy* m_pParent; // 宿主类
  41. uint32_t m_No; // 通道号
  42. CHAN_LOGIC_STATE m_State; // 状态
  43. bool m_IsInMeeting; // 是否在会议中
  44. COperation* m_pOperation; // 关联操作
  45. string m_CallerNum; // 主叫号码
  46. string m_CalleeNum; // 被叫号码
  47. string m_OpNumber; // 通道操作号码
  48. private:
  49. string m_ChanId; // 通道动态ID
  50. string m_SessionId; // 会话ID
  51. std::string m_RecordFile; // 录音路径
  52. };