From d6262acf6ab2a5083e62ea98299b378f61cd5421 Mon Sep 17 00:00:00 2001
From: 648540858 <648540858@qq.com>
Date: 星期四, 20 四月 2023 16:42:44 +0800
Subject: [PATCH] 更新readme
---
src/main/java/com/genersoft/iot/vmp/gb28181/SipLayer.java | 32 +++++++++++++++++++++-----------
1 files changed, 21 insertions(+), 11 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 f3c8bed..7823846 100644
--- a/src/main/java/com/genersoft/iot/vmp/gb28181/SipLayer.java
+++ b/src/main/java/com/genersoft/iot/vmp/gb28181/SipLayer.java
@@ -1,6 +1,7 @@
package com.genersoft.iot.vmp.gb28181;
import com.genersoft.iot.vmp.conf.SipConfig;
+import com.genersoft.iot.vmp.conf.UserSetting;
import com.genersoft.iot.vmp.gb28181.conf.DefaultProperties;
import com.genersoft.iot.vmp.gb28181.transmit.ISIPProcessorObserver;
import gov.nist.javax.sip.SipProviderImpl;
@@ -11,13 +12,14 @@
import org.springframework.boot.CommandLineRunner;
import org.springframework.core.annotation.Order;
import org.springframework.stereotype.Component;
+import org.springframework.util.ObjectUtils;
import javax.sip.*;
import java.util.*;
import java.util.concurrent.ConcurrentHashMap;
@Component
-@Order(value=1)
+@Order(value=10)
public class SipLayer implements CommandLineRunner {
private final static Logger logger = LoggerFactory.getLogger(SipLayer.class);
@@ -28,12 +30,11 @@
@Autowired
private ISIPProcessorObserver sipProcessorObserver;
-
+ @Autowired
+ private UserSetting userSetting;
private final Map<String, SipProviderImpl> tcpSipProviderMap = new ConcurrentHashMap<>();
private final Map<String, SipProviderImpl> udpSipProviderMap = new ConcurrentHashMap<>();
-
- private SipFactory sipFactory;
@Override
public void run(String... args) {
@@ -47,8 +48,7 @@
monitorIps.add(sipConfig.getIp());
}
- sipFactory = SipFactory.getInstance();
- sipFactory.setPathName("gov.nist");
+ SipFactory.getInstance().setPathName("gov.nist");
if (monitorIps.size() > 0) {
for (String monitorIp : monitorIps) {
addListeningPoint(monitorIp, sipConfig.getPort());
@@ -62,7 +62,7 @@
private void addListeningPoint(String monitorIp, int port){
SipStackImpl sipStack;
try {
- sipStack = (SipStackImpl)sipFactory.createSipStack(DefaultProperties.getProperties(monitorIp, false));
+ sipStack = (SipStackImpl)SipFactory.getInstance().createSipStack(DefaultProperties.getProperties(monitorIp, userSetting.getSipLog()));
} catch (PeerUnavailableException e) {
logger.error("[Sip Server] SIP鏈嶅姟鍚姩澶辫触锛� 鐩戝惉鍦板潃{}澶辫触,璇锋鏌p鏄惁姝g‘", monitorIp);
return;
@@ -71,6 +71,7 @@
try {
ListeningPoint tcpListeningPoint = sipStack.createListeningPoint(monitorIp, port, "TCP");
SipProviderImpl tcpSipProvider = (SipProviderImpl)sipStack.createSipProvider(tcpListeningPoint);
+
tcpSipProvider.setDialogErrorsAutomaticallyHandled();
tcpSipProvider.addSipListener(sipProcessorObserver);
tcpSipProviderMap.put(monitorIp, tcpSipProvider);
@@ -102,11 +103,10 @@
}
}
- public SipFactory getSipFactory() {
- return sipFactory;
- }
-
public SipProviderImpl getUdpSipProvider(String ip) {
+ if (ObjectUtils.isEmpty(ip)) {
+ return null;
+ }
return udpSipProviderMap.get(ip);
}
@@ -125,6 +125,16 @@
}
public SipProviderImpl getTcpSipProvider(String ip) {
+ if (ObjectUtils.isEmpty(ip)) {
+ return null;
+ }
return tcpSipProviderMap.get(ip);
}
+
+ public String getLocalIp(String deviceLocalIp) {
+ if (!ObjectUtils.isEmpty(deviceLocalIp)) {
+ return deviceLocalIp;
+ }
+ return getUdpSipProvider().getListeningPoint().getIPAddress();
+ }
}
--
Gitblit v1.8.0