修复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 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);
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);
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);
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);
}