From 5cae58c69129631c80c611d1870c3a20721cebf4 Mon Sep 17 00:00:00 2001
From: 648540858 <648540858@qq.com>
Date: 星期二, 14 二月 2023 10:04:48 +0800
Subject: [PATCH] Merge branch 'wvp-28181-2.0' into main2

---
 src/main/java/com/genersoft/iot/vmp/gb28181/utils/SipUtils.java |   32 +++++++++++++++++++++++++++++---
 1 files changed, 29 insertions(+), 3 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 5c31f90..45c5a90 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
@@ -121,6 +121,32 @@
         return builder.toString();
     }
 
+    public static String getNewCallId() {
+        return (int) Math.floor(Math.random() * 10000) + "";
+    }
+
+    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 璇锋眰
+     * @param sipUseSourceIpAsRemoteAddress  false 浠巚ia涓幏鍙栧湴鍧�锛� true 鐩存帴鑾峰彇杩滅▼鍦板潃
+     * @return 鍦板潃淇℃伅
+     */
     public static RemoteAddressInfo getRemoteAddressFromRequest(SIPRequest request, boolean sipUseSourceIpAsRemoteAddress) {
 
         String remoteAddress;
@@ -132,11 +158,11 @@
             // 鍒ゆ柇RPort鏄惁鏀瑰彉锛屾敼鍙樺垯璇存槑璺敱nat淇℃伅鍙樺寲锛屼慨鏀硅澶囦俊鎭�
             // 鑾峰彇鍒伴�氫俊鍦板潃绛変俊鎭�
             remoteAddress = request.getTopmostViaHeader().getReceived();
-            remotePort = request.getTopmostViaHeader().getPort();
+            remotePort = request.getTopmostViaHeader().getRPort();
             // 瑙f瀽鏈湴鍦板潃鏇夸唬
             if (ObjectUtils.isEmpty(remoteAddress) || remotePort == -1) {
-                remoteAddress = request.getViaHost();
-                remotePort = request.getViaPort();
+                remoteAddress = request.getTopmostViaHeader().getHost();
+                remotePort = request.getTopmostViaHeader().getPort();
             }
         }
 

--
Gitblit v1.8.0