中间件标准版5.1git,去除基础模块

LineAudio.cpp 2.8KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102
  1. #include "StdAfx.h"
  2. #include "LineAudio.h"
  3. #include "Config.h"
  4. #include "LineOpImplement.h"
  5. CLineAudio::CLineAudio(int LineId) : CLine(LineId), m_pDevFax(NULL)
  6. {
  7. m_IPOLineID = CConfig::getAssoIpoLineIdOfAudioLine(LineId);
  8. ILogger::getInstance().log(LOG_CLASS_BUSI, LOG_LEVEL_NORMAL, _T("{Line}: 初始化放音线路, LineId = %d, IPOLineId = %d"), m_LineID, m_IPOLineID);
  9. }
  10. CLineAudio::~CLineAudio(void)
  11. {
  12. }
  13. /*****************************************************************
  14. **【函数名称】 procDevMsg
  15. **【函数功能】 底层事件响应处理
  16. **【参数】 pMsgInfo: 事件信息结构体
  17. **【返回值】
  18. ****************************************************************/
  19. void CLineAudio::procDevMsg( PSSM_EVENT pEvent )
  20. {
  21. switch(pEvent->wEventCode)
  22. {
  23. case E_PROC_RecordEnd: //录音完成或者留言完成事件
  24. CLineOpImplement::GetInstance().onMsgReturnRecord(this);
  25. break;
  26. case E_CHG_ChState: //状态事件
  27. CLineOpImplement::GetInstance().onMsgPlayState(this, SsmGetChState(pEvent->nReference));
  28. break;
  29. case E_PROC_PlayEnd: //放音结束
  30. CLineOpImplement::GetInstance().onMsgReturnPlay(this);
  31. break;
  32. case E_PROC_WaitDTMF: //DTMF结束
  33. CLineOpImplement::GetInstance().onMsgReturnDTMF(this); //收到收不到都要返回
  34. break;
  35. case E_CHG_FaxPages:
  36. case E_PROC_FaxEnd:
  37. CLineOpImplement::GetInstance().onMsgReturnFax(this, pEvent->dwParam);
  38. break;
  39. case E_CHG_BusyTone: //忙音
  40. break;
  41. }
  42. }
  43. /*****************************************************************
  44. **【函数名称】 procCmd
  45. **【函数功能】 线路命令处理
  46. **【参数】 pPduEntity: 线路命令指针
  47. **【返回值】
  48. ****************************************************************/
  49. void CLineAudio::procCmd( CPduEntity* pPduEntity )
  50. {
  51. switch(pPduEntity->GetCmdType())
  52. {
  53. case PDU_CMD_IVR_PLAY_DTMF: //处理放音命令
  54. CLineOpImplement::GetInstance().onCmdLinePlay(this, pPduEntity);
  55. break;
  56. case PDU_CMD_CTI_VS_LINECONTROL: //处理线路控制命令
  57. CLineOpImplement::GetInstance().onCmdLinePlayControl(this, pPduEntity);
  58. break;
  59. case PDU_CMD_IVR_FAX: //传真
  60. CLineOpImplement::GetInstance().onCmdFax(this, pPduEntity);
  61. break;
  62. case PDU_CMD_IVR_LEAVE_WORD: //留言
  63. CLineOpImplement::GetInstance().onCmdLeaveWord(this, pPduEntity);
  64. break;
  65. }
  66. }
  67. /*****************************************************************
  68. **【函数名称】 getState
  69. **【函数功能】 获取状态字符串
  70. **【参数】
  71. **【返回值】
  72. ****************************************************************/
  73. LPCTSTR CLineAudio::getState( void ) const
  74. {
  75. switch(m_State)
  76. {
  77. case S_CALL_STANDBY: return _T("空闲");
  78. case S_CALL_PICKUPED: return _T("摘机");
  79. case S_CALL_RINGING: return _T("振铃");
  80. case S_CALL_TALKING: return _T("通话");
  81. case S_CALL_OFFLINE: return _T("断开");
  82. case S_CALL_ANALOG_WAITDIALTONE: return _T("等待拨号");
  83. case S_CALL_ANALOG_TXPHONUM: return _T("拨号");
  84. default: return _T("未知状态");
  85. }
  86. }