mirror of
https://gitee.com/pan648540858/wvp-GB28181-pro.git
synced 2026-05-06 06:06:08 +08:00
Merge pull request #2078 from yanyu510/docker_env
fix: docker环境下sip信令IP问题
This commit is contained in:
commit
f38f0bebdd
@ -101,6 +101,8 @@ services:
|
||||
- ./logs/wvp:/opt/wvp/logs/
|
||||
environment:
|
||||
TZ: "Asia/Shanghai"
|
||||
# docker env
|
||||
RUN_ENV: "docker"
|
||||
# 流链接的IP
|
||||
Stream_IP: ${Stream_IP}
|
||||
# SDP里的IP
|
||||
|
||||
@ -5,6 +5,7 @@ import com.genersoft.iot.vmp.conf.UserSetting;
|
||||
import com.genersoft.iot.vmp.gb28181.bean.GbStringMsgParserFactory;
|
||||
import com.genersoft.iot.vmp.gb28181.conf.DefaultProperties;
|
||||
import com.genersoft.iot.vmp.gb28181.transmit.ISIPProcessorObserver;
|
||||
import com.genersoft.iot.vmp.utils.EnvUtil;
|
||||
import gov.nist.javax.sip.SipProviderImpl;
|
||||
import gov.nist.javax.sip.SipStackImpl;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
@ -174,6 +175,9 @@ public class SipLayer implements CommandLineRunner {
|
||||
}
|
||||
|
||||
public String getLocalIp(String deviceLocalIp) {
|
||||
if(EnvUtil.isDockerEnv()){
|
||||
return sipConfig.getShowIp();
|
||||
}
|
||||
if (monitorIps.size() == 1) {
|
||||
return monitorIps.get(0);
|
||||
}
|
||||
|
||||
@ -6,6 +6,7 @@ import com.genersoft.iot.vmp.gb28181.bean.Device;
|
||||
import com.genersoft.iot.vmp.gb28181.bean.SipTransactionInfo;
|
||||
import com.genersoft.iot.vmp.gb28181.utils.SipUtils;
|
||||
import com.genersoft.iot.vmp.storager.IRedisCatchStorage;
|
||||
import com.genersoft.iot.vmp.utils.EnvUtil;
|
||||
import com.genersoft.iot.vmp.utils.GitUtil;
|
||||
import com.genersoft.iot.vmp.utils.IpPortUtil;
|
||||
import gov.nist.javax.sip.message.SIPRequest;
|
||||
@ -334,6 +335,9 @@ public class SIPRequestHeaderProvider {
|
||||
public Request createAckRequest(String localIp, SipURI sipURI, SIPResponse sipResponse) throws ParseException, InvalidArgumentException, PeerUnavailableException {
|
||||
|
||||
|
||||
if(EnvUtil.isDockerEnv()){
|
||||
localIp = sipLayer.getLocalIp(localIp);
|
||||
}
|
||||
// via
|
||||
ArrayList<ViaHeader> viaHeaders = new ArrayList<ViaHeader>();
|
||||
ViaHeader viaHeader = SipFactory.getInstance().createHeaderFactory().createViaHeader(localIp, sipConfig.getPort(), sipResponse.getTopmostViaHeader().getTransport(), SipUtils.getNewViaTag());
|
||||
|
||||
8
src/main/java/com/genersoft/iot/vmp/utils/EnvUtil.java
Normal file
8
src/main/java/com/genersoft/iot/vmp/utils/EnvUtil.java
Normal file
@ -0,0 +1,8 @@
|
||||
package com.genersoft.iot.vmp.utils;
|
||||
|
||||
public class EnvUtil {
|
||||
|
||||
public static boolean isDockerEnv() {
|
||||
return "docker".equals(System.getenv("RUN_ENV"));
|
||||
}
|
||||
}
|
||||
@ -101,6 +101,7 @@ sip:
|
||||
# 请不要使用127.0.0.1,任何包括localhost在内的域名都是不可以的。
|
||||
ip: 0.0.0.0
|
||||
# [可选] 没有任何业务需求,仅仅是在前端展示的时候用
|
||||
# [docker环境下必选] 在docker环境中运行时,此配置为sip对外的ip地址, 必须配置,否则无法正常使用
|
||||
show-ip: 192.168.0.100
|
||||
# [可选] 28181服务监听的端口
|
||||
port: 5060
|
||||
|
||||
Loading…
Reference in New Issue
Block a user