From d9cfe061b9b501511f5d769f751c8ff6bbcb1bf9 Mon Sep 17 00:00:00 2001 From: 648540858 <648540858@qq.com> Date: 星期四, 17 八月 2023 15:20:25 +0800 Subject: [PATCH] 优化对讲释放流程 --- src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/SIPRequestProcessorParent.java | 31 ++++++++++++++++++++++++++++--- 1 files changed, 28 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/SIPRequestProcessorParent.java b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/SIPRequestProcessorParent.java index 0a7eb2c..bc43a3a 100644 --- a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/SIPRequestProcessorParent.java +++ b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/SIPRequestProcessorParent.java @@ -81,6 +81,7 @@ return responseAck(sipRequest, statusCode, msg, null); } + public SIPResponse responseAck(SIPRequest sipRequest, int statusCode, String msg, ResponseAckExtraParam responseAckExtraParam) throws SipException, InvalidArgumentException, ParseException { if (sipRequest.getToHeader().getTag() == null) { sipRequest.getToHeader().setTag(SipUtils.getNewTag()); @@ -123,6 +124,8 @@ return response; } + + /** * 鍥炲甯dp鐨�200 */ @@ -140,7 +143,10 @@ responseAckExtraParam.content = sdp; responseAckExtraParam.sipURI = sipURI; - return responseAck(request, Response.OK, null, responseAckExtraParam); + SIPResponse sipResponse = responseAck(request, Response.OK, null, responseAckExtraParam); + + + return sipResponse; } /** @@ -173,7 +179,8 @@ reader.setEncoding(charset); // 瀵规捣搴峰嚭鐜扮殑鏈浆涔夊瓧绗﹀仛澶勭悊銆� String[] destStrArray = new String[]{"<",">","&","'","""}; - char despChar = '&'; // 鎴栬鍙墿灞曞吋瀹瑰叾浠栧瓧绗� + // 鎴栬鍙墿灞曞吋瀹瑰叾浠栧瓧绗� + char despChar = '&'; byte destBye = (byte) despChar; List<Byte> result = new ArrayList<>(); byte[] rawContent = request.getRawContent(); @@ -199,8 +206,26 @@ Byte[] bytes = new Byte[0]; byte[] bytesResult = ArrayUtils.toPrimitive(result.toArray(bytes)); - Document xml = reader.read(new ByteArrayInputStream(bytesResult)); + Document xml; + try { + xml = reader.read(new ByteArrayInputStream(bytesResult)); + }catch (DocumentException e) { + logger.warn("[xml瑙f瀽寮傚父]锛� 鎰挎枃濡備笅锛� \r\n{}", new String(bytesResult)); + logger.warn("[xml瑙f瀽寮傚父]锛� 鎰挎枃濡備笅锛� 灏濊瘯鍏煎鎬у鐞�"); + String[] xmlLineArray = new String(bytesResult).split("\\r?\\n"); + + // 鍏煎娴峰悍鐨刟ddress瀛楁甯︽湁<鐮存崲xml缁撴瀯瀵艰嚧鏃犳硶瑙f瀽xml鐨勯棶棰� + StringBuilder stringBuilder = new StringBuilder(); + for (String s : xmlLineArray) { + if (s.startsWith("<Address")) { + continue; + } + stringBuilder.append(s); + } + xml = reader.read(new ByteArrayInputStream(stringBuilder.toString().getBytes())); + } return xml.getRootElement(); } + } -- Gitblit v1.8.0