中航光电的中间件仓库

IpmChannel.h 2.0KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. /*************************************************************************
  2. 【文件名】 IpmChannel.h
  3. 【功能模块和目的】 IPM通道管理类头文件
  4. 【开发者及日期】 郑石诺 2015/04/13
  5. 【版本】 V1.0.0
  6. 【版权信息】 Copyright (C)2015 河南华谊网络科技有限公司
  7. 【更改记录】
  8. *************************************************************************/
  9. #pragma once
  10. #include "channelresource.h"
  11. #include "MC.h"
  12. class CVoipChannel;
  13. /*************************************************************************
  14. 【类名】 CIpmChannel
  15. 【功能】
  16. 【接口说明】 IPM通道管理类
  17. 【开发者及日期】 郑石诺 2015/04/13
  18. 【版本】 V1.0.0
  19. 【版权信息】 Copyright (C)2015 河南华谊网络科技有限公司
  20. 【更改记录】
  21. *************************************************************************/
  22. class CIpmChannel : public CChannelResource
  23. {
  24. public:
  25. CIpmChannel(DEV_RES_CH_TYPE ChannelNo, DEV_RES_NO_TYPE NodeNo, DEV_RES_NO_TYPE BoardNo);
  26. virtual ~CIpmChannel(void);
  27. ////////////////////////////////////////////////////////////////////////////////
  28. //继承自CChannelResource
  29. bool open(void);
  30. void close(void);
  31. bool isFree(void) const { return m_pVoipChanBind == NULL && !m_FaxFlag;}
  32. int type(void) const { return SC_XOIP; }
  33. LPCTSTR getStateStr(void) const;
  34. void onDevEvent(METAEVENT* pMetaEvent);
  35. // 操作接口
  36. bool isStarted(void) const { return m_StartFlag; }
  37. void reset(void);
  38. void bind(CVoipChannel* pVoipChannel);
  39. void startFax(void);
  40. void stopFax(void);
  41. bool startMedia(void);
  42. void stopMedia(void);
  43. bool switchVF(ISXSIP_IE_BODY_EX* pSdp);
  44. bool mediaAddrBoard(LPTSTR Buffer);
  45. void mediaAddrTrunk(LPTSTR Buffer);
  46. int mediaPort(void) { return DEV_MEDIA_PORT_BEGIN * (m_Id.NodeNo + 1) + MAX_XOIPCH_NUM * DEV_PER_CH_PORT_NUM * m_Id.BoardNo + DEV_PER_CH_PORT_NUM * m_Id.ChanNo; }
  47. private:
  48. friend class CVoipChannel;
  49. void __onAnswer(METAEVENT* pMetaEvent);
  50. void __onSetParam(METAEVENT* pMetaEvent);
  51. void __onFax(METAEVENT* pMetaEvent);
  52. private:
  53. CVoipChannel* m_pVoipChanBind;
  54. bool m_StartFlag;
  55. bool m_FaxFlag;
  56. XOIP_SRCADD m_SrcAddr;
  57. XOIP_CFG m_XoipCfg;
  58. };