/************************************************************************* 【文件名】 TapiOpTransfer.h 【功能模块和目的】 TAPI操作【转移】类头文件 【开发者及日期】 郑石诺 2016/03/30 【版本】 V1.0.0 【版权信息】 Copyright (C)2016 河南华谊网络科技有限公司 【更改记录】 *************************************************************************/ #pragma once #include "tapiopbase.h" /************************************************************************* 【类名】 CTapiOpTransfer 【功能】 【接口说明】 TAPI操作【转移】类 【开发者及日期】 郑石诺 2016/03/30 【版本】 V1.0.0 【版权信息】 Copyright (C)2016 河南华谊网络科技有限公司 【更改记录】 *************************************************************************/ class CTapiOpTransfer : public CTapiOpBase { public: CTapiOpTransfer(LONG Instance); virtual ~CTapiOpTransfer(void); virtual bool start(LineOpParam* pParam); // 操作启动(命令方式) virtual bool cancel(LONG InstanceCancel); // 取消当前操作 virtual void end(bool IsSucceed); // 操作完成 // 线路交互事件 virtual void onReply(CTapiLine* pEventLine, LONG RequestID, HRESULT Result); // 线路操作异步响应事件 virtual void onCallState(CTapiLine* pEventLine, HCALL CallId, DWORD CallState, DWORD CallStateDetail); // 呼叫状态事件 // DevLink关联事件 virtual void onDevLinkEventS(CTapiLine* pEventLine, DevLinkInfoS* pInfoS); // DevLink中S事件 virtual void onDevLinkEventD(CTapiLine* pEventLine, int DevLinkCallId); // DevLink中D事件 virtual void onDevLinkEventA(CTapiLine* pEventLine, int DevLinkCallId); // DevLink中A事件 private: CString m_DestNum; // 转移的目标号码 HCALL m_TransferCall; // 请求转移的呼叫 HCALL m_HeldCall; // 转移过程中被保持的呼叫 int m_Step; // 转移操作执行的阶段(0 - 未启动、1 - 正在建立转移、2 - 正在呼叫、3 - 正在完成转移) bool m_HasSendOpProcess; // 是否已发送过呼叫进展事件 };