修复流注销时移除流认证信息

pull/620/head
648540858 2022-09-22 14:10:26 +08:00
parent 1abfced3b4
commit 70c20364af
2 changed files with 60 additions and 10 deletions

View File

@ -0,0 +1,53 @@
package com.genersoft.iot.vmp.gb28181.bean;
import gov.nist.javax.sip.message.SIPRequest;
public class SipTransactionInfo {
private String callId;
private String fromTag;
private String toTag;
private String viaBranch;
public SipTransactionInfo(SIPRequest request) {
this.callId = request.getCallIdHeader().getCallId();
this.fromTag = request.getFromTag();
this.toTag = request.getToTag();
this.viaBranch = request.getTopmostViaHeader().getBranch();
}
public SipTransactionInfo() {
}
public String getCallId() {
return callId;
}
public void setCallId(String callId) {
this.callId = callId;
}
public String getFromTag() {
return fromTag;
}
public void setFromTag(String fromTag) {
this.fromTag = fromTag;
}
public String getToTag() {
return toTag;
}
public void setToTag(String toTag) {
this.toTag = toTag;
}
public String getViaBranch() {
return viaBranch;
}
public void setViaBranch(String viaBranch) {
this.viaBranch = viaBranch;
}
}

View File

@ -417,10 +417,11 @@ public class ZLMHttpHookListener {
String schema = item.getSchema();
List<MediaItem.MediaTrack> tracks = item.getTracks();
boolean regist = item.isRegist();
if (item.getOriginType() == OriginType.RTMP_PUSH.ordinal()
|| item.getOriginType() == OriginType.RTSP_PUSH.ordinal()
|| item.getOriginType() == OriginType.RTC_PUSH.ordinal()) {
if (regist) {
if (regist) {
if (item.getOriginType() == OriginType.RTMP_PUSH.ordinal()
|| item.getOriginType() == OriginType.RTSP_PUSH.ordinal()
|| item.getOriginType() == OriginType.RTC_PUSH.ordinal()) {
StreamAuthorityInfo streamAuthorityInfo = redisCatchStorage.getStreamAuthorityInfo(app, stream);
if (streamAuthorityInfo == null) {
streamAuthorityInfo = StreamAuthorityInfo.getInstanceByHook(item);
@ -429,9 +430,9 @@ public class ZLMHttpHookListener {
streamAuthorityInfo.setOriginTypeStr(item.getOriginTypeStr());
}
redisCatchStorage.updateStreamAuthorityInfo(app, stream, streamAuthorityInfo);
}else {
redisCatchStorage.removeStreamAuthorityInfo(app, stream);
}
}else {
redisCatchStorage.removeStreamAuthorityInfo(app, stream);
}
if ("rtsp".equals(schema)){
@ -451,16 +452,12 @@ public class ZLMHttpHookListener {
if (streamInfo!=null){
redisCatchStorage.stopPlay(streamInfo);
storager.stopPlay(streamInfo.getDeviceID(), streamInfo.getChannelId());
// 如果正在给上级推送则发送bye
}else{
streamInfo = redisCatchStorage.queryPlayback(null, null, stream, null);
if (streamInfo != null) {
redisCatchStorage.stopPlayback(streamInfo.getDeviceID(), streamInfo.getChannelId(),
streamInfo.getStream(), null);
}
// 如果正在给上级推送则发送bye
}
}else {
if (!"rtp".equals(app)){