From 31dcdab4d8b71ae5a0e7a2bcf363c990b58c0d8f Mon Sep 17 00:00:00 2001
From: 648540858 <648540858@qq.com>
Date: 星期二, 07 二月 2023 16:45:17 +0800
Subject: [PATCH] 修复点播信令

---
 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