diff --git a/src/main/java/com/genersoft/iot/vmp/conf/SipConfig.java b/src/main/java/com/genersoft/iot/vmp/conf/SipConfig.java index 68fc5ab2..67c926e6 100644 --- a/src/main/java/com/genersoft/iot/vmp/conf/SipConfig.java +++ b/src/main/java/com/genersoft/iot/vmp/conf/SipConfig.java @@ -34,5 +34,5 @@ public class SipConfig { private boolean alarm = false; - private long timeout = 15; + private long timeout = 150; } diff --git a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/SIPProcessorObserver.java b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/SIPProcessorObserver.java index dfb7a5d8..b7892dbd 100644 --- a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/SIPProcessorObserver.java +++ b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/SIPProcessorObserver.java @@ -94,7 +94,7 @@ public class SIPProcessorObserver implements ISIPProcessorObserver { SipSubscribe.EventResult eventResult = new SipSubscribe.EventResult<>(responseEvent); sipEvent.getOkEvent().response(eventResult); } - sipSubscribe.removeSubscribe(callIdHeader.getCallId()); + sipSubscribe.removeSubscribe(callIdHeader.getCallId() + cSeqHeader.getSeqNumber()); } } } @@ -118,7 +118,7 @@ public class SIPProcessorObserver implements ISIPProcessorObserver { SipSubscribe.EventResult eventResult = new SipSubscribe.EventResult<>(responseEvent); sipEvent.getErrorEvent().response(eventResult); } - sipSubscribe.removeSubscribe(callIdHeader.getCallId()); + sipSubscribe.removeSubscribe(callIdHeader.getCallId() + cSeqHeader.getSeqNumber()); } } } diff --git a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/SIPSender.java b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/SIPSender.java index f033f53e..39a29416 100644 --- a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/SIPSender.java +++ b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/SIPSender.java @@ -75,12 +75,14 @@ public class SIPSender { CSeqHeader cSeqHeader = (CSeqHeader) message.getHeader(CSeqHeader.NAME); String key = callIdHeader.getCallId() + cSeqHeader.getSeqNumber(); SipEvent sipEvent = SipEvent.getInstance(key, eventResult -> { - sipSubscribe.removeSubscribe(callIdHeader.getCallId()); + log.info("success"); + sipSubscribe.removeSubscribe(key); if(okEvent != null) { okEvent.response(eventResult); } }, (eventResult -> { - sipSubscribe.removeSubscribe(callIdHeader.getCallId()); + log.info("eror"); + sipSubscribe.removeSubscribe(key); if (errorEvent != null) { errorEvent.response(eventResult); }