From 56859d09df8d4226882d43934acf32d60a3b51d7 Mon Sep 17 00:00:00 2001 From: panlinlin <648540858@qq.com> Date: 星期二, 30 三月 2021 18:46:34 +0800 Subject: [PATCH] 添加推流列表和拉流代理,下一步与国标关联 --- src/main/java/com/genersoft/iot/vmp/gb28181/transmit/SIPProcessorFactory.java | 75 +++++++++++++++++++++++++++++++------ 1 files changed, 63 insertions(+), 12 deletions(-) diff --git a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/SIPProcessorFactory.java b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/SIPProcessorFactory.java index f063b49..de9d837 100644 --- a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/SIPProcessorFactory.java +++ b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/SIPProcessorFactory.java @@ -7,12 +7,14 @@ import javax.sip.message.Request; import javax.sip.message.Response; -import com.alibaba.fastjson.JSON; +import com.genersoft.iot.vmp.gb28181.transmit.cmd.impl.SIPCommanderFroPlatform; +import com.genersoft.iot.vmp.media.zlm.ZLMRTPServerFactory; +import com.genersoft.iot.vmp.storager.IRedisCatchStorage; import com.genersoft.iot.vmp.gb28181.transmit.response.impl.*; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; +import com.genersoft.iot.vmp.vmanager.service.IPlayService; +// import org.slf4j.Logger; +// import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.context.annotation.Lazy; import org.springframework.stereotype.Component; @@ -28,23 +30,28 @@ import com.genersoft.iot.vmp.gb28181.transmit.request.impl.CancelRequestProcessor; import com.genersoft.iot.vmp.gb28181.transmit.request.impl.InviteRequestProcessor; import com.genersoft.iot.vmp.gb28181.transmit.request.impl.MessageRequestProcessor; +import com.genersoft.iot.vmp.gb28181.transmit.request.impl.NotifyRequestProcessor; import com.genersoft.iot.vmp.gb28181.transmit.request.impl.OtherRequestProcessor; import com.genersoft.iot.vmp.gb28181.transmit.request.impl.RegisterRequestProcessor; import com.genersoft.iot.vmp.gb28181.transmit.request.impl.SubscribeRequestProcessor; import com.genersoft.iot.vmp.gb28181.transmit.response.ISIPResponseProcessor; +import com.genersoft.iot.vmp.gb28181.transmit.response.impl.ByeResponseProcessor; +import com.genersoft.iot.vmp.gb28181.transmit.response.impl.CancelResponseProcessor; +import com.genersoft.iot.vmp.gb28181.transmit.response.impl.InviteResponseProcessor; +import com.genersoft.iot.vmp.gb28181.transmit.response.impl.OtherResponseProcessor; import com.genersoft.iot.vmp.storager.IVideoManagerStorager; import com.genersoft.iot.vmp.utils.SpringBeanFactory; import com.genersoft.iot.vmp.utils.redis.RedisUtil; /** - * @Description:TODO(杩欓噷鐢ㄤ竴鍙ヨ瘽鎻忚堪杩欎釜绫荤殑浣滅敤) + * @Description: SIP淇′护澶勭悊鍒嗛厤 * @author: swwheihei * @date: 2020骞�5鏈�3鏃� 涓嬪崍4:24:37 */ @Component public class SIPProcessorFactory { - private final static Logger logger = LoggerFactory.getLogger(SIPProcessorFactory.class); + // private final static Logger logger = LoggerFactory.getLogger(SIPProcessorFactory.class); @Autowired private SipConfig sipConfig; @@ -54,13 +61,19 @@ @Autowired private IVideoManagerStorager storager; - + + @Autowired + private IRedisCatchStorage redisCatchStorage; + @Autowired private EventPublisher publisher; @Autowired private SIPCommander cmder; - + + @Autowired + private SIPCommanderFroPlatform cmderFroPlatform; + @Autowired private RedisUtil redis; @@ -82,10 +95,18 @@ @Autowired @Lazy private RegisterResponseProcessor registerResponseProcessor; - + + @Autowired private OtherResponseProcessor otherResponseProcessor; - + + @Autowired + private IPlayService playService; + + @Autowired + private ZLMRTPServerFactory zlmrtpServerFactory; + + // 娉細杩欓噷浣跨敤娉ㄨВ浼氬鑷村惊鐜緷璧栨敞鍏ワ紝鏆傜敤springBean private SipProvider tcpSipProvider; @@ -96,11 +117,19 @@ Request request = evt.getRequest(); String method = request.getMethod(); // logger.info("鎺ユ敹鍒版秷鎭細"+request.getMethod()); +// sipSubscribe.getSubscribe(evt.getServerTransaction().getBranchId()).response(evt); if (Request.INVITE.equals(method)) { InviteRequestProcessor processor = new InviteRequestProcessor(); processor.setRequestEvent(evt); processor.setTcpSipProvider(getTcpSipProvider()); processor.setUdpSipProvider(getUdpSipProvider()); + + processor.setCmder(cmder); + processor.setCmderFroPlatform(cmderFroPlatform); + processor.setPlayService(playService); + processor.setStorager(storager); + processor.setRedisCatchStorage(redisCatchStorage); + processor.setZlmrtpServerFactory(zlmrtpServerFactory); return processor; } else if (Request.REGISTER.equals(method)) { RegisterRequestProcessor processor = new RegisterRequestProcessor(); @@ -119,17 +148,21 @@ } else if (Request.ACK.equals(method)) { AckRequestProcessor processor = new AckRequestProcessor(); processor.setRequestEvent(evt); + processor.setRedisCatchStorage(redisCatchStorage); + processor.setZlmrtpServerFactory(zlmrtpServerFactory); return processor; } else if (Request.BYE.equals(method)) { ByeRequestProcessor processor = new ByeRequestProcessor(); processor.setRequestEvent(evt); + processor.setRedisCatchStorage(redisCatchStorage); + processor.setZlmrtpServerFactory(zlmrtpServerFactory); + processor.setSIPCommander(cmder); return processor; } else if (Request.CANCEL.equals(method)) { CancelRequestProcessor processor = new CancelRequestProcessor(); processor.setRequestEvent(evt); return processor; } else if (Request.MESSAGE.equals(method)) { - MessageRequestProcessor processor = new MessageRequestProcessor(); processor.setRequestEvent(evt); processor.setTcpSipProvider(getTcpSipProvider()); @@ -139,14 +172,32 @@ processor.setDeferredResultHolder(deferredResultHolder); processor.setOffLineDetector(offLineDetector); processor.setCmder(cmder); + processor.setCmderFroPlatform(cmderFroPlatform); processor.setStorager(storager); + processor.setRedisCatchStorage(redisCatchStorage); + return processor; + } else if (Request.NOTIFY.equalsIgnoreCase(method)) { + NotifyRequestProcessor processor = new NotifyRequestProcessor(); + processor.setRequestEvent(evt); + processor.setTcpSipProvider(getTcpSipProvider()); + processor.setUdpSipProvider(getUdpSipProvider()); + processor.setPublisher(publisher); + processor.setRedis(redis); + processor.setDeferredResultHolder(deferredResultHolder); + processor.setOffLineDetector(offLineDetector); + processor.setCmder(cmder); + processor.setStorager(storager); + processor.setRedisCatchStorage(redisCatchStorage); return processor; } else { - return new OtherRequestProcessor(); + OtherRequestProcessor processor = new OtherRequestProcessor(); + processor.setRequestEvent(evt); + return processor; } } public ISIPResponseProcessor createResponseProcessor(ResponseEvent evt) { + Response response = evt.getResponse(); CSeqHeader cseqHeader = (CSeqHeader) response.getHeader(CSeqHeader.NAME); String method = cseqHeader.getMethod(); -- Gitblit v1.8.0