From 383081f244c77e75f0340fe242a65ce2580ca15d Mon Sep 17 00:00:00 2001
From: lin <648540858@qq.com>
Date: Tue, 31 Mar 2026 11:22:05 +0800
Subject: [PATCH] =?UTF-8?q?=E8=B0=83=E6=95=B4=E8=AE=A2=E9=98=85=E5=91=A8?=
=?UTF-8?q?=E6=9C=9F=E5=A4=84=E7=90=86=E5=92=8C=E4=BB=BB=E5=8A=A1=E5=88=9B?=
=?UTF-8?q?=E5=BB=BA=E9=80=BB=E8=BE=91?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../service/impl/DeviceServiceImpl.java | 4 +--
.../impl/SubscribeTaskForAlarm.java | 14 ++++-----
.../transmit/cmd/impl/SIPCommander.java | 31 +++++++++----------
3 files changed, 24 insertions(+), 25 deletions(-)
diff --git a/src/main/java/com/genersoft/iot/vmp/gb28181/service/impl/DeviceServiceImpl.java b/src/main/java/com/genersoft/iot/vmp/gb28181/service/impl/DeviceServiceImpl.java
index 4c46b58fe..738202f95 100755
--- a/src/main/java/com/genersoft/iot/vmp/gb28181/service/impl/DeviceServiceImpl.java
+++ b/src/main/java/com/genersoft/iot/vmp/gb28181/service/impl/DeviceServiceImpl.java
@@ -1080,11 +1080,11 @@ public class DeviceServiceImpl implements IDeviceService, CommandLineRunner {
return;
}
if (cycle > 0) {
- // 目录订阅相关的信息
+ // 报警订阅相关的信息
if (device.getSubscribeCycleForAlarm() > 0) {
// 订阅周期不同,则先取消
removeAlarmSubscribe(device, result->{
- device.setSubscribeCycleForCatalog(cycle);
+ device.setSubscribeCycleForAlarm(cycle);
updateDevice(device);
// 开启订阅
addAlarmSubscribe(device, null);
diff --git a/src/main/java/com/genersoft/iot/vmp/gb28181/task/deviceSubscribe/impl/SubscribeTaskForAlarm.java b/src/main/java/com/genersoft/iot/vmp/gb28181/task/deviceSubscribe/impl/SubscribeTaskForAlarm.java
index 15927f343..5d896b9b0 100644
--- a/src/main/java/com/genersoft/iot/vmp/gb28181/task/deviceSubscribe/impl/SubscribeTaskForAlarm.java
+++ b/src/main/java/com/genersoft/iot/vmp/gb28181/task/deviceSubscribe/impl/SubscribeTaskForAlarm.java
@@ -12,15 +12,15 @@ public class SubscribeTaskForAlarm extends SubscribeTask {
public static final String name = "alarm";
public static SubscribeTask getInstance(Device device, SubscribeCallback callback, SipTransactionInfo transactionInfo) {
- if (device.getSubscribeCycleForCatalog() <= 0) {
+ if (device.getSubscribeCycleForAlarm() <= 0) {
return null;
}
- SubscribeTaskForAlarm subscribeTaskForCatalog = new SubscribeTaskForAlarm();
- subscribeTaskForCatalog.setDelayTime((device.getSubscribeCycleForCatalog() * 1000L - 500L) + System.currentTimeMillis());
- subscribeTaskForCatalog.setDeviceId(device.getDeviceId());
- subscribeTaskForCatalog.setCallback(callback);
- subscribeTaskForCatalog.setTransactionInfo(transactionInfo);
- return subscribeTaskForCatalog;
+ SubscribeTaskForAlarm subscribeTaskForAlarm = new SubscribeTaskForAlarm();
+ subscribeTaskForAlarm.setDelayTime((device.getSubscribeCycleForAlarm() * 1000L - 500L) + System.currentTimeMillis());
+ subscribeTaskForAlarm.setDeviceId(device.getDeviceId());
+ subscribeTaskForAlarm.setCallback(callback);
+ subscribeTaskForAlarm.setTransactionInfo(transactionInfo);
+ return subscribeTaskForAlarm;
}
@Override
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 9cec2eabd..b0e6353e7 100755
--- 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
@@ -41,7 +41,6 @@ import javax.sip.SipFactory;
import javax.sip.header.CallIdHeader;
import javax.sip.message.Request;
import java.text.ParseException;
-import java.time.LocalDateTime;
import java.util.List;
/**
@@ -1231,17 +1230,17 @@ public class SIPCommander implements ISIPCommander {
cmdXml.append("Alarm\r\n");
cmdXml.append("" + (int) ((Math.random() * 9 + 1) * 100000) + "\r\n");
cmdXml.append("" + device.getDeviceId() + "\r\n");
- cmdXml.append("1\r\n");
- cmdXml.append("4/EndAlarmPriority>\r\n");
- cmdXml.append("0\r\n");
-
- LocalDateTime nowDateTime = LocalDateTime.now();
- String startTime = DateUtil.formatterISO8601.format(nowDateTime);
- // 退后一个月作为结束时间
- String endTime = DateUtil.formatterISO8601.format(nowDateTime.plusMonths(1));
-
- cmdXml.append("" + startTime + "\r\n");
- cmdXml.append("" + endTime + "\r\n");
+// cmdXml.append("1\r\n");
+// cmdXml.append("4/EndAlarmPriority>\r\n");
+// cmdXml.append("0\r\n");
+//
+// LocalDateTime nowDateTime = LocalDateTime.now();
+// String startTime = DateUtil.formatterISO8601.format(nowDateTime);
+// // 退后一个月作为结束时间
+// String endTime = DateUtil.formatterISO8601.format(nowDateTime.plusMonths(1));
+//
+// cmdXml.append("" + startTime + "\r\n");
+// cmdXml.append("" + endTime + "\r\n");
cmdXml.append("\r\n");
@@ -1253,14 +1252,14 @@ public class SIPCommander implements ISIPCommander {
callIdHeader = sipSender.getNewCallIdHeader(sipLayer.getLocalIp(device.getLocalIp()),device.getTransport());
}
- int subscribeCycleForCatalog = device.getSubscribeCycleForCatalog();
- if (subscribeCycleForCatalog > 0) {
+ int subscribeCycleForAlarm = device.getSubscribeCycleForAlarm();
+ if (subscribeCycleForAlarm > 0) {
// 目录订阅有效期不小于 30 秒
- subscribeCycleForCatalog = Math.max(subscribeCycleForCatalog, 30);
+ subscribeCycleForAlarm = Math.max(subscribeCycleForAlarm, 30);
}
// 有效时间默认为60秒以上
- SIPRequest request = (SIPRequest) headerProvider.createSubscribeRequest(device, cmdXml.toString(), sipTransactionInfo, subscribeCycleForCatalog, "presence",
+ SIPRequest request = (SIPRequest) headerProvider.createSubscribeRequest(device, cmdXml.toString(), sipTransactionInfo, subscribeCycleForAlarm, "presence",
callIdHeader);
sipSender.transmitRequest(sipLayer.getLocalIp(device.getLocalIp()), request, errorEvent, okEvent);
return request;