diff --git a/src/main/java/com/genersoft/iot/vmp/conf/UserSetting.java b/src/main/java/com/genersoft/iot/vmp/conf/UserSetting.java index 55bf371e3..4ac6fb92e 100644 --- a/src/main/java/com/genersoft/iot/vmp/conf/UserSetting.java +++ b/src/main/java/com/genersoft/iot/vmp/conf/UserSetting.java @@ -5,7 +5,9 @@ import org.springframework.core.annotation.Order; import org.springframework.stereotype.Component; import java.util.ArrayList; +import java.util.LinkedHashMap; import java.util.List; +import java.util.Map; /** * 配置文件 user-settings 映射的配置信息 @@ -74,6 +76,8 @@ public class UserSetting { private boolean registerKeepIntDialog = false; + private Map sipProperties = new LinkedHashMap<>(); + public Boolean getSavePositionHistory() { return savePositionHistory; } @@ -325,4 +329,12 @@ public class UserSetting { public void setRegisterKeepIntDialog(boolean registerKeepIntDialog) { this.registerKeepIntDialog = registerKeepIntDialog; } + + public Map getSipProperties() { + return sipProperties; + } + + public void setSipProperties(Map sipProperties) { + this.sipProperties = sipProperties; + } } diff --git a/src/main/java/com/genersoft/iot/vmp/gb28181/SipLayer.java b/src/main/java/com/genersoft/iot/vmp/gb28181/SipLayer.java index 90b5291e8..7b6b7fce0 100644 --- a/src/main/java/com/genersoft/iot/vmp/gb28181/SipLayer.java +++ b/src/main/java/com/genersoft/iot/vmp/gb28181/SipLayer.java @@ -63,7 +63,7 @@ public class SipLayer implements CommandLineRunner { private void addListeningPoint(String monitorIp, int port){ SipStackImpl sipStack; try { - sipStack = (SipStackImpl)SipFactory.getInstance().createSipStack(DefaultProperties.getProperties(monitorIp, userSetting.getSipLog())); + sipStack = (SipStackImpl)SipFactory.getInstance().createSipStack(DefaultProperties.getProperties(monitorIp, userSetting)); sipStack.setMessageParserFactory(new GbStringMsgParserFactory()); } catch (PeerUnavailableException e) { logger.error("[SIP SERVER] SIP服务启动失败, 监听地址{}失败,请检查ip是否正确", monitorIp); diff --git a/src/main/java/com/genersoft/iot/vmp/gb28181/conf/DefaultProperties.java b/src/main/java/com/genersoft/iot/vmp/gb28181/conf/DefaultProperties.java index 18ccaf410..547539538 100644 --- a/src/main/java/com/genersoft/iot/vmp/gb28181/conf/DefaultProperties.java +++ b/src/main/java/com/genersoft/iot/vmp/gb28181/conf/DefaultProperties.java @@ -1,5 +1,6 @@ package com.genersoft.iot.vmp.gb28181.conf; +import com.genersoft.iot.vmp.conf.UserSetting; import com.genersoft.iot.vmp.gb28181.transmit.event.request.impl.message.notify.cmd.AlarmNotifyMessageHandler; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -12,7 +13,7 @@ import java.util.Properties; */ public class DefaultProperties { - public static Properties getProperties(String ip, boolean sipLog) { + public static Properties getProperties(String ip, UserSetting userSetting) { Properties properties = new Properties(); properties.setProperty("javax.sip.STACK_NAME", "GB28181_SIP"); properties.setProperty("javax.sip.IP_ADDRESS", ip); @@ -48,7 +49,7 @@ public class DefaultProperties { * sip_server_log.log 和 sip_debug_log.log ERROR, INFO, WARNING, OFF, DEBUG, TRACE */ Logger logger = LoggerFactory.getLogger(AlarmNotifyMessageHandler.class); - if (sipLog) { + if (userSetting.getSipLog()) { properties.setProperty("gov.nist.javax.sip.STACK_LOGGER", "com.genersoft.iot.vmp.gb28181.conf.StackLoggerImpl"); properties.setProperty("gov.nist.javax.sip.SERVER_LOGGER", "com.genersoft.iot.vmp.gb28181.conf.ServerLoggerImpl"); properties.setProperty("gov.nist.javax.sip.LOG_MESSAGE_CONTENT", "true"); @@ -56,6 +57,10 @@ public class DefaultProperties { }else { logger.info("[SIP日志]已关闭"); } + + // 添加自定义属性 + userSetting.getSipProperties().forEach(properties::setProperty); + return properties; } } diff --git a/src/main/resources/all-application.yml b/src/main/resources/all-application.yml index ef247f7fc..5388a3bc7 100644 --- a/src/main/resources/all-application.yml +++ b/src/main/resources/all-application.yml @@ -214,6 +214,9 @@ user-settings: allowed-origins: - http://localhost:8008 - http://192.168.1.3:8008 + # 自定义gov.nist sip配置 + sip-properties: + gov.nist.javax.sip.MESSAGE_PROCESSOR_FACTORY: gov.nist.javax.sip.stack.NioMessageProcessorFactory # 关闭在线文档(生产环境建议关闭) springdoc: