From 66eda32ab97d6e94e9f274d6faa4df586c452dfb Mon Sep 17 00:00:00 2001
From: 648540858 <648540858@qq.com>
Date: 星期日, 25 六月 2023 10:18:29 +0800
Subject: [PATCH] 优化端口预占用

---
 src/main/java/com/genersoft/iot/vmp/gb28181/utils/SipUtils.java |   29 +++++++++++++++++++++++++----
 1 files changed, 25 insertions(+), 4 deletions(-)

diff --git a/src/main/java/com/genersoft/iot/vmp/gb28181/utils/SipUtils.java b/src/main/java/com/genersoft/iot/vmp/gb28181/utils/SipUtils.java
index f983150..e01107f 100644
--- a/src/main/java/com/genersoft/iot/vmp/gb28181/utils/SipUtils.java
+++ b/src/main/java/com/genersoft/iot/vmp/gb28181/utils/SipUtils.java
@@ -122,6 +122,26 @@
         return builder.toString();
     }
 
+    public static String getNewCallId() {
+        return (int) Math.floor(Math.random() * 1000000000) + "";
+    }
+
+    public static int getTypeCodeFromGbCode(String deviceId) {
+        if (ObjectUtils.isEmpty(deviceId)) {
+            return 0;
+        }
+        return Integer.parseInt(deviceId.substring(10, 13));
+    }
+
+    /**
+     * 鍒ゆ柇鏄惁鏄墠绔鍥磋澶�
+     * @param deviceId
+     * @return
+     */
+    public static boolean isFrontEnd(String deviceId) {
+        int typeCodeFromGbCode = getTypeCodeFromGbCode(deviceId);
+        return typeCodeFromGbCode > 130 && typeCodeFromGbCode < 199;
+    }
     /**
      * 浠庤姹備腑鑾峰彇璁惧ip鍦板潃鍜岀鍙e彿
      * @param request 璇锋眰
@@ -133,8 +153,9 @@
         String remoteAddress;
         int remotePort;
         if (sipUseSourceIpAsRemoteAddress) {
-            remoteAddress = request.getRemoteAddress().getHostAddress();
-            remotePort = request.getRemotePort();
+            remoteAddress = request.getPeerPacketSourceAddress().getHostAddress();
+            remotePort = request.getPeerPacketSourcePort();
+
         }else {
             // 鍒ゆ柇RPort鏄惁鏀瑰彉锛屾敼鍙樺垯璇存槑璺敱nat淇℃伅鍙樺寲锛屼慨鏀硅澶囦俊鎭�
             // 鑾峰彇鍒伴�氫俊鍦板潃绛変俊鎭�
@@ -142,8 +163,8 @@
             remotePort = request.getTopmostViaHeader().getRPort();
             // 瑙f瀽鏈湴鍦板潃鏇夸唬
             if (ObjectUtils.isEmpty(remoteAddress) || remotePort == -1) {
-                remoteAddress = request.getTopmostViaHeader().getHost();
-                remotePort = request.getTopmostViaHeader().getPort();
+                remoteAddress = request.getPeerPacketSourceAddress().getHostAddress();
+                remotePort = request.getPeerPacketSourcePort();
             }
         }
 

--
Gitblit v1.8.0