| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455 |
- /*************************************************************************
- 【文件名】 IvrFlowHolder.h
- 【功能模块和目的】 IVR Flow控制类头文件
- 【开发者及日期】 郑石诺 2015/01/07
- 【版本】 V1.0.0
- 【版权信息】 Copyright (C)2015 河南华谊网络科技有限公司
- 【更改记录】
- *************************************************************************/
- #pragma once
- class CIvrFlow;
- class CPduEntity;
- /*************************************************************************
- 【类名】 CIvrFlowHolder
- 【功能】 处理Pdu命令,处理底层设备事件
- 【接口说明】 IvrFlow主控制类
- 【开发者及日期】 郑石诺 2015/01/07
- 【版本】 V1.0.0
- 【版权信息】 Copyright (C)2015 河南华谊网络科技有限公司
- 【更改记录】
- *************************************************************************/
- class CIvrFlowHolder
- {
- SINGLETON_DECLARE(CIvrFlowHolder)
- public:
- ~CIvrFlowHolder(void);
- void createIvrFlow(int IvrFlowNum); // 创建IvrFlow
- void destroyIvrFlow(void); // 销毁IvrFlow
- // Ivr查找
- CIvrFlow* getFlowByIvrId(int IvrId); // 通过IVR编号获取ivrFlow
- CIvrFlow* getFlowByLineId(int LineId); // 通过线路号获取ivrFlow
- void onPduMessage(CPduEntity &PduEntity); // Pdu命令处理函数
- void onDevMessage(EventDevOperation &DevOpInfo); // 设备事件处理函数
- void onIvrDisconnect(void); // Ivr连接断开处理
- private:
- CIvrFlowHolder(void);
- // PDU命令处理
- void __procCallInReturn(CPduEntity &PduEntity); // 处理CallIn返回
- void __procTurnIvrReturn(CPduEntity &PduEntity); // 处理转Ivr返回
- void __transmitToIvrFlow(CPduEntity &PduEntity); // 将命令分发给相应的IVR
- // 2019-09-11 颐和随访调整播放工号播放顺序
- // 处理底层设备操作信息
- void __procDevOpCallIn(EventDevOperation &DevOpInfo); // 处理底层设备外线呼入
- void __procDevPlayDtmf(EventDevOperation &DevOpInfo); // 处理被叫端的设备声音播放
- private:
- CMap<UINT, UINT, CIvrFlow*, CIvrFlow*> m_IvrFlowMap; // IVR流程存储哈希表 <流程ID, 流程对象>
- };
|