648540858
2022-09-22 70c20364af15fce16992fce499efc623823ce221
修复流注销时移除流认证信息
1个文件已修改
1个文件已添加
70 ■■■■ 已修改文件
src/main/java/com/genersoft/iot/vmp/gb28181/bean/SipTransactionInfo.java 53 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/genersoft/iot/vmp/media/zlm/ZLMHttpHookListener.java 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/genersoft/iot/vmp/gb28181/bean/SipTransactionInfo.java
New 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;
    }
}
src/main/java/com/genersoft/iot/vmp/media/zlm/ZLMHttpHookListener.java
@@ -417,10 +417,11 @@
        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 @@
                    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 @@
                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)){