修复sip消息订阅事件移除失败的BUG

master
648540858 2025-02-12 22:55:51 +08:00
parent b7d0eb793d
commit c5eca3ca0e
3 changed files with 7 additions and 5 deletions

View File

@ -34,5 +34,5 @@ public class SipConfig {
private boolean alarm = false; private boolean alarm = false;
private long timeout = 15; private long timeout = 150;
} }

View File

@ -94,7 +94,7 @@ public class SIPProcessorObserver implements ISIPProcessorObserver {
SipSubscribe.EventResult<ResponseEvent> eventResult = new SipSubscribe.EventResult<>(responseEvent); SipSubscribe.EventResult<ResponseEvent> eventResult = new SipSubscribe.EventResult<>(responseEvent);
sipEvent.getOkEvent().response(eventResult); 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<ResponseEvent> eventResult = new SipSubscribe.EventResult<>(responseEvent); SipSubscribe.EventResult<ResponseEvent> eventResult = new SipSubscribe.EventResult<>(responseEvent);
sipEvent.getErrorEvent().response(eventResult); sipEvent.getErrorEvent().response(eventResult);
} }
sipSubscribe.removeSubscribe(callIdHeader.getCallId()); sipSubscribe.removeSubscribe(callIdHeader.getCallId() + cSeqHeader.getSeqNumber());
} }
} }
} }

View File

@ -75,12 +75,14 @@ public class SIPSender {
CSeqHeader cSeqHeader = (CSeqHeader) message.getHeader(CSeqHeader.NAME); CSeqHeader cSeqHeader = (CSeqHeader) message.getHeader(CSeqHeader.NAME);
String key = callIdHeader.getCallId() + cSeqHeader.getSeqNumber(); String key = callIdHeader.getCallId() + cSeqHeader.getSeqNumber();
SipEvent sipEvent = SipEvent.getInstance(key, eventResult -> { SipEvent sipEvent = SipEvent.getInstance(key, eventResult -> {
sipSubscribe.removeSubscribe(callIdHeader.getCallId()); log.info("success");
sipSubscribe.removeSubscribe(key);
if(okEvent != null) { if(okEvent != null) {
okEvent.response(eventResult); okEvent.response(eventResult);
} }
}, (eventResult -> { }, (eventResult -> {
sipSubscribe.removeSubscribe(callIdHeader.getCallId()); log.info("eror");
sipSubscribe.removeSubscribe(key);
if (errorEvent != null) { if (errorEvent != null) {
errorEvent.response(eventResult); errorEvent.response(eventResult);
} }