From 151699137259a9a92463b36795a5f935c62349c6 Mon Sep 17 00:00:00 2001 From: 648540858 <648540858@qq.com> Date: 星期二, 06 十二月 2022 17:12:12 +0800 Subject: [PATCH] 回滚via获取地址的方式 --- src/main/java/com/genersoft/iot/vmp/gb28181/utils/SipUtils.java | 16 ++++++++++++---- 1 files changed, 12 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 5c31f90..56fdb5b 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 @@ -13,6 +13,7 @@ import javax.sip.header.FromHeader; import javax.sip.header.Header; import javax.sip.header.UserAgentHeader; +import javax.sip.header.ViaHeader; import javax.sip.message.Request; import java.text.ParseException; import java.util.ArrayList; @@ -121,6 +122,12 @@ return builder.toString(); } + /** + * 浠庤姹備腑鑾峰彇璁惧ip鍦板潃鍜岀鍙e彿 + * @param request 璇锋眰 + * @param sipUseSourceIpAsRemoteAddress false 浠巚ia涓幏鍙栧湴鍧�锛� true 鐩存帴鑾峰彇杩滅▼鍦板潃 + * @return 鍦板潃淇℃伅 + */ public static RemoteAddressInfo getRemoteAddressFromRequest(SIPRequest request, boolean sipUseSourceIpAsRemoteAddress) { String remoteAddress; @@ -131,12 +138,13 @@ }else { // 鍒ゆ柇RPort鏄惁鏀瑰彉锛屾敼鍙樺垯璇存槑璺敱nat淇℃伅鍙樺寲锛屼慨鏀硅澶囦俊鎭� // 鑾峰彇鍒伴�氫俊鍦板潃绛変俊鎭� - remoteAddress = request.getTopmostViaHeader().getReceived(); - remotePort = request.getTopmostViaHeader().getPort(); + ViaHeader viaHeader = (ViaHeader) request.getHeader(ViaHeader.NAME); + remoteAddress = viaHeader.getReceived(); + remotePort = viaHeader.getRPort(); // 瑙f瀽鏈湴鍦板潃鏇夸唬 if (ObjectUtils.isEmpty(remoteAddress) || remotePort == -1) { - remoteAddress = request.getViaHost(); - remotePort = request.getViaPort(); + remoteAddress = viaHeader.getHost(); + remotePort = viaHeader.getPort(); } } -- Gitblit v1.8.0