| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081 |
- /*************************************************************************
- 【文件名】 AvayaLinkGw.h
- 【功能模块和目的】 AVAYA链接网关类头文件
- 【开发者及日期】 郑石诺 2016/04/01
- 【版本】 V1.0.0
- 【版权信息】 Copyright (C)2016 河南华谊网络科技有限公司
- 【更改记录】
- *************************************************************************/
- #pragma once
- /*************************************************************************
- 【类名】 CAvayaLinkGw
- 【功能】 负责解析AVAYA链路消息
- 【接口说明】 AVAYA链接网关类
- 【开发者及日期】 郑石诺 2016/04/01
- 【版本】 V1.0.0
- 【版权信息】 Copyright (C)2016 河南华谊网络科技有限公司
- 【更改记录】
- *************************************************************************/
- class CAvayaLinkGw
- {
- public:
- CAvayaLinkGw(void);
- ~CAvayaLinkGw(void);
- // 消息解析
- void parse(char* Info);
- // 根据DevLink事件内容分发Tapi事件
- void dispatchTapiEvent(void);
- private:
- void __init(void); // 成员变量初始化
- int __getFieldPosition(int Field, char* Info); // 取得指定消息域的位置
- int __getIntFromField(int Pos, char* Info); // 取得指定位置的整数
- void __getStrFromField(int Pos, char* Result, char* Info); // 取得指定位置的字符串
- void __parseEventType(char* Info); // 解析事件类型
- void __parseEventA(char* Info); // 解析A事件
- void __parseEventD(char* Info); // 解析D事件
- void __parseEventS(char* Info); // 解析S事件
- // 线路ID相关
- bool __isTrunk(const CString& Name); // 判定设备名称是否为外线
- void __getTrunkId(CHAR* TrunkId, const CString& Name, LPCTSTR Slot); // 根据名称和Slot号获取中继编号
- DEV_RES_TYPE __getDevInfoA(CHAR* DevId); // 读取A端设备信息
- DEV_RES_TYPE __getDevInfoB(CHAR* DevId); // 读取B端设备信息
- // S事件逻辑处理相关
- void __procEventS(void);
- void __procEventS_LocalDial(void); // S事件A端 Local Dial 状态处理
- void __procEventS_Dialling(void); // S事件A端 Dialling 状态处理
- void __procEventS_Dialled(void); // S事件A端 Dialled 状态处理
- void __procEventS_Ringing(void); // S事件A端 Ringing 状态处理
- void __procEventS_Idle(void); // S事件A端 Idle 状态处理
- void __procEventS_Connected(void); // S事件A端 Connected 状态处理
- void __procEventS_DisConnected(void); // S事件A端 DisConnected 状态处理
- private:
- DEV_LINK_EVENT_TYPE m_EventType; // 事件类型
- DEV_LINK_CALL_STATE m_AState; // AState
- DEV_LINK_CALL_STATE m_BState; // BState
- int m_CallId; // CallID
- int m_AConnected; // AConnected
- int m_BConnected; // BConnected
- char m_ASlot[MAX_FIELD_LEN]; // ASlot
- char m_BSlot[MAX_FIELD_LEN]; // BSlot
- int m_IsInternalCall; // IsInternalCall
- char m_AName[MAX_FIELD_LEN]; // AName
- char m_BName[MAX_FIELD_LEN]; // BName
- char m_BList[MAX_FIELD_LEN]; // BList
- char m_TargetUserName[MAX_FIELD_LEN]; // TargetUserName
- char m_ParkSlotNum[MAX_FIELD_LEN]; // ParkSlotNum
- char m_Tag[MAX_FIELD_LEN]; // Tag
- char m_AccountCode[MAX_FIELD_LEN]; // AccountCode
- char m_CallerNum[MAX_FIELD_LEN]; // Caller party number
- char m_CalleeNum[MAX_FIELD_LEN]; // Called party number
- };
|