From 22efd0f56c20e1aedb18fa7b9bcdc48007fcc954 Mon Sep 17 00:00:00 2001 From: 648540858 <648540858@qq.com> Date: 星期一, 20 十二月 2021 09:51:51 +0800 Subject: [PATCH] 添加心跳到期时验证zlm是否真的离线。 --- src/main/java/com/genersoft/iot/vmp/gb28181/transmit/SIPProcessorObserver.java | 25 ++++++++++++++----------- 1 files changed, 14 insertions(+), 11 deletions(-) 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 cac1a01..116236f 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 @@ -4,9 +4,11 @@ import com.genersoft.iot.vmp.gb28181.transmit.event.request.ISIPRequestProcessor; import com.genersoft.iot.vmp.gb28181.transmit.event.response.ISIPResponseProcessor; import com.genersoft.iot.vmp.gb28181.transmit.event.timeout.ITimeoutProcessor; +import gov.nist.javax.sip.message.SIPRequest; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.scheduling.annotation.Async; import org.springframework.stereotype.Component; import javax.sip.*; @@ -22,7 +24,7 @@ * @date: 2021骞�11鏈�5鏃� 涓嬪崍15锛�32 */ @Component -public class SIPProcessorObserver implements SipListener { +public class SIPProcessorObserver implements ISIPProcessorObserver { private final static Logger logger = LoggerFactory.getLogger(SIPProcessorObserver.class); @@ -32,6 +34,10 @@ @Autowired private SipSubscribe sipSubscribe; + +// @Autowired +// @Qualifier(value = "taskExecutor") +// private ThreadPoolTaskExecutor poolTaskExecutor; /** * 娣诲姞 request璁㈤槄 @@ -64,6 +70,7 @@ * @param requestEvent RequestEvent浜嬩欢 */ @Override + @Async public void processRequest(RequestEvent requestEvent) { String method = requestEvent.getRequest().getMethod(); ISIPRequestProcessor sipRequestProcessor = requestProcessorMap.get(method); @@ -72,6 +79,7 @@ return; } requestProcessorMap.get(method).process(requestEvent); + } /** @@ -79,18 +87,9 @@ * @param responseEvent responseEvent浜嬩欢 */ @Override + @Async public void processResponse(ResponseEvent responseEvent) { logger.debug(responseEvent.getResponse().toString()); -// CSeqHeader cseqHeader = (CSeqHeader) responseEvent.getResponse().getHeader(CSeqHeader.NAME); -// String method = cseqHeader.getMethod(); -// ISIPResponseProcessor sipRequestProcessor = responseProcessorMap.get(method); -// if (sipRequestProcessor == null) { -// logger.warn("涓嶆敮鎸佹柟娉晎}鐨剅esponse", method); -// return; -// } -// sipRequestProcessor.process(responseEvent); - - Response response = responseEvent.getResponse(); logger.debug(responseEvent.getResponse().toString()); int status = response.getStatusCode(); @@ -126,8 +125,12 @@ } } } + if (responseEvent.getDialog() != null) { + responseEvent.getDialog().delete(); + } } + } /** -- Gitblit v1.8.0