From 0a380c6ff916015b434c398448ae08746b6b0a4b Mon Sep 17 00:00:00 2001
From: gaoxun250@sina.com <gaoxun250@sina.com>
Date: 星期五, 03 二月 2023 14:19:10 +0800
Subject: [PATCH] 解决截图被占用无法打开问题
---
src/main/java/com/genersoft/iot/vmp/gb28181/utils/SipUtils.java | 29 +++++++++++++++++++++++++++++
1 files changed, 29 insertions(+), 0 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 26c8e4e..f3fbbb4 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
@@ -1,9 +1,11 @@
package com.genersoft.iot.vmp.gb28181.utils;
+import com.genersoft.iot.vmp.gb28181.bean.RemoteAddressInfo;
import com.genersoft.iot.vmp.utils.GitUtil;
import gov.nist.javax.sip.address.AddressImpl;
import gov.nist.javax.sip.address.SipUri;
import gov.nist.javax.sip.header.Subject;
+import gov.nist.javax.sip.message.SIPRequest;
import org.springframework.util.ObjectUtils;
import javax.sip.PeerUnavailableException;
@@ -119,4 +121,31 @@
return builder.toString();
}
+ /**
+ * 浠庤姹備腑鑾峰彇璁惧ip鍦板潃鍜岀鍙e彿
+ * @param request 璇锋眰
+ * @param sipUseSourceIpAsRemoteAddress false 浠巚ia涓幏鍙栧湴鍧�锛� true 鐩存帴鑾峰彇杩滅▼鍦板潃
+ * @return 鍦板潃淇℃伅
+ */
+ public static RemoteAddressInfo getRemoteAddressFromRequest(SIPRequest request, boolean sipUseSourceIpAsRemoteAddress) {
+
+ String remoteAddress;
+ int remotePort;
+ if (sipUseSourceIpAsRemoteAddress) {
+ remoteAddress = request.getRemoteAddress().getHostAddress();
+ remotePort = request.getRemotePort();
+ }else {
+ // 鍒ゆ柇RPort鏄惁鏀瑰彉锛屾敼鍙樺垯璇存槑璺敱nat淇℃伅鍙樺寲锛屼慨鏀硅澶囦俊鎭�
+ // 鑾峰彇鍒伴�氫俊鍦板潃绛変俊鎭�
+ remoteAddress = request.getTopmostViaHeader().getReceived();
+ remotePort = request.getTopmostViaHeader().getRPort();
+ // 瑙f瀽鏈湴鍦板潃鏇夸唬
+ if (ObjectUtils.isEmpty(remoteAddress) || remotePort == -1) {
+ remoteAddress = request.getTopmostViaHeader().getHost();
+ remotePort = request.getTopmostViaHeader().getPort();
+ }
+ }
+
+ return new RemoteAddressInfo(remoteAddress, remotePort);
+ }
}
--
Gitblit v1.8.0