From 269ad8cedbb07ca207a6f33af23085894dab4aa6 Mon Sep 17 00:00:00 2001 From: 648540858 <648540858@qq.com> Date: 星期日, 23 四月 2023 14:36:13 +0800 Subject: [PATCH] 修身目录刷新,优化公网下远程IP端口的获取 --- src/main/java/com/genersoft/iot/vmp/conf/MediaConfig.java | 285 ++++++++++++++++++++++++++++++++------------------------ 1 files changed, 161 insertions(+), 124 deletions(-) diff --git a/src/main/java/com/genersoft/iot/vmp/conf/MediaConfig.java b/src/main/java/com/genersoft/iot/vmp/conf/MediaConfig.java index 2d0647a..fa12679 100644 --- a/src/main/java/com/genersoft/iot/vmp/conf/MediaConfig.java +++ b/src/main/java/com/genersoft/iot/vmp/conf/MediaConfig.java @@ -1,188 +1,225 @@ package com.genersoft.iot.vmp.conf; +import com.genersoft.iot.vmp.media.zlm.dto.MediaServerItem; +import com.genersoft.iot.vmp.utils.DateUtil; +import org.junit.jupiter.api.Order; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Value; import org.springframework.context.annotation.Configuration; +import org.springframework.util.ObjectUtils; + +import java.net.InetAddress; +import java.net.UnknownHostException; +import java.util.regex.Pattern; + @Configuration("mediaConfig") -public class MediaConfig { +@Order(0) +public class MediaConfig{ + + private final static Logger logger = LoggerFactory.getLogger(MediaConfig.class); + + // 淇敼蹇呴』閰嶇疆锛屼笉鍐嶆敮鎸佽嚜鍔ㄨ幏鍙� + @Value("${media.id}") + private String id; @Value("${media.ip}") private String ip; - @Value("${media.wanIp}") - private String wanIp; - - @Value("${media.hookIp}") + @Value("${media.hook-ip:}") private String hookIp; - @Value("${media.httpPort}") - private String httpPort; + @Value("${sip.ip}") + private String sipIp; - @Value("${media.httpSSlPort}") - private String httpSSlPort; + @Value("${sip.domain}") + private String sipDomain; - @Value("${media.rtmpPort}") - private String rtmpPort; + @Value("${media.sdp-ip:${media.ip}}") + private String sdpIp; - @Value("${media.rtmpSSlPort}") - private String rtmpSSlPort; + @Value("${media.stream-ip:${media.ip}}") + private String streamIp; - @Value("${media.rtpProxyPort}") - private String rtpProxyPort; + @Value("${media.http-port}") + private Integer httpPort; - @Value("${media.rtspPort}") - private String rtspPort; + @Value("${media.http-ssl-port:0}") + private Integer httpSSlPort = 0; - @Value("${media.rtspSSLPort}") - private String rtspSSLPort; + @Value("${media.rtmp-port:0}") + private Integer rtmpPort = 0; - @Value("${media.autoConfig}") - private boolean autoConfig; + @Value("${media.rtmp-ssl-port:0}") + private Integer rtmpSSlPort = 0; + + @Value("${media.rtp-proxy-port:0}") + private Integer rtpProxyPort = 0; + + @Value("${media.rtsp-port:0}") + private Integer rtspPort = 0; + + @Value("${media.rtsp-ssl-port:0}") + private Integer rtspSSLPort = 0; + + @Value("${media.auto-config:true}") + private boolean autoConfig = true; @Value("${media.secret}") private String secret; - @Value("${media.streamNoneReaderDelayMS}") - private String streamNoneReaderDelayMS; - @Value("${media.rtp.enable}") private boolean rtpEnable; - @Value("${media.rtp.portRange}") + @Value("${media.rtp.port-range}") private String rtpPortRange; - @Value("${media.recordAssistPort}") - private int recordAssistPort; + @Value("${media.record-assist-port:0}") + private Integer recordAssistPort = 0; + + public String getId() { + return id; + } public String getIp() { return ip; } - public void setIp(String ip) { - this.ip = ip; - } - - public String getWanIp() { - return wanIp; - } - - public void setWanIp(String wanIp) { - this.wanIp = wanIp; - } - public String getHookIp() { - return hookIp; + if (ObjectUtils.isEmpty(hookIp)){ + return sipIp.split(",")[0]; + }else { + return hookIp; + } + } - public void setHookIp(String hookIp) { - this.hookIp = hookIp; + public String getSipIp() { + if (sipIp == null) { + return this.ip; + }else { + return sipIp; + } } - public String getHttpPort() { + public int getHttpPort() { return httpPort; } - public void setHttpPort(String httpPort) { - this.httpPort = httpPort; + public int getHttpSSlPort() { + return httpSSlPort; + } + + public int getRtmpPort() { + return rtmpPort; + } + + public int getRtmpSSlPort() { + return rtmpSSlPort; + } + + public int getRtpProxyPort() { + if (rtpProxyPort == null) { + return 0; + }else { + return rtpProxyPort; + } + + } + + public int getRtspPort() { + return rtspPort; + } + + public int getRtspSSLPort() { + return rtspSSLPort; } public boolean isAutoConfig() { return autoConfig; } - public boolean getAutoConfig() { - return autoConfig; - } - - public void setAutoConfig(boolean autoConfig) { - this.autoConfig = autoConfig; - } - public String getSecret() { return secret; - } - - public void setSecret(String secret) { - this.secret = secret; - } - - public String getStreamNoneReaderDelayMS() { - return streamNoneReaderDelayMS; - } - - public void setStreamNoneReaderDelayMS(String streamNoneReaderDelayMS) { - this.streamNoneReaderDelayMS = streamNoneReaderDelayMS; } public boolean isRtpEnable() { return rtpEnable; } - public void setRtpEnable(boolean rtpEnable) { - this.rtpEnable = rtpEnable; - } - public String getRtpPortRange() { return rtpPortRange; } - - public void setRtpPortRange(String rtpPortRange) { - this.rtpPortRange = rtpPortRange; - } - - public String getHttpSSlPort() { - return httpSSlPort; - } - - public void setHttpSSlPort(String httpSSlPort) { - this.httpSSlPort = httpSSlPort; - } - - public String getRtmpPort() { - return rtmpPort; - } - - public void setRtmpPort(String rtmpPort) { - this.rtmpPort = rtmpPort; - } - - public String getRtmpSSlPort() { - return rtmpSSlPort; - } - - public void setRtmpSSlPort(String rtmpSSlPort) { - this.rtmpSSlPort = rtmpSSlPort; - } - - public String getRtpProxyPort() { - return rtpProxyPort; - } - - public void setRtpProxyPort(String rtpProxyPort) { - this.rtpProxyPort = rtpProxyPort; - } - - public String getRtspPort() { - return rtspPort; - } - - public void setRtspPort(String rtspPort) { - this.rtspPort = rtspPort; - } - - public String getRtspSSLPort() { - return rtspSSLPort; - } - - public void setRtspSSLPort(String rtspSSLPort) { - this.rtspSSLPort = rtspSSLPort; - } - + public int getRecordAssistPort() { return recordAssistPort; } - public void setRecordAssistPort(int recordAssistPort) { - this.recordAssistPort = recordAssistPort; + public String getSdpIp() { + if (ObjectUtils.isEmpty(sdpIp)){ + return ip; + }else { + if (isValidIPAddress(sdpIp)) { + return sdpIp; + }else { + // 鎸夌収鍩熷悕瑙f瀽 + String hostAddress = null; + try { + hostAddress = InetAddress.getByName(sdpIp).getHostAddress(); + } catch (UnknownHostException e) { + logger.error("[鑾峰彇SDP IP]: 鍩熷悕瑙f瀽澶辫触"); + } + return hostAddress; + } + } } + + public String getStreamIp() { + if (ObjectUtils.isEmpty(streamIp)){ + return ip; + }else { + return streamIp; + } + } + + public String getSipDomain() { + return sipDomain; + } + + public MediaServerItem getMediaSerItem(){ + MediaServerItem mediaServerItem = new MediaServerItem(); + mediaServerItem.setId(id); + mediaServerItem.setIp(ip); + mediaServerItem.setDefaultServer(true); + mediaServerItem.setHookIp(getHookIp()); + mediaServerItem.setSdpIp(getSdpIp()); + mediaServerItem.setStreamIp(getStreamIp()); + mediaServerItem.setHttpPort(httpPort); + mediaServerItem.setHttpSSlPort(httpSSlPort); + mediaServerItem.setRtmpPort(rtmpPort); + mediaServerItem.setRtmpSSlPort(rtmpSSlPort); + mediaServerItem.setRtpProxyPort(getRtpProxyPort()); + mediaServerItem.setRtspPort(rtspPort); + mediaServerItem.setRtspSSLPort(rtspSSLPort); + mediaServerItem.setAutoConfig(autoConfig); + mediaServerItem.setSecret(secret); + mediaServerItem.setRtpEnable(rtpEnable); + mediaServerItem.setRtpPortRange(rtpPortRange); + mediaServerItem.setRecordAssistPort(recordAssistPort); + mediaServerItem.setHookAliveInterval(30.00f); + + mediaServerItem.setCreateTime(DateUtil.getNow()); + mediaServerItem.setUpdateTime(DateUtil.getNow()); + + return mediaServerItem; + } + + private boolean isValidIPAddress(String ipAddress) { + if ((ipAddress != null) && (!ipAddress.isEmpty())) { + return Pattern.matches("^([1-9]|[1-9]\\d|1\\d{2}|2[0-4]\\d|25[0-5])(\\.(\\d|[1-9]\\d|1\\d{2}|2[0-4]\\d|25[0-5])){3}$", ipAddress); + } + return false; + } + } -- Gitblit v1.8.0