648540858
2023-06-29 f62bf7b2c6239f2c67f5d9019f8302c8d441f870
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;
@@ -18,7 +19,7 @@
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);
@@ -29,10 +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) {
@@ -46,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());
@@ -61,9 +62,9 @@
   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服务启动失败, 监听地址{}失败,请检查ip是否正确", monitorIp);
         logger.error("[SIP SERVER] SIP服务启动失败, 监听地址{}失败,请检查ip是否正确", monitorIp);
         return;
      }
@@ -75,12 +76,12 @@
         tcpSipProvider.addSipListener(sipProcessorObserver);
         tcpSipProviderMap.put(monitorIp, tcpSipProvider);
         logger.info("[Sip Server] tcp://{}:{} 启动成功", monitorIp, port);
         logger.info("[SIP SERVER] tcp://{}:{} 启动成功", monitorIp, port);
      } catch (TransportNotSupportedException
             | TooManyListenersException
             | ObjectInUseException
             | InvalidArgumentException e) {
         logger.error("[Sip Server] tcp://{}:{} SIP服务启动失败,请检查端口是否被占用或者ip是否正确"
         logger.error("[SIP SERVER] tcp://{}:{} SIP服务启动失败,请检查端口是否被占用或者ip是否正确"
               , monitorIp, port);
      }
@@ -92,18 +93,14 @@
         udpSipProviderMap.put(monitorIp, udpSipProvider);
         logger.info("[Sip Server] udp://{}:{} 启动成功", monitorIp, port);
         logger.info("[SIP SERVER] udp://{}:{} 启动成功", monitorIp, port);
      } catch (TransportNotSupportedException
             | TooManyListenersException
             | ObjectInUseException
             | InvalidArgumentException e) {
         logger.error("[Sip Server] udp://{}:{} SIP服务启动失败,请检查端口是否被占用或者ip是否正确"
         logger.error("[SIP SERVER] udp://{}:{} SIP服务启动失败,请检查端口是否被占用或者ip是否正确"
               , monitorIp, port);
      }
   }
   public SipFactory getSipFactory() {
      return sipFactory;
   }
   public SipProviderImpl getUdpSipProvider(String ip) {