648540858
2021-11-04 c33bf822cce59667be80ba0bb45499498501d161
src/main/java/com/genersoft/iot/vmp/gb28181/transmit/request/impl/MessageRequestProcessor.java
@@ -492,11 +492,8 @@
         String deviceId = SipUtils.getUserIdFromFromHeader(evt.getRequest());
         // 查询设备是否存在
         Device device = storager.queryVideoDevice(deviceId);
         if (device == null) {
            logger.warn("处理DeviceInfo设备信息Message时未找到设备信息");
            response404Ack(evt);
            return;
         }
         ParentPlatform parentPlatform = storager.queryParentPlatByServerGBId(deviceId);
         Element rootElement = getRootElement(evt);
         String requestName = rootElement.getName();
         Element deviceIdElement = rootElement.element("DeviceID");
@@ -508,20 +505,20 @@
         if (requestName.equals("Query")) {
            logger.info("接收到DeviceInfo查询消息");
            FromHeader fromHeader = (FromHeader) evt.getRequest().getHeader(FromHeader.NAME);
            String platformId = ((SipUri) fromHeader.getAddress().getURI()).getUser();
               if (platformId == null) {
            if (parentPlatform == null) {
               response404Ack(evt);
               return;
            } else {
               // 回复200 OK
               responseAck(evt);
               String sn = rootElement.element("SN").getText();
               ParentPlatform parentPlatform = storager.queryParentPlatByServerGBId(platformId);
               cmderFroPlatform.deviceInfoResponse(parentPlatform, sn, fromHeader.getTag());
            }
         } else {
            logger.debug("接收到DeviceInfo应答消息");
            if (device == null) {
               logger.warn("处理DeviceInfo设备信息Message时未找到设备信息");
               response404Ack(evt);
               return;
            }
@@ -561,11 +558,8 @@
         String deviceId = SipUtils.getUserIdFromFromHeader(evt.getRequest());
         // 查询设备是否存在
         Device device = storager.queryVideoDevice(deviceId);
         if (device == null) {
            logger.warn("处理DeviceInfo设备信息Message时未找到设备信息");
            response404Ack(evt);
            return;
         }
         ParentPlatform parentPlatform = storager.queryParentPlatByServerGBId(deviceId);
         Element rootElement = getRootElement(evt);
         String name = rootElement.getName();
@@ -574,13 +568,8 @@
         Element deviceListElement = rootElement.element("DeviceList");
         String key = DeferredResultHolder.CALLBACK_CMD_CATALOG + deviceId;
         FromHeader fromHeader = (FromHeader) evt.getRequest().getHeader(FromHeader.NAME);
         AddressImpl address = (AddressImpl) fromHeader.getAddress();
         SipUri uri = (SipUri) address.getURI();
         String platformId = uri.getUser();
         // if (deviceListElement == null) { // 存在DeviceList则为响应 catalog, 不存在DeviceList则为查询请求
         if (name.equalsIgnoreCase("Query")) { // 区分是Response——查询响应,还是Query——查询请求
            // TODO 后续将代码拆分
            ParentPlatform parentPlatform = storager.queryParentPlatByServerGBId(platformId);
            if (parentPlatform == null) {
               response404Ack(evt);
               return;
@@ -634,6 +623,11 @@
         } else {
            if (device == null) {
               logger.warn("收到catalog设备目录列表请求时未找到设备信息");
               response404Ack(evt);
               return;
            }
            deviceListElement = getRootElement(evt, device.getCharset()).element("DeviceList");
            Iterator<Element> deviceListIterator = deviceListElement.elementIterator();
            if (deviceListIterator != null) {