Commit 9aee7d42e3f7f1c28bddf765b1078048d982ae30

Authored by 648540858
1 parent daab2586

兼容海康 媒体通知 消息from字段不是设备ID的问题

src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/message/MessageRequestProcessor.java
@@ -3,7 +3,9 @@ package com.genersoft.iot.vmp.gb28181.transmit.event.request.impl.message; @@ -3,7 +3,9 @@ package com.genersoft.iot.vmp.gb28181.transmit.event.request.impl.message;
3 import com.genersoft.iot.vmp.gb28181.bean.Device; 3 import com.genersoft.iot.vmp.gb28181.bean.Device;
4 import com.genersoft.iot.vmp.gb28181.bean.DeviceNotFoundEvent; 4 import com.genersoft.iot.vmp.gb28181.bean.DeviceNotFoundEvent;
5 import com.genersoft.iot.vmp.gb28181.bean.ParentPlatform; 5 import com.genersoft.iot.vmp.gb28181.bean.ParentPlatform;
  6 +import com.genersoft.iot.vmp.gb28181.bean.SsrcTransaction;
6 import com.genersoft.iot.vmp.gb28181.event.SipSubscribe; 7 import com.genersoft.iot.vmp.gb28181.event.SipSubscribe;
  8 +import com.genersoft.iot.vmp.gb28181.session.VideoStreamSessionManager;
7 import com.genersoft.iot.vmp.gb28181.transmit.SIPProcessorObserver; 9 import com.genersoft.iot.vmp.gb28181.transmit.SIPProcessorObserver;
8 import com.genersoft.iot.vmp.gb28181.transmit.event.request.ISIPRequestProcessor; 10 import com.genersoft.iot.vmp.gb28181.transmit.event.request.ISIPRequestProcessor;
9 import com.genersoft.iot.vmp.gb28181.transmit.event.request.SIPRequestProcessorParent; 11 import com.genersoft.iot.vmp.gb28181.transmit.event.request.SIPRequestProcessorParent;
@@ -49,6 +51,9 @@ public class MessageRequestProcessor extends SIPRequestProcessorParent implement @@ -49,6 +51,9 @@ public class MessageRequestProcessor extends SIPRequestProcessorParent implement
49 @Autowired 51 @Autowired
50 private IRedisCatchStorage redisCatchStorage; 52 private IRedisCatchStorage redisCatchStorage;
51 53
  54 + @Autowired
  55 + private VideoStreamSessionManager sessionManager;
  56 +
52 @Override 57 @Override
53 public void afterPropertiesSet() throws Exception { 58 public void afterPropertiesSet() throws Exception {
54 // 添加消息处理的订阅 59 // 添加消息处理的订阅
@@ -64,6 +69,11 @@ public class MessageRequestProcessor extends SIPRequestProcessorParent implement @@ -64,6 +69,11 @@ public class MessageRequestProcessor extends SIPRequestProcessorParent implement
64 logger.debug("接收到消息:" + evt.getRequest()); 69 logger.debug("接收到消息:" + evt.getRequest());
65 String deviceId = SipUtils.getUserIdFromFromHeader(evt.getRequest()); 70 String deviceId = SipUtils.getUserIdFromFromHeader(evt.getRequest());
66 CallIdHeader callIdHeader = (CallIdHeader)evt.getRequest().getHeader(CallIdHeader.NAME); 71 CallIdHeader callIdHeader = (CallIdHeader)evt.getRequest().getHeader(CallIdHeader.NAME);
  72 + // 先从会话内查找
  73 + SsrcTransaction ssrcTransaction = sessionManager.getSsrcTransaction(null, null, null, callIdHeader.getCallId());
  74 + if (ssrcTransaction != null) { // 兼容海康 媒体通知 消息from字段不是设备ID的问题
  75 + deviceId = ssrcTransaction.getDeviceId();
  76 + }
67 // 查询设备是否存在 77 // 查询设备是否存在
68 CSeqHeader cseqHeader = (CSeqHeader) evt.getRequest().getHeader(CSeqHeader.NAME); 78 CSeqHeader cseqHeader = (CSeqHeader) evt.getRequest().getHeader(CSeqHeader.NAME);
69 String method = cseqHeader.getMethod(); 79 String method = cseqHeader.getMethod();