From 936adf31fee0a9f66971982eae3a8002d58eb037 Mon Sep 17 00:00:00 2001
From: 648540858 <648540858@qq.com>
Date: 星期四, 02 六月 2022 09:31:06 +0800
Subject: [PATCH] Merge pull request #504 from TristingChen/fixed--reset-channel
---
src/main/java/com/genersoft/iot/vmp/gb28181/transmit/cmd/impl/SIPCommander.java | 25 +++++++++++++------------
1 files changed, 13 insertions(+), 12 deletions(-)
diff --git a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/cmd/impl/SIPCommander.java b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/cmd/impl/SIPCommander.java
index 3bab0eb..9786ea4 100644
--- a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/cmd/impl/SIPCommander.java
+++ b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/cmd/impl/SIPCommander.java
@@ -657,8 +657,11 @@
// 娣诲姞娴佹敞閿�鐨勮闃咃紝娉ㄩ攢浜嗗悗鍚戣澶囧彂閫乥ye
subscribe.addSubscribe(ZLMHttpHookSubscribe.HookType.on_stream_changed, subscribeKey,
(MediaServerItem mediaServerItemForEnd, JSONObject jsonForEnd)->{
- logger.info("[褰曞儚]涓嬭浇缁撴潫锛� 鍙戦�丅YE");
- streamByeCmd(device.getDeviceId(), channelId, ssrcInfo.getStream(), callIdHeader.getCallId());
+ ClientTransaction transaction = streamSession.getTransaction(device.getDeviceId(), channelId, ssrcInfo.getStream(), callIdHeader.getCallId());
+ if (transaction != null) {
+ logger.info("[褰曞儚]涓嬭浇缁撴潫锛� 鍙戦�丅YE");
+ streamByeCmd(device.getDeviceId(), channelId, ssrcInfo.getStream(), callIdHeader.getCallId());
+ }
});
});
@@ -705,22 +708,20 @@
}
SIPDialog dialog;
if (callId != null) {
- dialog = streamSession.getDialogByCallId(deviceId, channelId, callId);
+ dialog = streamSession.getDialogByCallId(ssrcTransaction.getDeviceId(), ssrcTransaction.getChannelId(), callId);
}else {
- if (stream == null) {
+ if (stream == null && ssrcTransaction == null && ssrcTransaction.getStream() == null) {
return;
}
- dialog = streamSession.getDialogByStream(deviceId, channelId, stream);
+ dialog = streamSession.getDialogByStream(ssrcTransaction.getDeviceId(), ssrcTransaction.getChannelId(), ssrcTransaction.getStream());
}
- if (ssrcTransaction != null) {
- MediaServerItem mediaServerItem = mediaServerService.getOne(ssrcTransaction.getMediaServerId());
- mediaServerService.releaseSsrc(mediaServerItem.getId(), ssrcTransaction.getSsrc());
- mediaServerService.closeRTPServer(deviceId, channelId, ssrcTransaction.getStream());
- streamSession.remove(deviceId, channelId, ssrcTransaction.getStream());
- }
+ MediaServerItem mediaServerItem = mediaServerService.getOne(ssrcTransaction.getMediaServerId());
+ mediaServerService.releaseSsrc(mediaServerItem.getId(), ssrcTransaction.getSsrc());
+ mediaServerService.closeRTPServer(ssrcTransaction.getDeviceId(), ssrcTransaction.getChannelId(), ssrcTransaction.getStream());
+ streamSession.remove(ssrcTransaction.getDeviceId(), ssrcTransaction.getChannelId(), ssrcTransaction.getStream());
if (dialog == null) {
- logger.warn("[ {} -> {}]鍋滄瑙嗛娴佺殑鏃跺�欏彂鐜板璇濆凡涓㈠け", deviceId, channelId);
+ logger.warn("[ {} -> {}]鍋滄瑙嗛娴佺殑鏃跺�欏彂鐜板璇濆凡涓㈠け", ssrcTransaction.getDeviceId(), ssrcTransaction.getChannelId());
return;
}
SipStack sipStack = udpSipProvider.getSipStack();
--
Gitblit v1.8.0