From c223d4e4ec4e908d12776f22f48b99ff4525aed1 Mon Sep 17 00:00:00 2001 From: Lawrence <1934378145@qq.com> Date: 星期三, 27 一月 2021 15:31:31 +0800 Subject: [PATCH] 增加数据格式检验,避免设备返回错误格式造成抛错误 --- src/main/java/com/genersoft/iot/vmp/gb28181/SipLayer.java | 17 ++++++++++++++--- 1 files changed, 14 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/genersoft/iot/vmp/gb28181/SipLayer.java b/src/main/java/com/genersoft/iot/vmp/gb28181/SipLayer.java index 92ba204..25a35a4 100644 --- a/src/main/java/com/genersoft/iot/vmp/gb28181/SipLayer.java +++ b/src/main/java/com/genersoft/iot/vmp/gb28181/SipLayer.java @@ -121,7 +121,9 @@ logger.debug(evt.getRequest().toString()); // 鐢变簬jainsip鏄崟绾跨▼绋嬪簭锛屼负鎻愰珮鎬ц兘骞跺彂澶勭悊 processThreadPool.execute(() -> { - processorFactory.createRequestProcessor(evt).process(); + if (processorFactory != null) { + processorFactory.createRequestProcessor(evt).process(); + } }); } @@ -138,16 +140,25 @@ // TODO Auto-generated catch block e.printStackTrace(); } + if (evt.getResponse() != null && sipSubscribe.getOkSubscribesSize() > 0 ) { + CallIdHeader callIdHeader = (CallIdHeader)evt.getResponse().getHeader(CallIdHeader.NAME); + if (callIdHeader != null) { + SipSubscribe.Event subscribe = sipSubscribe.getOkSubscribe(callIdHeader.getCallId()); + if (subscribe != null) { + subscribe.response(evt); + } + } + } // } else if (status == Response.TRYING) { // trying涓嶄細鍥炲 } else if ((status >= 100) && (status < 200)) { // 澧炲姞鍏跺畠鏃犻渶鍥炲鐨勫搷搴旓紝濡�101銆�180绛� } else { logger.warn("鎺ユ敹鍒板け璐ョ殑response鍝嶅簲锛乻tatus锛�" + status + ",message:" + response.getReasonPhrase()/* .getContent().toString()*/); - if (evt.getResponse() != null && sipSubscribe.getSize() > 0 ) { + if (evt.getResponse() != null && sipSubscribe.getErrorSubscribesSize() > 0 ) { CallIdHeader callIdHeader = (CallIdHeader)evt.getResponse().getHeader(CallIdHeader.NAME); if (callIdHeader != null) { - SipSubscribe.Event subscribe = sipSubscribe.getSubscribe(callIdHeader.getCallId()); + SipSubscribe.Event subscribe = sipSubscribe.getErrorSubscribe(callIdHeader.getCallId()); if (subscribe != null) { subscribe.response(evt); } -- Gitblit v1.8.0