/************************************************************************* 【文件名】 TapiOpBase.h 【功能模块和目的】 TAPI操作行为类基类头文件 【开发者及日期】 郑石诺 2016/03/23 【版本】 V1.0.0 【版权信息】 Copyright (C)2016 河南华谊网络科技有限公司 【更改记录】 *************************************************************************/ #pragma once #include class CTapiLine; class CLineOpExec; /************************************************************************* 【类名】 CTapiOpBase 【功能】 【接口说明】 TAPI操作行为类基类 【开发者及日期】 郑石诺 2016/03/23 【版本】 V1.0.0 【版权信息】 Copyright (C)2016 河南华谊网络科技有限公司 【更改记录】 *************************************************************************/ class CTapiOpBase { public: CTapiOpBase(LONG Instance); virtual ~CTapiOpBase(void); // 关联操作 void attachHostLine(CTapiLine* pLine); // 设置主控线路的关联 void attachAssistLine(CTapiLine* pLine); // 设置辅助线路的关随 void detachAllLines(void); // 取消线路关联 // 操作主控方法 virtual bool start(LineOpParam* pParam) = 0; // 操作启动(命令方式) virtual void start(DevLinkInfoS* pInfo) {} // 操作启动(手动方式) virtual void setAssoInfo(LONG Info) {} // 设置关联信息 virtual bool cancel(LONG InstanceCancel) = 0; // 取消当前操作 virtual void end(bool IsSucceed) = 0; // 操作完成(注:此操作之后只能调用 return 语句) virtual bool resume(long Instance) { return false; } // 当前操作继续执行 // 线路交互事件 virtual void onReply(CTapiLine* pEventLine, LONG RequestID, HRESULT Result) = 0; // 线路操作异步响应事件 virtual void onCallState(CTapiLine* pEventLine, HCALL CallId, DWORD CallState, DWORD CallStateDetail) = 0; // 呼叫状态事件 virtual void onDevLinkEventS(CTapiLine* pEventLine, DevLinkInfoS* pInfoS) = 0; // DevLink中S事件 virtual void onDevLinkEventD(CTapiLine* pEventLine, int DevLinkCallId) = 0; // DevLink中D事件 virtual void onDevLinkEventA(CTapiLine* pEventLine, int DevLinkCallId) = 0; // DevLink中A事件 protected: void _notifyOpProcess(DevLinkInfoS* pInfoS); // 通知操作进展事件 protected: CTapiLine* m_pHostLine; // 当前操作的主控线路 CTapiLine* m_pAssistLine; // 当前操作的辅助线路 LONG m_Instance; // 调用标识,用于回传 LONG m_InstanceCancel; // 启动取消操作的调用标识 };