pom.xml
@@ -263,14 +263,16 @@ </configuration> </plugin> <!-- <plugin> <plugin> <groupId>pl.project13.maven</groupId> <artifactId>git-commit-id-plugin</artifactId> <version>3.0.1</version> <configuration> <offline>true</offline> <failOnNoGitDirectory>false</failOnNoGitDirectory> <dateFormat>yyyyMMdd</dateFormat> </configuration> </plugin>--> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> src/main/java/com/genersoft/iot/vmp/VManageBootstrap.java
@@ -3,6 +3,12 @@ import java.util.logging.LogManager; import com.genersoft.iot.vmp.conf.druid.EnableDruidSupport; import com.genersoft.iot.vmp.storager.impl.RedisCatchStorageImpl; import com.genersoft.iot.vmp.utils.GitUtil; import com.genersoft.iot.vmp.utils.SpringBeanFactory; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.web.servlet.ServletComponentScan; @@ -17,11 +23,18 @@ @EnableScheduling @EnableDruidSupport public class VManageBootstrap extends LogManager { private final static Logger logger = LoggerFactory.getLogger(VManageBootstrap.class); private static String[] args; private static ConfigurableApplicationContext context; public static void main(String[] args) { VManageBootstrap.args = args; VManageBootstrap.context = SpringApplication.run(VManageBootstrap.class, args); GitUtil gitUtil1 = SpringBeanFactory.getBean("gitUtil"); logger.info("构建版本: {}", gitUtil1.getBuildVersion()); logger.info("构建时间: {}", gitUtil1.getBuildDate()); logger.info("GIT最后提交时间: {}", gitUtil1.getCommitTime()); } // 项目重启 public static void restart() { src/main/java/com/genersoft/iot/vmp/gb28181/transmit/cmd/SIPRequestHeaderPlarformProvider.java
@@ -4,6 +4,7 @@ import com.genersoft.iot.vmp.gb28181.bean.ParentPlatform; import com.genersoft.iot.vmp.gb28181.utils.SipUtils; import com.genersoft.iot.vmp.storager.IRedisCatchStorage; import com.genersoft.iot.vmp.utils.GitUtil; import gov.nist.javax.sip.message.MessageFactoryImpl; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; @@ -33,6 +34,9 @@ @Autowired private SipFactory sipFactory; @Autowired private GitUtil gitUtil; @Autowired private IRedisCatchStorage redisCatchStorage; @@ -72,8 +76,7 @@ ExpiresHeader expires = sipFactory.createHeaderFactory().createExpiresHeader(isRegister ? platform.getExpires() : 0); request.addHeader(expires); UserAgentHeader userAgentHeader = SipUtils.createUserAgentHeader(sipFactory); request.addHeader(userAgentHeader); request.addHeader(SipUtils.createUserAgentHeader(sipFactory, gitUtil)); return request; } @@ -183,6 +186,8 @@ request = messageFactory.createRequest(requestURI, Request.MESSAGE, callIdHeader, cSeqHeader, fromHeader, toHeader, viaHeaders, maxForwards); request.addHeader(SipUtils.createUserAgentHeader(sipFactory, gitUtil)); ContentTypeHeader contentTypeHeader = sipFactory.createHeaderFactory().createContentTypeHeader("Application", "MANSCDP+xml"); request.setContent(content, contentTypeHeader); return request; src/main/java/com/genersoft/iot/vmp/gb28181/transmit/cmd/SIPRequestHeaderProvider.java
@@ -13,6 +13,7 @@ import com.genersoft.iot.vmp.gb28181.session.VideoStreamSessionManager; import com.genersoft.iot.vmp.gb28181.utils.SipUtils; import com.genersoft.iot.vmp.storager.IRedisCatchStorage; import com.genersoft.iot.vmp.utils.GitUtil; import gov.nist.javax.sip.SipProviderImpl; import gov.nist.javax.sip.SipStackImpl; import gov.nist.javax.sip.stack.SIPDialog; @@ -36,6 +37,9 @@ @Autowired private SipFactory sipFactory; @Autowired private GitUtil gitUtil; @Autowired private IRedisCatchStorage redisCatchStorage; @@ -76,6 +80,9 @@ request = sipFactory.createMessageFactory().createRequest(requestURI, Request.MESSAGE, callIdHeader, cSeqHeader, fromHeader, toHeader, viaHeaders, maxForwards); request.addHeader(SipUtils.createUserAgentHeader(sipFactory, gitUtil)); ContentTypeHeader contentTypeHeader = sipFactory.createHeaderFactory().createContentTypeHeader("Application", "MANSCDP+xml"); request.setContent(content, contentTypeHeader); return request; @@ -106,7 +113,9 @@ //ceq CSeqHeader cSeqHeader = sipFactory.createHeaderFactory().createCSeqHeader(redisCatchStorage.getCSEQ(), Request.INVITE); request = sipFactory.createMessageFactory().createRequest(requestLine, Request.INVITE, callIdHeader, cSeqHeader,fromHeader, toHeader, viaHeaders, maxForwards); request.addHeader(SipUtils.createUserAgentHeader(sipFactory, gitUtil)); Address concatAddress = sipFactory.createAddressFactory().createAddress(sipFactory.createAddressFactory().createSipURI(sipConfig.getId(), sipConfig.getIp()+":"+sipConfig.getPort())); // Address concatAddress = sipFactory.createAddressFactory().createAddress(sipFactory.createAddressFactory().createSipURI(sipConfig.getId(), device.getHost().getIp()+":"+device.getHost().getPort())); request.addHeader(sipFactory.createHeaderFactory().createContactHeader(concatAddress)); @@ -146,6 +155,9 @@ Address concatAddress = sipFactory.createAddressFactory().createAddress(sipFactory.createAddressFactory().createSipURI(sipConfig.getId(), sipConfig.getIp()+":"+sipConfig.getPort())); // Address concatAddress = sipFactory.createAddressFactory().createAddress(sipFactory.createAddressFactory().createSipURI(sipConfig.getId(), device.getHost().getIp()+":"+device.getHost().getPort())); request.addHeader(sipFactory.createHeaderFactory().createContactHeader(concatAddress)); request.addHeader(SipUtils.createUserAgentHeader(sipFactory, gitUtil)); // Subject SubjectHeader subjectHeader = sipFactory.createHeaderFactory().createSubjectHeader(String.format("%s:%s,%s:%s", channelId, ssrc, sipConfig.getId(), 0)); request.addHeader(subjectHeader); @@ -179,6 +191,8 @@ CSeqHeader cSeqHeader = sipFactory.createHeaderFactory().createCSeqHeader(redisCatchStorage.getCSEQ(), Request.BYE); CallIdHeader callIdHeader = sipFactory.createHeaderFactory().createCallIdHeader(callId); request = sipFactory.createMessageFactory().createRequest(requestLine, Request.BYE, callIdHeader, cSeqHeader,fromHeader, toHeader, viaHeaders, maxForwards); request.addHeader(SipUtils.createUserAgentHeader(sipFactory, gitUtil)); Address concatAddress = sipFactory.createAddressFactory().createAddress(sipFactory.createAddressFactory().createSipURI(sipConfig.getId(), sipConfig.getIp()+":"+sipConfig.getPort())); @@ -230,6 +244,9 @@ ContentTypeHeader contentTypeHeader = sipFactory.createHeaderFactory().createContentTypeHeader("Application", "MANSCDP+xml"); request.setContent(content, contentTypeHeader); request.addHeader(SipUtils.createUserAgentHeader(sipFactory, gitUtil)); return request; } @@ -264,8 +281,7 @@ Address concatAddress = sipFactory.createAddressFactory().createAddress(sipFactory.createAddressFactory() .createSipURI(sipConfig.getId(), sipConfig.getIp() + ":" + sipConfig.getPort())); infoRequest.addHeader(sipFactory.createHeaderFactory().createContactHeader(concatAddress)); UserAgentHeader userAgentHeader = SipUtils.createUserAgentHeader(sipFactory); infoRequest.addHeader(userAgentHeader); infoRequest.addHeader(SipUtils.createUserAgentHeader(sipFactory, gitUtil)); ContentTypeHeader contentTypeHeader = sipFactory.createHeaderFactory().createContentTypeHeader("Application", "MANSRTSP"); src/main/java/com/genersoft/iot/vmp/gb28181/transmit/cmd/impl/SIPCommander.java
@@ -21,6 +21,7 @@ import com.genersoft.iot.vmp.service.bean.SSRCInfo; import com.genersoft.iot.vmp.storager.IRedisCatchStorage; import com.genersoft.iot.vmp.storager.IVideoManagerStorage; import com.genersoft.iot.vmp.utils.GitUtil; import gov.nist.javax.sip.SipProviderImpl; import gov.nist.javax.sip.SipStackImpl; import gov.nist.javax.sip.message.MessageFactoryImpl; @@ -59,6 +60,9 @@ @Autowired private SipFactory sipFactory; @Autowired private GitUtil gitUtil; @Autowired @Qualifier(value="tcpSipProvider") @@ -727,7 +731,7 @@ // 增加Contact header Address concatAddress = sipFactory.createAddressFactory().createAddress(sipFactory.createAddressFactory().createSipURI(sipConfig.getId(), sipConfig.getIp()+":"+sipConfig.getPort())); byeRequest.addHeader(sipFactory.createHeaderFactory().createContactHeader(concatAddress)); UserAgentHeader userAgentHeader = SipUtils.createUserAgentHeader(sipFactory); UserAgentHeader userAgentHeader = SipUtils.createUserAgentHeader(sipFactory, gitUtil); byeRequest.addHeader(userAgentHeader); ClientTransaction clientTransaction = null; if("TCP".equals(protocol)) { @@ -1618,7 +1622,7 @@ if (request.getHeader(UserAgentHeader.NAME) == null) { UserAgentHeader userAgentHeader = null; try { userAgentHeader = SipUtils.createUserAgentHeader(sipFactory); userAgentHeader = SipUtils.createUserAgentHeader(sipFactory, gitUtil); } catch (ParseException e) { logger.error("添加UserAgentHeader失败", e); } src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/response/impl/InviteResponseProcessor.java
@@ -5,6 +5,7 @@ import com.genersoft.iot.vmp.gb28181.transmit.SIPProcessorObserver; import com.genersoft.iot.vmp.gb28181.transmit.event.response.SIPResponseProcessorAbstract; import com.genersoft.iot.vmp.gb28181.utils.SipUtils; import com.genersoft.iot.vmp.utils.GitUtil; import gov.nist.javax.sip.ResponseEventExt; import gov.nist.javax.sip.stack.SIPDialog; import org.slf4j.Logger; @@ -47,6 +48,9 @@ @Autowired private SipFactory sipFactory; @Autowired private GitUtil gitUtil; @Override public void afterPropertiesSet() throws Exception { @@ -98,7 +102,7 @@ } requestURI.setPort(event.getRemotePort()); reqAck.setRequestURI(requestURI); UserAgentHeader userAgentHeader = SipUtils.createUserAgentHeader(sipFactory); UserAgentHeader userAgentHeader = SipUtils.createUserAgentHeader(sipFactory, gitUtil); reqAck.addHeader(userAgentHeader); Address concatAddress = sipFactory.createAddressFactory().createAddress(sipFactory.createAddressFactory().createSipURI(sipConfig.getId(), sipConfig.getIp()+":"+sipConfig.getPort())); reqAck.addHeader(sipFactory.createHeaderFactory().createContactHeader(concatAddress)); src/main/java/com/genersoft/iot/vmp/gb28181/utils/SipUtils.java
@@ -1,5 +1,6 @@ package com.genersoft.iot.vmp.gb28181.utils; import com.genersoft.iot.vmp.utils.GitUtil; import gov.nist.javax.sip.address.AddressImpl; import gov.nist.javax.sip.address.SipUri; import gov.nist.javax.sip.header.Subject; @@ -49,10 +50,13 @@ return "z9hG4bK" + System.currentTimeMillis(); } public static UserAgentHeader createUserAgentHeader(SipFactory sipFactory) throws PeerUnavailableException, ParseException { public static UserAgentHeader createUserAgentHeader(SipFactory sipFactory, GitUtil gitUtil) throws PeerUnavailableException, ParseException { List<String> agentParam = new ArrayList<>(); agentParam.add("WVP PRO"); // TODO 添加版本信息以及日期 agentParam.add("WVP-Pro v"); if (gitUtil != null && gitUtil.getCommitTime() != null) { agentParam.add(gitUtil.getBuildVersion() + "."); agentParam.add(gitUtil.getCommitTime()); } return sipFactory.createHeaderFactory().createUserAgentHeader(agentParam); } src/main/java/com/genersoft/iot/vmp/utils/GitUtil.java
@@ -19,8 +19,15 @@ private String gitUrl; @Value("${git.build.time:null}") private String buildDate; @Value("${git.build.version:null}") private String buildVersion; @Value("${git.commit.id.abbrev:null}") private String commitIdShort; @Value("${git.commit.time:null}") private String commitTime; public String getGitCommitId() { return gitCommitId; @@ -41,4 +48,12 @@ public String getCommitIdShort() { return commitIdShort; } public String getBuildVersion() { return buildVersion; } public String getCommitTime() { return commitTime; } } src/main/resources/all-application.yml
@@ -195,9 +195,3 @@ enabled: false swagger-ui: enabled: false # 版本信息, 不需修改 version: version: "@project.version@" description: "@project.description@" artifact-id: "@project.artifactId@" src/main/resources/application-dev.yml
@@ -84,9 +84,3 @@ # [可选] 日志配置, 一般不需要改 logging: config: classpath:logback-spring-local.xml # 版本信息, 不需修改 version: version: "@project.version@" description: "@project.description@" artifact-id: "@project.artifactId@" src/main/resources/application-docker.yml
@@ -78,10 +78,3 @@ # 推流直播是否录制 record-push-live: true auto-apply-play: true # 版本信息, 不需修改 version: version: "@project.version@" description: "@project.description@" artifact-id: "@project.artifactId@" src/main/resources/banner.txt
@@ -5,5 +5,3 @@ \ \ \|\__\_\ \ \ / / \ \ \___\|____________|\ \ \___|\ \ \\ \\ \ \\\ \ \ \____________\ \__/ / \ \__\ \ \__\ \ \__\\ _\\ \_______\ \|____________|\|__|/ \|__| \|__| \|__|\|__|\|_______| 版本:${version.version}