From 07a8ef9e256c70a3a5b15782add81dcad1e2ffc2 Mon Sep 17 00:00:00 2001 From: panlinlin <648540858@qq.com> Date: 星期五, 14 六月 2024 00:03:57 +0800 Subject: [PATCH] SIP只有一个监听时,直接返回 --- src/main/java/com/genersoft/iot/vmp/conf/MediaConfig.java | 217 +++++++++++++++++++++++++++++++++++++----------------- 1 files changed, 148 insertions(+), 69 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 2b52bcd..a9ea67f 100644 --- a/src/main/java/com/genersoft/iot/vmp/conf/MediaConfig.java +++ b/src/main/java/com/genersoft/iot/vmp/conf/MediaConfig.java @@ -1,42 +1,64 @@ package com.genersoft.iot.vmp.conf; -import com.genersoft.iot.vmp.media.zlm.dto.MediaServerItem; +import com.genersoft.iot.vmp.media.bean.MediaServer; +import com.genersoft.iot.vmp.utils.DateUtil; +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.StringUtils; +import org.springframework.core.annotation.Order; +import org.springframework.util.ObjectUtils; -import java.text.SimpleDateFormat; -import java.util.Date; +import java.net.InetAddress; +import java.net.UnknownHostException; +import java.util.regex.Pattern; + @Configuration("mediaConfig") +@Order(0) public class MediaConfig{ - @Value("${media.id:}") + private final static Logger logger = LoggerFactory.getLogger(MediaConfig.class); + + // 淇敼蹇呴』閰嶇疆锛屼笉鍐嶆敮鎸佽嚜鍔ㄨ幏鍙� + @Value("${media.id}") private String id; @Value("${media.ip}") private String ip; - @Value("${media.hook-ip:${sip.ip}}") - private String hookIp; + @Value("${media.wan_ip:}") + private String wanIp; - @Value("${sip.ip}") - private String sipIp; + @Value("${media.hook-ip:127.0.0.1}") + private String hookIp; @Value("${sip.domain}") private String sipDomain; - @Value("${media.sdp-ip:${media.ip}}") + @Value("${media.sdp-ip:${media.wan_ip:}}") private String sdpIp; - @Value("${media.stream-ip:${media.ip}}") + @Value("${media.stream-ip:${media.wan_ip:}}") private String streamIp; - @Value("${media.http-port}") + @Value("${media.http-port:0}") private Integer httpPort; + + @Value("${media.flv-port:0}") + private Integer flvPort = 0; + + @Value("${media.ws-flv-port:0}") + private Integer wsFlvPort = 0; @Value("${media.http-ssl-port:0}") private Integer httpSSlPort = 0; + + @Value("${media.flv-ssl-port:0}") + private Integer flvSSlPort = 0; + + @Value("${media.ws-flv-ssl-port:0}") + private Integer wsFlvSSlPort = 0; @Value("${media.rtmp-port:0}") private Integer rtmpPort = 0; @@ -59,21 +81,26 @@ @Value("${media.secret}") private String secret; - @Value("${media.stream-none-reader-delay-ms:18000}") - private int streamNoneReaderDelayMS = 18000; - @Value("${media.rtp.enable}") private boolean rtpEnable; @Value("${media.rtp.port-range}") private String rtpPortRange; - @Value("${media.rtp.send-port-range}") - private String sendRtpPortRange; + private String rtpSendPortRange; @Value("${media.record-assist-port:0}") private Integer recordAssistPort = 0; + + @Value("${media.record-day:7}") + private Integer recordDay; + + @Value("${media.record-path:}") + private String recordPath; + + @Value("${media.type:zlm}") + private String type; public String getId() { return id; @@ -84,20 +111,7 @@ } public String getHookIp() { - if (StringUtils.isEmpty(hookIp)){ - return sipIp; - }else { - return hookIp; - } - - } - - public String getSipIp() { - if (sipIp == null) { - return this.ip; - }else { - return sipIp; - } + return hookIp; } public int getHttpPort() { @@ -141,10 +155,6 @@ return secret; } - public int getStreamNoneReaderDelayMS() { - return streamNoneReaderDelayMS; - } - public boolean isRtpEnable() { return rtpEnable; } @@ -158,15 +168,26 @@ } public String getSdpIp() { - if (StringUtils.isEmpty(sdpIp)){ + if (ObjectUtils.isEmpty(sdpIp)){ return ip; }else { - return sdpIp; + 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 (StringUtils.isEmpty(streamIp)){ + if (ObjectUtils.isEmpty(streamIp)){ return ip; }else { return streamIp; @@ -177,39 +198,97 @@ return sipDomain; } - public String getSendRtpPortRange() { - return sendRtpPortRange; + public MediaServer getMediaSerItem(){ + MediaServer mediaServer = new MediaServer(); + mediaServer.setId(id); + mediaServer.setIp(ip); + mediaServer.setDefaultServer(true); + mediaServer.setHookIp(getHookIp()); + mediaServer.setSdpIp(getSdpIp()); + mediaServer.setStreamIp(getStreamIp()); + mediaServer.setHttpPort(httpPort); + if (flvPort == 0) { + mediaServer.setFlvPort(httpPort); + }else { + mediaServer.setFlvPort(flvPort); + } + if (wsFlvPort == 0) { + mediaServer.setWsFlvPort(httpPort); + }else { + mediaServer.setWsFlvPort(wsFlvPort); + } + if (flvSSlPort == 0) { + mediaServer.setFlvSSLPort(httpSSlPort); + }else { + mediaServer.setFlvSSLPort(flvSSlPort); + } + if (wsFlvSSlPort == 0) { + mediaServer.setWsFlvSSLPort(httpSSlPort); + }else { + mediaServer.setWsFlvSSLPort(wsFlvSSlPort); + } + + mediaServer.setHttpSSlPort(httpSSlPort); + mediaServer.setRtmpPort(rtmpPort); + mediaServer.setRtmpSSlPort(rtmpSSlPort); + mediaServer.setRtpProxyPort(getRtpProxyPort()); + mediaServer.setRtspPort(rtspPort); + mediaServer.setRtspSSLPort(rtspSSLPort); + mediaServer.setAutoConfig(autoConfig); + mediaServer.setSecret(secret); + mediaServer.setRtpEnable(rtpEnable); + mediaServer.setRtpPortRange(rtpPortRange); + mediaServer.setSendRtpPortRange(rtpSendPortRange); + mediaServer.setRecordAssistPort(recordAssistPort); + mediaServer.setHookAliveInterval(10f); + mediaServer.setRecordDay(recordDay); + mediaServer.setStatus(false); + mediaServer.setType(type); + if (recordPath != null) { + mediaServer.setRecordPath(recordPath); + } + mediaServer.setCreateTime(DateUtil.getNow()); + mediaServer.setUpdateTime(DateUtil.getNow()); + + return mediaServer; } - 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.setStreamNoneReaderDelayMS(streamNoneReaderDelayMS); - mediaServerItem.setRtpEnable(rtpEnable); - mediaServerItem.setRtpPortRange(rtpPortRange); - mediaServerItem.setSendRtpPortRange(sendRtpPortRange); - mediaServerItem.setRecordAssistPort(recordAssistPort); - mediaServerItem.setHookAliveInterval(120); - - SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); - mediaServerItem.setCreateTime(format.format(System.currentTimeMillis())); - mediaServerItem.setUpdateTime(format.format(System.currentTimeMillis())); - - return mediaServerItem; + public Integer getRecordDay() { + return recordDay; } + public void setRecordDay(Integer recordDay) { + this.recordDay = recordDay; + } + + public String getRecordPath() { + return recordPath; + } + + public void setRecordPath(String recordPath) { + this.recordPath = recordPath; + } + + public String getRtpSendPortRange() { + return rtpSendPortRange; + } + + public void setRtpSendPortRange(String rtpSendPortRange) { + this.rtpSendPortRange = rtpSendPortRange; + } + + 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; + } + + public String getWanIp() { + return wanIp; + } + + public void setWanIp(String wanIp) { + this.wanIp = wanIp; + } } -- Gitblit v1.8.0