From ed2680bf032f76fde675897f7468f64e8b8d5a5e Mon Sep 17 00:00:00 2001
From: chenjialing <595168663@qq.com>
Date: 星期三, 01 六月 2022 14:11:06 +0800
Subject: [PATCH] 修复--重设通道多个设备注册下发生的sql错误修复
---
src/main/java/com/genersoft/iot/vmp/gb28181/transmit/cmd/impl/SIPCommander.java | 19 +++++++++++--------
1 files changed, 11 insertions(+), 8 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..f51437d 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,22 @@
}
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());
+ 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