From 0c1860368cc8dfbb0fbf80d91355193e3c69eed3 Mon Sep 17 00:00:00 2001 From: zxb <919411476@qq.com> Date: Fri, 13 Oct 2023 10:47:39 +0800 Subject: [PATCH] =?UTF-8?q?MediaStatus=20=E6=9C=AA=E6=89=BE=E5=88=B0?= =?UTF-8?q?=E5=AF=B9=E5=BA=94=E4=BF=A1=E6=81=AF=E6=97=B6=20=E4=BE=9D?= =?UTF-8?q?=E7=84=B6=E9=9C=80=E8=A6=81=E5=90=91=E5=8F=91=E9=80=81=20bye=20?= =?UTF-8?q?=E7=BB=93=E6=9D=9F=20=E9=98=B2=E6=AD=A2=E6=9F=90=E4=BA=9B?= =?UTF-8?q?=E8=AE=BE=E5=A4=87=E6=9C=AA=E6=94=B6=E5=88=B0bye=20=E4=B8=8D?= =?UTF-8?q?=E4=BC=9A=E8=87=AA=E5=8A=A8=E7=BB=93=E6=9D=9F=E4=B8=80=E7=9B=B4?= =?UTF-8?q?=E5=8D=A1=E6=AD=BB=20=E6=97=A0=E6=B3=95=E5=90=8E=E7=BB=AD?= =?UTF-8?q?=E7=82=B9=E6=92=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../cmd/MediaStatusNotifyMessageHandler.java | 20 +++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/message/notify/cmd/MediaStatusNotifyMessageHandler.java b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/message/notify/cmd/MediaStatusNotifyMessageHandler.java index fdcd5e4b..89c77f62 100755 --- a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/message/notify/cmd/MediaStatusNotifyMessageHandler.java +++ b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/message/notify/cmd/MediaStatusNotifyMessageHandler.java @@ -124,6 +124,26 @@ public class MediaStatusNotifyMessageHandler extends SIPRequestProcessorParent i } } }else { + try { + cmder.streamByeCmd(device, getText(rootElement, "DeviceID"), null, callIdHeader.getCallId()); + } catch (InvalidArgumentException | ParseException | SsrcTransactionNotFoundException | SipException e) { + logger.error("[录像流]推送完毕,收到关流通知, 发送BYE失败 {}", e.getMessage()); + } + + // 如果级联播放,需要给上级发送此通知 TODO 多个上级同时观看一个下级 可能存在停错的问题,需要将点播CallId进行上下级绑定 + SendRtpItem sendRtpItem = redisCatchStorage.querySendRTPServer(null, getText(rootElement, "DeviceID"), null, null); + if (sendRtpItem != null) { + ParentPlatform parentPlatform = storage.queryParentPlatByServerGBId(sendRtpItem.getPlatformId()); + if (parentPlatform == null) { + logger.warn("[级联消息发送]:发送MediaStatus发现上级平台{}不存在", sendRtpItem.getPlatformId()); + return; + } + try { + sipCommanderFroPlatform.sendMediaStatusNotify(parentPlatform, sendRtpItem); + } catch (SipException | InvalidArgumentException | ParseException e) { + logger.error("[命令发送失败] 国标级联 录像播放完毕: {}", e.getMessage()); + } + } logger.info("[录像流]推送完毕,关流通知, 但是未找到对应的下载信息"); } }