648540858
2023-01-05 ce035dbcdb38fc1f73ec82f54336f490a632b53b
src/main/java/com/genersoft/iot/vmp/gb28181/SipLayer.java
@@ -11,6 +11,7 @@
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.*;
@@ -27,8 +28,6 @@
   @Autowired
   private ISIPProcessorObserver sipProcessorObserver;
   private final Map<String, SipProviderImpl> tcpSipProviderMap = new ConcurrentHashMap<>();
   private final Map<String, SipProviderImpl> udpSipProviderMap = new ConcurrentHashMap<>();
@@ -71,6 +70,7 @@
      try {
         ListeningPoint tcpListeningPoint = sipStack.createListeningPoint(monitorIp, port, "TCP");
         SipProviderImpl tcpSipProvider = (SipProviderImpl)sipStack.createSipProvider(tcpListeningPoint);
         tcpSipProvider.setDialogErrorsAutomaticallyHandled();
         tcpSipProvider.addSipListener(sipProcessorObserver);
         tcpSipProviderMap.put(monitorIp, tcpSipProvider);
@@ -107,6 +107,9 @@
   }
   public SipProviderImpl getUdpSipProvider(String ip) {
      if (ObjectUtils.isEmpty(ip)) {
         return null;
      }
      return udpSipProviderMap.get(ip);
   }
@@ -125,6 +128,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();
   }
}