Kaynağa Gözat

fixed--解决ssrc默认开启失败的问题,解决信令超时设备下线的bug

chenjialing 3 yıl önce
ebeveyn
işleme
39a5c8e2cf

+ 1 - 1
src/main/java/com/genersoft/iot/vmp/gb28181/bean/Device.java

@@ -131,7 +131,7 @@ public class Device {
 	/**
 	 * 是否开启ssrc校验,默认关闭,开启可以防止串流
 	 */
-	private boolean ssrcCheck;
+	private boolean ssrcCheck = true;
 
 	/**
 	 * 地理坐标系, 目前支持 WGS84,GCJ02 TODO CGCS2000

+ 8 - 2
src/main/java/com/genersoft/iot/vmp/gb28181/event/SipSubscribe.java

@@ -88,8 +88,8 @@ public class SipSubscribe {
                 this.type = "timeout";
                 this.msg = "消息超时未回复";
                 this.statusCode = -1024;
-                this.callId = timeoutEvent.getClientTransaction().getDialog().getCallId().getCallId();
                 this.dialog = timeoutEvent.getClientTransaction().getDialog();
+                this.callId = this.dialog != null?timeoutEvent.getClientTransaction().getDialog().getCallId().getCallId(): null;
             }else if (event instanceof TransactionTerminatedEvent) {
                 TransactionTerminatedEvent transactionTerminatedEvent = (TransactionTerminatedEvent)event;
                 this.type = "transactionTerminated";
@@ -109,8 +109,8 @@ public class SipSubscribe {
                 this.type = "deviceNotFoundEvent";
                 this.msg = "设备未找到";
                 this.statusCode = -1024;
-                this.callId = deviceNotFoundEvent.getDialog().getCallId().getCallId();
                 this.dialog = deviceNotFoundEvent.getDialog();
+                this.callId = this.dialog != null ?deviceNotFoundEvent.getDialog().getCallId().getCallId() : null;
             }
         }
     }
@@ -130,6 +130,9 @@ public class SipSubscribe {
     }
 
     public void removeErrorSubscribe(String key) {
+        if(key == null){
+            return;
+        }
         errorSubscribes.remove(key);
         errorTimeSubscribes.remove(key);
     }
@@ -139,6 +142,9 @@ public class SipSubscribe {
     }
 
     public void removeOkSubscribe(String key) {
+        if(key == null){
+            return;
+        }
         okSubscribes.remove(key);
         okTimeSubscribes.remove(key);
     }