MiddleWares_YiHe 郑州颐和医院随访系统中间件

AvayaLinkGw.h 3.0KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. /*************************************************************************
  2. 【文件名】 AvayaLinkGw.h
  3. 【功能模块和目的】 AVAYA链接网关类头文件
  4. 【开发者及日期】 郑石诺 2016/04/01
  5. 【版本】 V1.0.0
  6. 【版权信息】 Copyright (C)2016 河南华谊网络科技有限公司
  7. 【更改记录】
  8. *************************************************************************/
  9. #pragma once
  10. /*************************************************************************
  11. 【类名】 CAvayaLinkGw
  12. 【功能】 负责解析AVAYA链路消息
  13. 【接口说明】 AVAYA链接网关类
  14. 【开发者及日期】 郑石诺 2016/04/01
  15. 【版本】 V1.0.0
  16. 【版权信息】 Copyright (C)2016 河南华谊网络科技有限公司
  17. 【更改记录】
  18. *************************************************************************/
  19. class CAvayaLinkGw
  20. {
  21. public:
  22. CAvayaLinkGw(void);
  23. ~CAvayaLinkGw(void);
  24. // 消息解析
  25. void parse(char* Info);
  26. // 根据DevLink事件内容分发Tapi事件
  27. void dispatchTapiEvent(void);
  28. private:
  29. void __init(void); // 成员变量初始化
  30. int __getFieldPosition(int Field, char* Info); // 取得指定消息域的位置
  31. int __getIntFromField(int Pos, char* Info); // 取得指定位置的整数
  32. void __getStrFromField(int Pos, char* Result, char* Info); // 取得指定位置的字符串
  33. void __parseEventType(char* Info); // 解析事件类型
  34. void __parseEventA(char* Info); // 解析A事件
  35. void __parseEventD(char* Info); // 解析D事件
  36. void __parseEventS(char* Info); // 解析S事件
  37. // 线路ID相关
  38. bool __isTrunk(const CString& Name); // 判定设备名称是否为外线
  39. void __getTrunkId(CHAR* TrunkId, const CString& Name, LPCTSTR Slot); // 根据名称和Slot号获取中继编号
  40. DEV_RES_TYPE __getDevInfoA(CHAR* DevId); // 读取A端设备信息
  41. DEV_RES_TYPE __getDevInfoB(CHAR* DevId); // 读取B端设备信息
  42. // S事件逻辑处理相关
  43. void __procEventS(void);
  44. void __procEventS_LocalDial(void); // S事件A端 Local Dial 状态处理
  45. void __procEventS_Dialling(void); // S事件A端 Dialling 状态处理
  46. void __procEventS_Dialled(void); // S事件A端 Dialled 状态处理
  47. void __procEventS_Ringing(void); // S事件A端 Ringing 状态处理
  48. void __procEventS_Idle(void); // S事件A端 Idle 状态处理
  49. void __procEventS_Connected(void); // S事件A端 Connected 状态处理
  50. void __procEventS_DisConnected(void); // S事件A端 DisConnected 状态处理
  51. private:
  52. DEV_LINK_EVENT_TYPE m_EventType; // 事件类型
  53. DEV_LINK_CALL_STATE m_AState; // AState
  54. DEV_LINK_CALL_STATE m_BState; // BState
  55. int m_CallId; // CallID
  56. int m_AConnected; // AConnected
  57. int m_BConnected; // BConnected
  58. char m_ASlot[MAX_FIELD_LEN]; // ASlot
  59. char m_BSlot[MAX_FIELD_LEN]; // BSlot
  60. int m_IsInternalCall; // IsInternalCall
  61. char m_AName[MAX_FIELD_LEN]; // AName
  62. char m_BName[MAX_FIELD_LEN]; // BName
  63. char m_BList[MAX_FIELD_LEN]; // BList
  64. char m_TargetUserName[MAX_FIELD_LEN]; // TargetUserName
  65. char m_ParkSlotNum[MAX_FIELD_LEN]; // ParkSlotNum
  66. char m_Tag[MAX_FIELD_LEN]; // Tag
  67. char m_AccountCode[MAX_FIELD_LEN]; // AccountCode
  68. char m_CallerNum[MAX_FIELD_LEN]; // Caller party number
  69. char m_CalleeNum[MAX_FIELD_LEN]; // Called party number
  70. };