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

StatisticsMgr.cpp 1.6KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. #include "StdAfx.h"
  2. #include "StatisticsMgr.h"
  3. #include "CallDetail.h"
  4. SINGLETON_IMPLEMENT(CStatisticsMgr)
  5. CStatisticsMgr::CStatisticsMgr(void)
  6. {
  7. m_CallDetailMap.InitHashTable(MAX_LENGTH_HASH);
  8. }
  9. CStatisticsMgr::~CStatisticsMgr(void)
  10. {
  11. }
  12. /*****************************************************************
  13. **【函数名称】 onCallDetail
  14. **【函数功能】 呼叫明细处理
  15. **【参数】 CallId: CallID
  16. Event: 统计事件
  17. HostLine: 主控线路
  18. Param: 统计信息
  19. **【返回值】
  20. *****************************************************************/
  21. void CStatisticsMgr::onCallDetail( ULONG CallId, REP_EVENT Event, UINT HostLine, PARAM Param )
  22. {
  23. CCallDetail* pCallDetail = NULL;
  24. // 查找活动会话
  25. BOOL IsActive = m_CallDetailMap.Lookup(CallId, pCallDetail);
  26. if (!IsActive)
  27. {
  28. pCallDetail = new CCallDetail(CallId);
  29. m_CallDetailMap.SetAt(CallId, pCallDetail);
  30. }
  31. // 呼叫结束事件,销毁ActiveCall
  32. if (Event == REP_EVENT_END_CALL)
  33. {
  34. // 通知ActiveCall结束
  35. pCallDetail->end();
  36. // 清理map
  37. m_CallDetailMap.RemoveKey(CallId);
  38. delete pCallDetail;
  39. pCallDetail = NULL;
  40. }
  41. else
  42. {
  43. // 常规事件和状态,处理分发
  44. pCallDetail->onCallDetail(CallId, Event, HostLine, Param);
  45. }
  46. }
  47. /*****************************************************************
  48. **【函数名称】 getFinalExt
  49. **【函数功能】 根据CallID获得最后应答分机
  50. **【参数】 CallId:CallID
  51. **【返回值】 分机号
  52. *****************************************************************/
  53. UINT CStatisticsMgr::getFinalExt( ULONG CallId )
  54. {
  55. CCallDetail* pCallDetail = NULL;
  56. // 查找活动会话
  57. m_CallDetailMap.Lookup(CallId, pCallDetail);
  58. if (pCallDetail != NULL)
  59. {
  60. return pCallDetail->getLastExten();
  61. }
  62. return 0;
  63. }