From b3c4636520e58c27a71409c764c2017c695682c1 Mon Sep 17 00:00:00 2001
From: 648540858 <648540858@qq.com>
Date: 星期一, 20 三月 2023 14:40:17 +0800
Subject: [PATCH] 主线合并talk模式
---
src/main/java/com/genersoft/iot/vmp/gb28181/task/SipRunner.java | 26 +++++++++++++++++++++++---
1 files changed, 23 insertions(+), 3 deletions(-)
diff --git a/src/main/java/com/genersoft/iot/vmp/gb28181/task/SipRunner.java b/src/main/java/com/genersoft/iot/vmp/gb28181/task/SipRunner.java
index 451c589..9fcb9d7 100644
--- a/src/main/java/com/genersoft/iot/vmp/gb28181/task/SipRunner.java
+++ b/src/main/java/com/genersoft/iot/vmp/gb28181/task/SipRunner.java
@@ -28,7 +28,7 @@
* @author lin
*/
@Component
-@Order(value=4)
+@Order(value=14)
public class SipRunner implements CommandLineRunner {
@Autowired
@@ -69,17 +69,37 @@
// 閲嶇疆cseq璁℃暟
redisCatchStorage.resetAllCSEQ();
// 娓呯悊redis
+ // 娓呯悊鏁版嵁搴撲笉瀛樺湪浣嗘槸redis涓瓨鍦ㄧ殑鏁版嵁
+ List<Device> devicesInDb = deviceService.getAll();
+ if (devicesInDb.size() == 0) {
+ redisCatchStorage.removeAllDevice();
+ }else {
+ List<Device> devicesInRedis = redisCatchStorage.getAllDevices();
+ if (devicesInRedis.size() > 0) {
+ Map<String, Device> deviceMapInDb = new HashMap<>();
+ devicesInDb.parallelStream().forEach(device -> {
+ deviceMapInDb.put(device.getDeviceId(), device);
+ });
+ devicesInRedis.parallelStream().forEach(device -> {
+ if (deviceMapInDb.get(device.getDeviceId()) == null) {
+ redisCatchStorage.removeDevice(device.getDeviceId());
+ }
+ });
+ }
+ }
+
+
// 鏌ユ壘鍥芥爣鎺ㄦ祦
List<SendRtpItem> sendRtpItems = redisCatchStorage.queryAllSendRTPServer();
if (sendRtpItems.size() > 0) {
for (SendRtpItem sendRtpItem : sendRtpItems) {
MediaServerItem mediaServerItem = mediaServerService.getOne(sendRtpItem.getMediaServerId());
- redisCatchStorage.deleteSendRTPServer(sendRtpItem.getPlatformId(),sendRtpItem.getChannelId(), sendRtpItem.getCallId(),sendRtpItem.getStreamId());
+ redisCatchStorage.deleteSendRTPServer(sendRtpItem.getPlatformId(),sendRtpItem.getChannelId(), sendRtpItem.getCallId(),sendRtpItem.getStream());
if (mediaServerItem != null) {
Map<String, Object> param = new HashMap<>();
param.put("vhost","__defaultVhost__");
param.put("app",sendRtpItem.getApp());
- param.put("stream",sendRtpItem.getStreamId());
+ param.put("stream",sendRtpItem.getStream());
param.put("ssrc",sendRtpItem.getSsrc());
JSONObject jsonObject = zlmresTfulUtils.stopSendRtp(mediaServerItem, param);
if (jsonObject != null && jsonObject.getInteger("code") == 0) {
--
Gitblit v1.8.0