/************************************************************************* 【文件名】 OneLeg.h 【功能模块和目的】 呼叫的一方抽象基类头文件 【开发者及日期】 郑石诺 2015/04/09 【版本】 V1.0.0 【版权信息】 Copyright (C)2015 河南华谊网络科技有限公司 【更改记录】 *************************************************************************/ #pragma once class CChannelResource; class CDspChannel; /************************************************************************* 【类名】 COneLeg 【功能】 【接口说明】 呼叫的一方抽象基类 【开发者及日期】 郑石诺 2015/04/09 【版本】 V1.0.0 【版权信息】 Copyright (C)2015 河南华谊网络科技有限公司 【更改记录】 *************************************************************************/ class COneLeg { public: COneLeg(void); virtual ~COneLeg(void) = 0 {} int state(void) const { return m_State; } long sessionCode(void) const { return m_SessionCode; } long& sessionCode(void) { return m_SessionCode; } const CString& getCaller(void) const { return m_CallerNum; } const CString& getCallee(void) const { return m_CalleeNum; } void reset(void); // 话务功能接口 virtual bool check(void) { return false; } // 线路自检 virtual bool offhook(bool IgnoreSession, LPCTSTR CallerNum = NULL) = 0; // 内线摘机 virtual bool dropCall(bool IsPassive) = 0; // 挂机 virtual bool makeCall(LPCTSTR Callee, LPCTSTR Caller, int AccountId) = 0; // 启动线路拨号 virtual bool answer(void) = 0; // 应答呼叫 virtual bool playSound(PlayVoiceContent* pContent) = 0; // 放音收号 virtual bool playTone(int Type) = 0; // 播放信号音 virtual bool playStop(void) = 0; // 停止放音 virtual bool startRecord(RecordContent* pContent) = 0; // 开始录音 virtual bool stopRecord(void) = 0; // 停止录音 virtual bool monitor(COneLeg* pTalker, bool IsStop) = 0; // 监听 virtual bool allowMonitor(COneLeg* pMonitorParty) = 0; // 接受监听 virtual bool cancelMonitor(COneLeg* pMonitorParty) = 0; // 取消监听 virtual void freeResBinded(void) = 0; // 释放绑定资源 virtual void setMeetingInfo(int NodeNo, int BoardNo, int MeetingId); // 设置会议ID // 呼叫建立接口 virtual bool reply(void) = 0; virtual bool progress(void) = 0; virtual bool accept(void) = 0; virtual CChannelResource* routeChannel(void) = 0; virtual CChannelResource* resourceAttribute(void) = 0; virtual void onFaxEnd(bool IsSuccess, LPCTSTR Reason) = 0; // 传真结果处理 protected: long m_SessionCode; // 当前线路所属的会话(由会话控制层管理) CString m_CallerNum; // 主叫号码 CString m_CalleeNum; // 被叫号码 volatile int m_State; MeetingInfo m_MeetingInfo; };