From b2c953fc76de2a9686ee81d5311bd9b06e453912 Mon Sep 17 00:00:00 2001 From: 648540858 <648540858@qq.com> Date: 星期一, 07 三月 2022 01:17:45 +0800 Subject: [PATCH] 优化ssrc释放逻辑,优化级联点播速度,去除等待流格式的配置项 --- src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/RegisterRequestProcessor.java | 28 ++++++++++++++++++++-------- 1 files changed, 20 insertions(+), 8 deletions(-) diff --git a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/RegisterRequestProcessor.java b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/RegisterRequestProcessor.java index e16043d..737f752 100644 --- a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/RegisterRequestProcessor.java +++ b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/RegisterRequestProcessor.java @@ -8,7 +8,9 @@ import com.genersoft.iot.vmp.gb28181.bean.WvpSipDate; import com.genersoft.iot.vmp.gb28181.event.EventPublisher; import com.genersoft.iot.vmp.gb28181.transmit.SIPProcessorObserver; -import com.genersoft.iot.vmp.gb28181.transmit.event.request.SIPRequestProcessorAbstract; +import com.genersoft.iot.vmp.gb28181.transmit.event.request.ISIPRequestProcessor; +import com.genersoft.iot.vmp.gb28181.transmit.event.request.SIPRequestProcessorParent; +import com.genersoft.iot.vmp.storager.IRedisCatchStorage; import com.genersoft.iot.vmp.storager.IVideoManagerStorager; import gov.nist.javax.sip.RequestEventExt; import gov.nist.javax.sip.address.AddressImpl; @@ -17,6 +19,7 @@ import gov.nist.javax.sip.header.SIPDateHeader; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.InitializingBean; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import org.springframework.util.StringUtils; @@ -33,13 +36,11 @@ import java.util.Calendar; import java.util.Locale; -/** - * @description:鏀跺埌娉ㄥ唽璇锋眰 澶勭悊 - * @author: swwheihei - * @date: 2020骞�5鏈�3鏃� 涓嬪崍4:47:25 +/** + * SIP鍛戒护绫诲瀷锛� REGISTER璇锋眰 */ @Component -public class RegisterRequestProcessor extends SIPRequestProcessorAbstract { +public class RegisterRequestProcessor extends SIPRequestProcessorParent implements InitializingBean, ISIPRequestProcessor { private Logger logger = LoggerFactory.getLogger(RegisterRequestProcessor.class); @@ -50,6 +51,9 @@ @Autowired private RegisterLogicHandler handler; + + @Autowired + private IRedisCatchStorage redisCatchStorage; @Autowired private IVideoManagerStorager storager; @@ -86,8 +90,13 @@ AddressImpl address = (AddressImpl) fromHeader.getAddress(); SipUri uri = (SipUri) address.getURI(); String deviceId = uri.getUser(); + Device deviceInRedis = redisCatchStorage.getDevice(deviceId); Device device = storager.queryVideoDevice(deviceId); - AuthorizationHeader authorhead = (AuthorizationHeader) request.getHeader(AuthorizationHeader.NAME); + if (deviceInRedis != null && device == null) { + // redis 瀛樺湪鑴忔暟鎹� + redisCatchStorage.clearCatchByDeviceId(deviceId); + } + AuthorizationHeader authorhead = (AuthorizationHeader) request.getHeader(AuthorizationHeader.NAME); // 鏍¢獙瀵嗙爜鏄惁姝g‘ if (authorhead != null) { passwordCorrect = new DigestServerAuthenticationHelper().doAuthenticatePlainTextPassword(request, @@ -149,6 +158,10 @@ device.setCharset("gb2312"); device.setDeviceId(deviceId); device.setFirsRegister(true); + }else { + if (device.getOnline() == 0) { + device.setFirsRegister(true); + } } device.setIp(received); device.setPort(rPort); @@ -178,7 +191,6 @@ if (serverTransaction.getDialog() != null) serverTransaction.getDialog().delete(); // 娉ㄥ唽鎴愬姛 // 淇濆瓨鍒皉edis - // 涓嬪彂catelog鏌ヨ鐩綍 if (registerFlag == 1 ) { logger.info("[{}] 娉ㄥ唽鎴愬姛! deviceId:" + device.getDeviceId(), requestAddress); publisher.onlineEventPublish(device, VideoManagerConstants.EVENT_ONLINE_REGISTER); -- Gitblit v1.8.0