From fc7f1b3459d9c65a37cae25bc254a6a3d62cc6db Mon Sep 17 00:00:00 2001 From: xubinbin <1323875150@qq.com> Date: 星期五, 23 九月 2022 10:55:42 +0800 Subject: [PATCH] 处理上级平台发送的invite请求不携带“y=”sdp信息时,使用默认“y=0000000000”视频无法播放的问题。 --- src/main/java/com/genersoft/iot/vmp/gb28181/utils/SipUtils.java | 38 +++++++++++++++++++++++++++++++++++++- 1 files changed, 37 insertions(+), 1 deletions(-) diff --git a/src/main/java/com/genersoft/iot/vmp/gb28181/utils/SipUtils.java b/src/main/java/com/genersoft/iot/vmp/gb28181/utils/SipUtils.java index 8025818..cf64a86 100644 --- a/src/main/java/com/genersoft/iot/vmp/gb28181/utils/SipUtils.java +++ b/src/main/java/com/genersoft/iot/vmp/gb28181/utils/SipUtils.java @@ -1,12 +1,20 @@ 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; +import javax.sip.PeerUnavailableException; +import javax.sip.SipFactory; import javax.sip.header.FromHeader; import javax.sip.header.Header; +import javax.sip.header.UserAgentHeader; import javax.sip.message.Request; +import java.text.ParseException; +import java.util.ArrayList; +import java.util.List; +import java.util.UUID; /** * @author panlinlin @@ -23,8 +31,12 @@ /** * 浠巗ubject璇诲彇channelId * */ - public static String getChannelIdFromHeader(Request request) { + public static String getChannelIdFromRequest(Request request) { Header subject = request.getHeader("subject"); + if (subject == null) { + // 濡傛灉缂哄けsubject + return null; + } return ((Subject) subject).getSubject().split(":")[0]; } @@ -34,4 +46,28 @@ return uri.getUser(); } + public static String getNewViaTag() { + return "z9hG4bK" + System.currentTimeMillis(); + } + + public static UserAgentHeader createUserAgentHeader(SipFactory sipFactory, GitUtil gitUtil) throws PeerUnavailableException, ParseException { + List<String> agentParam = new ArrayList<>(); + agentParam.add("WVP-Pro v"); + if (gitUtil != null && gitUtil.getCommitTime() != null) { + agentParam.add(gitUtil.getBuildVersion() + "."); + agentParam.add(gitUtil.getCommitTime()); + } + return sipFactory.createHeaderFactory().createUserAgentHeader(agentParam); + } + + public static String getNewFromTag(){ + return UUID.randomUUID().toString().replace("-", ""); + +// return getNewTag(); + } + + public static String getNewTag(){ + return String.valueOf(System.currentTimeMillis()); + } + } -- Gitblit v1.8.0