From c370d49ddbd824f7e3bbff996a8fd79a6f8bf61d Mon Sep 17 00:00:00 2001
From: swwheihei <swwheihei@163.com>
Date: 星期六, 09 五月 2020 08:43:12 +0800
Subject: [PATCH] Update README.md
---
src/main/java/com/genersoft/iot/vmp/gb28181/SipLayer.java | 173 +++++++++++++++++++++++++++++++++------------------------
1 files changed, 100 insertions(+), 73 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 4d08fcc..273f4ed 100644
--- a/src/main/java/com/genersoft/iot/vmp/gb28181/SipLayer.java
+++ b/src/main/java/com/genersoft/iot/vmp/gb28181/SipLayer.java
@@ -2,6 +2,7 @@
import java.util.Properties;
+import javax.annotation.PostConstruct;
import javax.sip.DialogTerminatedEvent;
import javax.sip.IOExceptionEvent;
import javax.sip.ListeningPoint;
@@ -26,7 +27,6 @@
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.context.annotation.Bean;
import org.springframework.stereotype.Component;
import com.genersoft.iot.vmp.conf.SipConfig;
@@ -37,70 +37,78 @@
import gov.nist.javax.sip.SipStackImpl;
@Component
-public class SipLayer implements SipListener{
-
+public class SipLayer implements SipListener, Runnable {
+
private final static Logger logger = LoggerFactory.getLogger(SipLayer.class);
-
+
@Autowired
private SipConfig config;
-
+
private SipProvider tcpSipProvider;
-
+
private SipProvider udpSipProvider;
-
+
@Autowired
private SIPProcessorFactory processorFactory;
-
+
private SipStack sipStack;
-
+
private AddressFactory addressFactory;
private HeaderFactory headerFactory;
private MessageFactory messageFactory;
- @Bean
- private boolean initSipServer() throws Exception {
+ @PostConstruct
+ private void initSipServer() {
+ Thread thread=new Thread(this);
+ thread.setDaemon(true);
+ thread.setName("sip server thread start");
+ thread.start();
+ }
+
+ @Override
+ public void run() {
SipFactory sipFactory = SipFactory.getInstance();
sipFactory.setPathName("gov.nist");
- headerFactory = sipFactory.createHeaderFactory();
- addressFactory = sipFactory.createAddressFactory();
- messageFactory = sipFactory.createMessageFactory();
-
- Properties properties = new Properties();
- properties.setProperty("javax.sip.STACK_NAME", "GB28181_SIP");
- properties.setProperty("javax.sip.IP_ADDRESS", config.getSipIp());
- /**
- * sip_server_log.log 鍜� sip_debug_log.log public static final int TRACE_NONE =
- * 0; public static final int TRACE_MESSAGES = 16; public static final int
- * TRACE_EXCEPTION = 17; public static final int TRACE_DEBUG = 32;
- */
- properties.setProperty("gov.nist.javax.sip.TRACE_LEVEL", "16");
- properties.setProperty("gov.nist.javax.sip.SERVER_LOG", "sip_server_log");
- properties.setProperty("gov.nist.javax.sip.DEBUG_LOG", "sip_debug_log");
- sipStack = (SipStackImpl) sipFactory.createSipStack(properties);
-
try {
+ headerFactory = sipFactory.createHeaderFactory();
+
+ addressFactory = sipFactory.createAddressFactory();
+ messageFactory = sipFactory.createMessageFactory();
+
+ Properties properties = new Properties();
+ properties.setProperty("javax.sip.STACK_NAME", "GB28181_SIP");
+ properties.setProperty("javax.sip.IP_ADDRESS", config.getSipIp());
+ properties.setProperty("gov.nist.javax.sip.LOG_MESSAGE_CONTENT", "false");
+ /**
+ * sip_server_log.log 鍜� sip_debug_log.log public static final int TRACE_NONE =
+ * 0; public static final int TRACE_MESSAGES = 16; public static final int
+ * TRACE_EXCEPTION = 17; public static final int TRACE_DEBUG = 32;
+ */
+ properties.setProperty("gov.nist.javax.sip.TRACE_LEVEL", "0");
+ properties.setProperty("gov.nist.javax.sip.SERVER_LOG", "sip_server_log");
+ properties.setProperty("gov.nist.javax.sip.DEBUG_LOG", "sip_debug_log");
+ sipStack = (SipStackImpl) sipFactory.createSipStack(properties);
+
startTcpListener();
startUdpListener();
} catch (Exception e) {
- logger.error("Sip Server 鍚姩澶辫触锛� port {"+config.getSipPort()+"}");
+ logger.error("Sip Server 鍚姩澶辫触锛� port {" + config.getSipPort() + "}");
e.printStackTrace();
- throw e;
}
- logger.info("Sip Server 鍚姩鎴愬姛 port {"+config.getSipPort()+"}");
- return true;
+ logger.info("Sip Server 鍚姩鎴愬姛 port {" + config.getSipPort() + "}");
}
-
+
private void startTcpListener() throws Exception {
ListeningPoint tcpListeningPoint = sipStack.createListeningPoint(config.getSipIp(), config.getSipPort(), "TCP");
tcpSipProvider = sipStack.createSipProvider(tcpListeningPoint);
tcpSipProvider.addSipListener(this);
- }
-
- private void startUdpListener() throws Exception {
+ }
+
+ private void startUdpListener() throws Exception {
ListeningPoint udpListeningPoint = sipStack.createListeningPoint(config.getSipIp(), config.getSipPort(), "UDP");
udpSipProvider = sipStack.createSipProvider(udpListeningPoint);
udpSipProvider.addSipListener(this);
- }
+ }
/**
* SIP鏈嶅姟绔帴鏀舵秷鎭殑鏂规硶 Content 閲岄潰鏄疓BK缂栫爜 This method is called by the SIP stack when a
@@ -118,60 +126,80 @@
int status = response.getStatusCode();
if ((status >= 200) && (status < 300)) { // Success!
ISIPResponseProcessor processor = processorFactory.createResponseProcessor(evt);
- processor.process(evt,this,config);
+ processor.process(evt, this, config);
} else {
- logger.warn("鎺ユ敹鍒板け璐ョ殑response鍝嶅簲锛乻tatus锛�"+status+",message:"+response.getContent().toString());
+ logger.warn("鎺ユ敹鍒板け璐ョ殑response鍝嶅簲锛乻tatus锛�" + status + ",message:" + response.getContent().toString());
}
- //trying涓嶄細鍥炲
- if(status == Response.TRYING){
+ // trying涓嶄細鍥炲
+ if (status == Response.TRYING) {
}
}
- /**
- * <p>Title: processTimeout</p>
- * <p>Description: </p>
- * @param timeoutEvent
- */
+ /**
+ * <p>
+ * Title: processTimeout
+ * </p>
+ * <p>
+ * Description:
+ * </p>
+ *
+ * @param timeoutEvent
+ */
@Override
public void processTimeout(TimeoutEvent timeoutEvent) {
// TODO Auto-generated method stub
-
+
}
- /**
- * <p>Title: processIOException</p>
- * <p>Description: </p>
- * @param exceptionEvent
- */
+ /**
+ * <p>
+ * Title: processIOException
+ * </p>
+ * <p>
+ * Description:
+ * </p>
+ *
+ * @param exceptionEvent
+ */
@Override
public void processIOException(IOExceptionEvent exceptionEvent) {
// TODO Auto-generated method stub
-
+
}
- /**
- * <p>Title: processTransactionTerminated</p>
- * <p>Description: </p>
- * @param transactionTerminatedEvent
- */
+ /**
+ * <p>
+ * Title: processTransactionTerminated
+ * </p>
+ * <p>
+ * Description:
+ * </p>
+ *
+ * @param transactionTerminatedEvent
+ */
@Override
public void processTransactionTerminated(TransactionTerminatedEvent transactionTerminatedEvent) {
// TODO Auto-generated method stub
-
+
}
- /**
- * <p>Title: processDialogTerminated</p>
- * <p>Description: </p>
- * @param dialogTerminatedEvent
- */
+ /**
+ * <p>
+ * Title: processDialogTerminated
+ * </p>
+ * <p>
+ * Description:
+ * </p>
+ *
+ * @param dialogTerminatedEvent
+ */
@Override
public void processDialogTerminated(DialogTerminatedEvent dialogTerminatedEvent) {
// TODO Auto-generated method stub
-
+
}
-
+
private ServerTransaction getServerTransaction(RequestEvent evt) {
Request request = evt.getRequest();
ServerTransaction serverTransaction = evt.getServerTransaction();
@@ -185,11 +213,11 @@
if (serverTransaction == null) {
try {
- if (isTcp) {
- serverTransaction = tcpSipProvider.getNewServerTransaction(request);
- } else {
- serverTransaction = udpSipProvider.getNewServerTransaction(request);
- }
+ if (isTcp) {
+ serverTransaction = tcpSipProvider.getNewServerTransaction(request);
+ } else {
+ serverTransaction = udpSipProvider.getNewServerTransaction(request);
+ }
} catch (TransactionAlreadyExistsException e) {
e.printStackTrace();
} catch (TransactionUnavailableException e) {
@@ -198,7 +226,6 @@
}
return serverTransaction;
}
-
public AddressFactory getAddressFactory() {
return addressFactory;
@@ -219,5 +246,5 @@
public SipProvider getUdpSipProvider() {
return udpSipProvider;
}
-
+
}
--
Gitblit v1.8.0