From 335916f1f15eb9d0b34dea38cacee2300eac0606 Mon Sep 17 00:00:00 2001
From: 李防 <liguofang0703@126.com>
Date: 星期一, 07 三月 2022 14:20:27 +0800
Subject: [PATCH] InviteRequestProcessor类中,channelid从invite消息的header subject获取,不再从第一行request line获取。原因是和第三方平台对接时,发送的invite消息第一行为国标平台编码而不是设备通道编码,导致报错通道不存在,返回404。

---
 src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/message/MessageRequestProcessor.java |   11 ++++++++---
 1 files changed, 8 insertions(+), 3 deletions(-)

diff --git a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/message/MessageRequestProcessor.java b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/message/MessageRequestProcessor.java
index bd05344..ba95cf6 100644
--- a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/message/MessageRequestProcessor.java
+++ b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/message/MessageRequestProcessor.java
@@ -77,7 +77,14 @@
                     sipSubscribe.getErrorSubscribe(callIdHeader.getCallId()).response(eventResult);
                 };
             }else {
-                Element rootElement = getRootElement(evt);
+                Element rootElement = null;
+                try {
+                    rootElement = getRootElement(evt);
+                } catch (DocumentException e) {
+                    logger.warn("瑙f瀽XML娑堟伅鍐呭寮傚父", e);
+                    // 涓嶅瓨鍦ㄥ垯鍥炲404
+                    responseAck(evt, Response.BAD_REQUEST, e.getMessage());
+                }
                 String name = rootElement.getName();
                 IMessageHandler messageHandler = messageHandlerMap.get(name);
                 if (messageHandler != null) {
@@ -98,8 +105,6 @@
             logger.warn("鍙傛暟鏃犳晥", e);
         } catch (ParseException e) {
             logger.warn("SIP鍥炲鏃惰В鏋愬紓甯�", e);
-        } catch (DocumentException e) {
-            logger.warn("瑙f瀽XML娑堟伅鍐呭寮傚父", e);
         }
     }
 

--
Gitblit v1.8.0