From b0080159d98cd441175ddaf90a77d30b8264003d Mon Sep 17 00:00:00 2001 From: panlinlin <648540858@qq.com> Date: 星期六, 19 十二月 2020 21:52:20 +0800 Subject: [PATCH] 去除ssrc作为流ID传递,ssrc只作为sdp消息使用。动态端口的情况下支持固定流地址,同时支持未点播时直接播放流地址,代码自动发起点播 --- src/main/java/com/genersoft/iot/vmp/gb28181/SipLayer.java | 34 ++++++++++++++++------------------ 1 files changed, 16 insertions(+), 18 deletions(-) diff --git a/src/main/java/com/genersoft/iot/vmp/gb28181/SipLayer.java b/src/main/java/com/genersoft/iot/vmp/gb28181/SipLayer.java index b219f3e..f1ed477 100644 --- a/src/main/java/com/genersoft/iot/vmp/gb28181/SipLayer.java +++ b/src/main/java/com/genersoft/iot/vmp/gb28181/SipLayer.java @@ -2,22 +2,12 @@ import java.text.ParseException; import java.util.Properties; +import java.util.TooManyListenersException; import java.util.concurrent.LinkedBlockingQueue; import java.util.concurrent.ThreadPoolExecutor; import java.util.concurrent.TimeUnit; -import javax.sip.DialogTerminatedEvent; -import javax.sip.IOExceptionEvent; -import javax.sip.ListeningPoint; -import javax.sip.PeerUnavailableException; -import javax.sip.RequestEvent; -import javax.sip.ResponseEvent; -import javax.sip.SipFactory; -import javax.sip.SipListener; -import javax.sip.SipProvider; -import javax.sip.SipStack; -import javax.sip.TimeoutEvent; -import javax.sip.TransactionTerminatedEvent; +import javax.sip.*; import javax.sip.message.Response; import org.slf4j.Logger; @@ -93,11 +83,17 @@ @Bean("tcpSipProvider") @DependsOn("sipStack") - private SipProvider startTcpListener() throws Exception { - ListeningPoint tcpListeningPoint = sipStack.createListeningPoint(sipConfig.getSipIp(), sipConfig.getSipPort(), "TCP"); - SipProvider tcpSipProvider = sipStack.createSipProvider(tcpListeningPoint); - tcpSipProvider.addSipListener(this); - logger.info("Sip Server TCP 鍚姩鎴愬姛 port {" + sipConfig.getSipPort() + "}"); + private SipProvider startTcpListener() { + ListeningPoint tcpListeningPoint = null; + SipProvider tcpSipProvider = null; + try { + tcpListeningPoint = sipStack.createListeningPoint(sipConfig.getSipIp(), sipConfig.getSipPort(), "TCP"); + tcpSipProvider = sipStack.createSipProvider(tcpListeningPoint); + tcpSipProvider.addSipListener(this); + logger.info("Sip Server TCP 鍚姩鎴愬姛 port {" + sipConfig.getSipPort() + "}"); + } catch (TransportNotSupportedException | InvalidArgumentException | TooManyListenersException | ObjectInUseException e) { + logger.error(String.format("鍒涘缓SIP鏈嶅姟澶辫触: %s", e.getMessage())); + } return tcpSipProvider; } @@ -107,7 +103,7 @@ ListeningPoint udpListeningPoint = sipStack.createListeningPoint(sipConfig.getSipIp(), sipConfig.getSipPort(), "UDP"); SipProvider udpSipProvider = sipStack.createSipProvider(udpListeningPoint); udpSipProvider.addSipListener(this); - logger.info("Sip Server TCP 鍚姩鎴愬姛 port {" + sipConfig.getSipPort() + "}"); + logger.info("Sip Server UDP 鍚姩鎴愬姛 port {" + sipConfig.getSipPort() + "}"); return udpSipProvider; } @@ -117,6 +113,7 @@ */ @Override public void processRequest(RequestEvent evt) { + logger.debug(evt.getRequest().toString()); // 鐢变簬jainsip鏄崟绾跨▼绋嬪簭锛屼负鎻愰珮鎬ц兘骞跺彂澶勭悊 processThreadPool.execute(() -> { processorFactory.createRequestProcessor(evt).process(); @@ -126,6 +123,7 @@ @Override public void processResponse(ResponseEvent evt) { Response response = evt.getResponse(); + logger.debug(evt.getResponse().toString()); int status = response.getStatusCode(); if ((status >= 200) && (status < 300)) { // Success! ISIPResponseProcessor processor = processorFactory.createResponseProcessor(evt); -- Gitblit v1.8.0