From 1b35fbd0e060e2ac85da3868ce115e2d1b8da9d7 Mon Sep 17 00:00:00 2001 From: Jerry Yan <792602257@qq.com> Date: Thu, 12 Jun 2025 16:05:06 +0800 Subject: [PATCH] =?UTF-8?q?=E6=94=AF=E6=8C=81=E5=85=B3=E9=97=AD=E8=BF=94?= =?UTF-8?q?=E5=9B=9EDate=20Header=EF=BC=8C=E8=BF=9B=E8=80=8C=E5=AE=9E?= =?UTF-8?q?=E7=8E=B0=E5=85=B3=E9=97=AD=E5=AF=B9=E6=91=84=E5=83=8F=E5=A4=B4?= =?UTF-8?q?=E7=9A=84=E6=A0=A1=E6=97=B6=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Fixes #1700 --- .../genersoft/iot/vmp/conf/UserSetting.java | 5 +++- .../impl/RegisterRequestProcessor.java | 30 +++++++++++-------- src/main/resources/application-dev.yml | 2 ++ 3 files changed, 24 insertions(+), 13 deletions(-) diff --git a/src/main/java/com/genersoft/iot/vmp/conf/UserSetting.java b/src/main/java/com/genersoft/iot/vmp/conf/UserSetting.java index 26130a02b..26302e782 100644 --- a/src/main/java/com/genersoft/iot/vmp/conf/UserSetting.java +++ b/src/main/java/com/genersoft/iot/vmp/conf/UserSetting.java @@ -204,6 +204,9 @@ public class UserSetting { */ private boolean sipCacheServerConnections = true; - + /** + * 禁用date头,变相禁用了校时 + */ + private boolean disableDateHeader = false; } diff --git a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/RegisterRequestProcessor.java b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/RegisterRequestProcessor.java index fe5ce9134..193816aac 100755 --- a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/RegisterRequestProcessor.java +++ b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/RegisterRequestProcessor.java @@ -144,12 +144,15 @@ public class RegisterRequestProcessor extends SIPRequestProcessorParent implemen // 携带授权头并且密码正确 response = getMessageFactory().createResponse(Response.OK, request); - // 添加date头 - SIPDateHeader dateHeader = new SIPDateHeader(); - // 使用自己修改的 - GbSipDate gbSipDate = new GbSipDate(Calendar.getInstance(Locale.ENGLISH).getTimeInMillis()); - dateHeader.setDate(gbSipDate); - response.addHeader(dateHeader); + // 如果主动禁用了Date头,则不添加 + if (!userSetting.isDisableDateHeader()) { + // 添加date头 + SIPDateHeader dateHeader = new SIPDateHeader(); + // 使用自己修改的 + GbSipDate gbSipDate = new GbSipDate(Calendar.getInstance(Locale.ENGLISH).getTimeInMillis()); + dateHeader.setDate(gbSipDate); + response.addHeader(dateHeader); + } if (request.getExpires() == null) { response = getMessageFactory().createResponse(Response.BAD_REQUEST, request); @@ -218,12 +221,15 @@ public class RegisterRequestProcessor extends SIPRequestProcessorParent implemen private Response getRegisterOkResponse(Request request) throws ParseException { // 携带授权头并且密码正确 Response response = getMessageFactory().createResponse(Response.OK, request); - // 添加date头 - SIPDateHeader dateHeader = new SIPDateHeader(); - // 使用自己修改的 - GbSipDate gbSipDate = new GbSipDate(Calendar.getInstance(Locale.ENGLISH).getTimeInMillis()); - dateHeader.setDate(gbSipDate); - response.addHeader(dateHeader); + // 如果主动禁用了Date头,则不添加 + if (!userSetting.isDisableDateHeader()) { + // 添加date头 + SIPDateHeader dateHeader = new SIPDateHeader(); + // 使用自己修改的 + GbSipDate gbSipDate = new GbSipDate(Calendar.getInstance(Locale.ENGLISH).getTimeInMillis()); + dateHeader.setDate(gbSipDate); + response.addHeader(dateHeader); + } // 添加Contact头 response.addHeader(request.getHeader(ContactHeader.NAME)); diff --git a/src/main/resources/application-dev.yml b/src/main/resources/application-dev.yml index e1be866cf..d30a1f39f 100644 --- a/src/main/resources/application-dev.yml +++ b/src/main/resources/application-dev.yml @@ -90,4 +90,6 @@ user-settings: record-sip: true # 国标点播 按需拉流, true:有人观看拉流,无人观看释放, false:拉起后不自动释放 stream-on-demand: true + # 是否返回Date属性,true:不返回,避免摄像头通过该参数自动校时,false:返回,摄像头可能会根据该时间校时 + disable-date-header: false