增加zlm代理的secret自动添加, 增加配置文件的默认值,缺少非关键参数不会无法启动,简化配置文件给新手带来的压力,前端使用wvp代理流。

This commit is contained in:
64850858
2021-06-04 16:31:45 +08:00
parent 8aaac8c431
commit 1b677c6dc7
17 changed files with 290 additions and 129 deletions

View File

@@ -31,9 +31,5 @@ public class ApplicationCheckRunner implements CommandLineRunner {
System.exit(1);
}
if (mediaConfig.getIp().equals("localhost") || (mediaConfig.getIp().equals("127.0.0.1") && mediaConfig.getWanIp() == null)) {
logger.warn("mediaIp.ip使用 {} ,将无法收到网络内其他设备的推流!!!", mediaConfig.getIp() );
}
}
}

View File

@@ -1,7 +1,9 @@
package com.genersoft.iot.vmp.conf;
import io.netty.util.internal.StringUtil;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Configuration;
import org.springframework.util.StringUtils;
@Configuration("mediaConfig")
public class MediaConfig {
@@ -9,40 +11,40 @@ public class MediaConfig {
@Value("${media.ip}")
private String ip;
@Value("${media.wanIp}")
private String wanIp;
@Value("${media.hookIp}")
@Value("${media.hookIp:${sip.ip}}")
private String hookIp;
@Value("${media.sdpIp:${media.ip}}")
private String sdpIp;
@Value("${media.httpPort}")
private String httpPort;
@Value("${media.httpSSlPort}")
@Value("${media.httpSSlPort:}")
private String httpSSlPort;
@Value("${media.rtmpPort}")
@Value("${media.rtmpPort:}")
private String rtmpPort;
@Value("${media.rtmpSSlPort}")
@Value("${media.rtmpSSlPort:}")
private String rtmpSSlPort;
@Value("${media.rtpProxyPort}")
@Value("${media.rtpProxyPort:}")
private String rtpProxyPort;
@Value("${media.rtspPort}")
@Value("${media.rtspPort:}")
private String rtspPort;
@Value("${media.rtspSSLPort}")
@Value("${media.rtspSSLPort:}")
private String rtspSSLPort;
@Value("${media.autoConfig}")
@Value("${media.autoConfig:true}")
private boolean autoConfig;
@Value("${media.secret}")
private String secret;
@Value("${media.streamNoneReaderDelayMS}")
@Value("${media.streamNoneReaderDelayMS:18000}")
private String streamNoneReaderDelayMS;
@Value("${media.rtp.enable}")
@@ -62,14 +64,6 @@ public class MediaConfig {
this.ip = ip;
}
public String getWanIp() {
return wanIp;
}
public void setWanIp(String wanIp) {
this.wanIp = wanIp;
}
public String getHookIp() {
return hookIp;
}
@@ -185,4 +179,16 @@ public class MediaConfig {
public void setRecordAssistPort(int recordAssistPort) {
this.recordAssistPort = recordAssistPort;
}
public String getSdpIp() {
if (StringUtils.isEmpty(sdpIp)) {
return ip;
}else {
return sdpIp;
}
}
public void setSdpIp(String sdpIp) {
this.sdpIp = sdpIp;
}
}

View File

@@ -2,6 +2,8 @@ package com.genersoft.iot.vmp.conf;
import org.apache.http.HttpRequest;
import org.apache.http.HttpResponse;
import org.apache.http.client.config.RequestConfig;
import org.apache.http.impl.client.HttpClientBuilder;
import org.mitre.dsmiley.httpproxy.ProxyServlet;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -12,9 +14,14 @@ import org.springframework.context.annotation.Configuration;
import org.springframework.util.StringUtils;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.net.ConnectException;
import java.util.Locale;
import java.util.Map;
@Configuration
@@ -27,10 +34,10 @@ public class ProxyServletConfig {
@Bean
public ServletRegistrationBean zlmServletRegistrationBean(){
String ip = StringUtils.isEmpty(mediaConfig.getWanIp())? mediaConfig.getIp(): mediaConfig.getWanIp();
ServletRegistrationBean servletRegistrationBean = new ServletRegistrationBean(new ZLMProxySerlet(),"/zlm/*");
servletRegistrationBean.setName("zlm_Proxy");
servletRegistrationBean.addInitParameter("targetUri", String.format("http://%s:%s", ip, mediaConfig.getHttpPort()));
servletRegistrationBean.addInitParameter("targetUri", String.format("http://%s:%s", mediaConfig.getIp(), mediaConfig.getHttpPort()));
servletRegistrationBean.addUrlMappings();
if (logger.isDebugEnabled()) {
servletRegistrationBean.addInitParameter("log", "true");
}
@@ -38,6 +45,21 @@ public class ProxyServletConfig {
}
class ZLMProxySerlet extends ProxyServlet{
@Override
protected String rewriteQueryStringFromRequest(HttpServletRequest servletRequest, String queryString) {
String queryStr = super.rewriteQueryStringFromRequest(servletRequest, queryString);
if (queryStr != null) {
queryStr += "&";
}else {
queryStr = "?";
}
queryStr += "secret=" + mediaConfig.getSecret();
return queryStr;
}
@Override
protected void handleRequestException(HttpRequest proxyRequest, HttpResponse proxyResonse, Exception e){
System.out.println(e.getMessage());

View File

@@ -9,18 +9,32 @@ public class SipConfig {
@Value("${sip.ip}")
private String sipIp;
/**
* 默认使用sip.ip
*/
@Value("${sip.monitorIp:0.0.0.0}")
private String monitorIp;
@Value("${sip.port}")
private Integer sipPort;
@Value("${sip.domain}")
private String sipDomain;
@Value("${sip.id}")
private String sipId;
@Value("${sip.password}")
private String sipPassword;
@Value("${sip.ptz.speed:50}")
Integer speed;
public String getMonitorIp() {
return monitorIp;
}
public String getSipIp() {
return sipIp;
}

View File

@@ -5,19 +5,19 @@ import org.springframework.context.annotation.Configuration;
@Configuration("userSetup")
public class UserSetup {
@Value("${userSettings.savePositionHistory}")
@Value("${userSettings.savePositionHistory:false}")
boolean savePositionHistory;
@Value("${userSettings.autoApplyPlay}")
private boolean autoApplyPlay;
@Value("${userSettings.seniorSdp}")
@Value("${userSettings.seniorSdp:false}")
private boolean seniorSdp;
@Value("${userSettings.playTimeout}")
@Value("${userSettings.playTimeout:18000}")
private long playTimeout;
@Value("${userSettings.waitTrack}")
@Value("${userSettings.waitTrack:false}")
private boolean waitTrack;
@Value("${userSettings.interfaceAuthentication}")