From e91e96077ab5f4b6554fa9359fbd17f035842697 Mon Sep 17 00:00:00 2001 From: guoshq Date: Wed, 17 Sep 2025 13:38:23 +0800 Subject: [PATCH] =?UTF-8?q?[=E5=90=8E=E7=AB=AF]=20=E4=BF=AE=E5=A4=8D?= =?UTF-8?q?=E7=9B=AE=E5=BD=95=E8=AE=BE=E7=BD=AE/=E4=BD=8D=E7=BD=AE?= =?UTF-8?q?=E7=A7=BB=E5=8A=A8=E7=9A=84=E8=AE=A2=E9=98=85=E9=80=BB=E8=BE=91?= =?UTF-8?q?=EF=BC=9A=E8=AE=A2=E9=98=85=E5=91=A8=E6=9C=9F=E5=BF=85=E9=A1=BB?= =?UTF-8?q?=20=E2=89=A530=20=E7=A7=92=EF=BC=8C=E5=8F=96=E6=B6=88=E8=AE=A2?= =?UTF-8?q?=E9=98=85=E6=97=B6=E5=85=81=E8=AE=B8=E5=91=A8=E6=9C=9F=E8=AE=BE?= =?UTF-8?q?=E4=B8=BA=200?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../gb28181/transmit/cmd/impl/SIPCommander.java | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 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 6d405efc2..3498d7ceb 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 @@ -1203,7 +1203,13 @@ public class SIPCommander implements ISIPCommander { } else { callIdHeader = sipSender.getNewCallIdHeader(sipLayer.getLocalIp(device.getLocalIp()),device.getTransport()); } - SIPRequest request = (SIPRequest) headerProvider.createSubscribeRequest(device, subscribePostitionXml.toString(), sipTransactionInfo, device.getSubscribeCycleForMobilePosition(), "presence",callIdHeader); //Position;id=" + tm.substring(tm.length() - 4)); + + int subscribeCycleForMobilePosition = device.getSubscribeCycleForMobilePosition(); + if (subscribeCycleForMobilePosition > 0) { + // 移动位置订阅有效期不小于 30 秒 + subscribeCycleForMobilePosition = Math.max(subscribeCycleForMobilePosition, 30); + } + SIPRequest request = (SIPRequest) headerProvider.createSubscribeRequest(device, subscribePostitionXml.toString(), sipTransactionInfo, subscribeCycleForMobilePosition, "presence",callIdHeader); //Position;id=" + tm.substring(tm.length() - 4)); sipSender.transmitRequest(sipLayer.getLocalIp(device.getLocalIp()), request, errorEvent, okEvent); return request; @@ -1275,8 +1281,13 @@ public class SIPCommander implements ISIPCommander { callIdHeader = sipSender.getNewCallIdHeader(sipLayer.getLocalIp(device.getLocalIp()),device.getTransport()); } + int subscribeCycleForCatalog = device.getSubscribeCycleForCatalog(); + if (subscribeCycleForCatalog > 0) { + // 目录订阅有效期不小于 30 秒 + subscribeCycleForCatalog = Math.max(subscribeCycleForCatalog, 30); + } // 有效时间默认为60秒以上 - SIPRequest request = (SIPRequest) headerProvider.createSubscribeRequest(device, cmdXml.toString(), sipTransactionInfo, device.getSubscribeCycleForCatalog(), "Catalog", + SIPRequest request = (SIPRequest) headerProvider.createSubscribeRequest(device, cmdXml.toString(), sipTransactionInfo, subscribeCycleForCatalog, "Catalog", callIdHeader); sipSender.transmitRequest(sipLayer.getLocalIp(device.getLocalIp()), request, errorEvent, okEvent); return request;