| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263 |
- #pragma once
- #include "FsLinkInc.h"
- #include <iostream>
- #include <string>
- using namespace std;
- class CFsProxy;
- class COperation;
- class VirtualChan
- {
- public:
- VirtualChan(CFsProxy* pParent, uint32_t ChanNo);
- virtual ~VirtualChan();
- void setRecordFile(const std::string& strFileName); // 设置坐席录音文件名
- const std::string& recordFile() const { return m_RecordFile; } // 获取当前线路录音文件名
- uint32_t no(void) const { return m_No; }
- CHAN_LOGIC_STATE state(void) const { return m_State; }
- bool isInMeeting(void) const { return m_IsInMeeting; }
- bool& isInMeeting(void) { return m_IsInMeeting; }
- COperation* currOp(void) const { return m_pOperation; }
- string chanId(void) const { return m_ChanId; }
- string sessionId(void) const { return m_SessionId; }
- string callerNum(void) const { return m_CallerNum; }
- string calleeNum(void) const { return m_CalleeNum; }
- string opNumber(void) const { return m_OpNumber; }
- string& opNumber(void) { return m_OpNumber; }
- bool bindOp(COperation* pOp);
- bool releaseOp(COperation* pOp);
- // 待实现接口
- virtual DEV_RES_TYPE type(void) const = 0; // 通道类型
- virtual bool isFree(void) const = 0;
- virtual bool isVoid(void) const = 0;
- virtual void regist(void) const = 0;
- virtual void onChanEvent(PCHAN_EVENT_NOTIFY pNotify) = 0;
- virtual void onSessionChanEvent(VirtualChan* pChanSession, PCHAN_EVENT_NOTIFY pNotify) = 0;
- virtual void onChanHold(EVENT_HOLD_TYPE HoldType) {};
- protected:
- void _setSession(string SessionId, string ChanId);
- void _reset(void);
- protected:
- CFsProxy* m_pParent; // 宿主类
- uint32_t m_No; // 通道号
- CHAN_LOGIC_STATE m_State; // 状态
- bool m_IsInMeeting; // 是否在会议中
- COperation* m_pOperation; // 关联操作
- string m_CallerNum; // 主叫号码
- string m_CalleeNum; // 被叫号码
- string m_OpNumber; // 通道操作号码
- private:
- string m_ChanId; // 通道动态ID
- string m_SessionId; // 会话ID
- std::string m_RecordFile; // 录音路径
- };
|