From 983c7c351f3790d0effe2894ce435552ff0f2feb Mon Sep 17 00:00:00 2001
From: 648540858 <648540858@qq.com>
Date: 星期四, 17 八月 2023 14:20:04 +0800
Subject: [PATCH] 优化对讲释放流程
---
src/main/java/com/genersoft/iot/vmp/service/impl/DeviceServiceImpl.java | 42 +++++++++++++++++++++++++++++++++++++++---
1 files changed, 39 insertions(+), 3 deletions(-)
diff --git a/src/main/java/com/genersoft/iot/vmp/service/impl/DeviceServiceImpl.java b/src/main/java/com/genersoft/iot/vmp/service/impl/DeviceServiceImpl.java
index 6e748f4..5192d1d 100644
--- a/src/main/java/com/genersoft/iot/vmp/service/impl/DeviceServiceImpl.java
+++ b/src/main/java/com/genersoft/iot/vmp/service/impl/DeviceServiceImpl.java
@@ -5,6 +5,7 @@
import com.genersoft.iot.vmp.conf.UserSetting;
import com.genersoft.iot.vmp.conf.exception.SsrcTransactionNotFoundException;
import com.genersoft.iot.vmp.gb28181.bean.*;
+import com.genersoft.iot.vmp.gb28181.session.AudioBroadcastManager;
import com.genersoft.iot.vmp.gb28181.session.VideoStreamSessionManager;
import com.genersoft.iot.vmp.gb28181.task.ISubscribeTask;
import com.genersoft.iot.vmp.gb28181.task.impl.CatalogSubscribeTask;
@@ -12,6 +13,8 @@
import com.genersoft.iot.vmp.gb28181.transmit.cmd.ISIPCommander;
import com.genersoft.iot.vmp.gb28181.transmit.cmd.impl.SIPCommander;
import com.genersoft.iot.vmp.gb28181.transmit.event.request.impl.message.response.cmd.CatalogResponseMessageHandler;
+import com.genersoft.iot.vmp.media.zlm.ZLMRESTfulUtils;
+import com.genersoft.iot.vmp.media.zlm.dto.MediaServerItem;
import com.genersoft.iot.vmp.service.IDeviceChannelService;
import com.genersoft.iot.vmp.service.IDeviceService;
import com.genersoft.iot.vmp.service.IInviteStreamService;
@@ -36,9 +39,7 @@
import javax.sip.SipException;
import java.text.ParseException;
import java.time.Instant;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.List;
+import java.util.*;
import java.util.concurrent.TimeUnit;
/**
@@ -95,6 +96,12 @@
@Autowired
private IMediaServerService mediaServerService;
+
+ @Autowired
+ private AudioBroadcastManager audioBroadcastManager;
+
+ @Autowired
+ private ZLMRESTfulUtils zlmresTfulUtils;
@Override
public void online(Device device, SipTransactionInfo sipTransactionInfo) {
@@ -183,6 +190,17 @@
redisCatchStorage.sendDeviceOrChannelStatus(device.getDeviceId(), null, true);
}
+//
+// try {
+// cmder.alarmSubscribe(device, 600, "0", "4", "0", "2023-7-27T00:00:00", "2023-7-28T00:00:00");
+// } catch (InvalidArgumentException e) {
+// throw new RuntimeException(e);
+// } catch (SipException e) {
+// throw new RuntimeException(e);
+// } catch (ParseException e) {
+// throw new RuntimeException(e);
+// }
+
}
@Override
@@ -216,6 +234,24 @@
redisCatchStorage.sendDeviceOrChannelStatus(device.getDeviceId(), null, false);
}
+ List<AudioBroadcastCatch> audioBroadcastCatches = audioBroadcastManager.get(deviceId);
+ if (audioBroadcastCatches.size() > 0) {
+ for (AudioBroadcastCatch audioBroadcastCatch : audioBroadcastCatches) {
+
+ SendRtpItem sendRtpItem = redisCatchStorage.querySendRTPServer(deviceId, audioBroadcastCatch.getChannelId(), null, null);
+ if (sendRtpItem != null) {
+ redisCatchStorage.deleteSendRTPServer(deviceId, sendRtpItem.getChannelId(), null, null);
+ MediaServerItem mediaInfo = mediaServerService.getOne(sendRtpItem.getMediaServerId());
+ Map<String, Object> param = new HashMap<>();
+ param.put("vhost", "__defaultVhost__");
+ param.put("app", sendRtpItem.getApp());
+ param.put("stream", sendRtpItem.getStream());
+ zlmresTfulUtils.stopSendRtp(mediaInfo, param);
+ }
+
+ audioBroadcastManager.del(deviceId, audioBroadcastCatch.getChannelId());
+ }
+ }
}
@Override
--
Gitblit v1.8.0