/************************************************************************* 【文件名】 SubSession.h 【功能模块和目的】 子会话处理类基类头文件 【开发者及日期】 郑石诺 2015/03/31 【版本】 V1.0.0 【版权信息】 Copyright (C)2015 河南华谊网络科技有限公司 【更改记录】 *************************************************************************/ #pragma once class CCallSession; /************************************************************************* 【类名】 CSubSession 【功能】 【接口说明】 子会话处理类基类 【开发者及日期】 郑石诺 2015/03/31 【版本】 V1.0.0 【版权信息】 Copyright (C)2015 河南华谊网络科技有限公司 【更改记录】 *************************************************************************/ class CSubSession { public: CSubSession(CCallSession* pParent, long SubId, PendingCallInfo* pInfo); virtual ~CSubSession(void); // 操作处理 virtual bool begin(CALL_PARTY_TYPE HostLineParty); // 操作启动 virtual bool resume(UINT Type) { return false; } // 操作暂停后继续处理 virtual bool replace(CRDRID HostLine, CRDRID PeerLine, UINT ExtNum); // 被叫线路替换 virtual void onHostLineStateFree(void) {} virtual void onPeerLineStateFree(void) {} // 待处理线路状态变化 void onPendingLineState(VIRTUAL_LINE_STATE LineState); // 获取子呼叫的关联线路 CRDRID getSubPeerLine(void) { return m_pInfo->nAssoLine; } // 获取子呼叫的主控线路 CRDRID getSubHostLine(void) { return m_pInfo->nHostLine; } protected: // 重载方法 virtual void _onDialOK(void) = 0; // 呼叫成功处理 virtual void _onDialCancel(void) = 0; // 呼叫取消处理 virtual void _onDialRing(void) = 0; // 呼叫振铃处理 virtual void _onDialProgressing(void) {} // 呼叫进展处理 protected: // 基础属性 CCallSession* m_pParent; // 当前呼叫所属的主呼叫 const long m_Id; // 当前呼叫的ID CALL_PARTY_TYPE m_HostLineParty; // 主控线路在上级会话中的职责 // 逻辑属性 PendingCallInfo* m_pInfo; // 呼叫信息 };