From 2f165d595af3565bd17612ee0f5866ace8ab43f4 Mon Sep 17 00:00:00 2001 From: panlinlin <648540858@qq.com> Date: 星期二, 02 三月 2021 18:23:06 +0800 Subject: [PATCH] 对级联点播信令进行处理 --- src/main/java/com/genersoft/iot/vmp/gb28181/transmit/SIPProcessorFactory.java | 59 +++++++++++++++++++++++++++++++++++++++++++++++++++++++---- 1 files changed, 55 insertions(+), 4 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 13866e8..829bc7f 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 @@ -4,14 +4,26 @@ import javax.sip.ResponseEvent; import javax.sip.SipProvider; import javax.sip.header.CSeqHeader; +import javax.sip.header.CallIdHeader; +import javax.sip.header.Header; import javax.sip.message.Request; import javax.sip.message.Response; +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.alibaba.fastjson.JSON; +import com.genersoft.iot.vmp.gb28181.transmit.response.impl.*; +import com.genersoft.iot.vmp.gb28181.transmit.response.impl.*; +import com.genersoft.iot.vmp.gb28181.event.SipSubscribe; +import com.genersoft.iot.vmp.vmanager.service.IPlayService; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +// 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; import com.genersoft.iot.vmp.conf.SipConfig; @@ -26,6 +38,7 @@ 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; @@ -39,7 +52,7 @@ import com.genersoft.iot.vmp.utils.redis.RedisUtil; /** - * @Description:TODO(杩欓噷鐢ㄤ竴鍙ヨ瘽鎻忚堪杩欎釜绫荤殑浣滅敤) + * @Description: SIP淇′护澶勭悊鍒嗛厤 * @author: swwheihei * @date: 2020骞�5鏈�3鏃� 涓嬪崍4:24:37 */ @@ -59,13 +72,16 @@ @Autowired private IRedisCatchStorage redisCatchStorage; - + @Autowired private EventPublisher publisher; @Autowired private SIPCommander cmder; - + + @Autowired + private SIPCommanderFroPlatform cmderFroPlatform; + @Autowired private RedisUtil redis; @@ -83,9 +99,20 @@ @Autowired private CancelResponseProcessor cancelResponseProcessor; - + + @Autowired + @Lazy + private RegisterResponseProcessor registerResponseProcessor; + + @Autowired private OtherResponseProcessor otherResponseProcessor; + + @Autowired + private IPlayService playService; + + @Autowired + private ZLMRTPServerFactory zlmrtpServerFactory; // 娉細杩欓噷浣跨敤娉ㄨВ浼氬鑷村惊鐜緷璧栨敞鍏ワ紝鏆傜敤springBean @@ -104,6 +131,13 @@ 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(); @@ -141,6 +175,20 @@ 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; @@ -152,6 +200,7 @@ } public ISIPResponseProcessor createResponseProcessor(ResponseEvent evt) { + Response response = evt.getResponse(); CSeqHeader cseqHeader = (CSeqHeader) response.getHeader(CSeqHeader.NAME); String method = cseqHeader.getMethod(); @@ -161,6 +210,8 @@ return byeResponseProcessor; } else if (Request.CANCEL.equals(method)) { return cancelResponseProcessor; + }else if (Request.REGISTER.equals(method)) { + return registerResponseProcessor; } else { return otherResponseProcessor; } -- Gitblit v1.8.0