From b151aec5a0f71bf4cb6736da46f3aa08f285f3f2 Mon Sep 17 00:00:00 2001 From: lin <648540858@qq.com> Date: Fri, 24 Oct 2025 16:54:12 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E5=BC=80=E5=90=AF=E8=AE=A2?= =?UTF-8?q?=E9=98=85=E5=92=8C=E5=8F=96=E6=B6=88=E8=AE=A2=E9=98=85=E6=97=B6?= =?UTF-8?q?EventId=E4=B8=8D=E4=B8=80=E8=87=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../iot/vmp/gb28181/bean/SipTransactionInfo.java | 11 +++++++++++ .../transmit/cmd/SIPRequestHeaderProvider.java | 15 +++++++++------ 2 files changed, 20 insertions(+), 6 deletions(-) diff --git a/src/main/java/com/genersoft/iot/vmp/gb28181/bean/SipTransactionInfo.java b/src/main/java/com/genersoft/iot/vmp/gb28181/bean/SipTransactionInfo.java index 74c63e112..3e2c40b15 100755 --- a/src/main/java/com/genersoft/iot/vmp/gb28181/bean/SipTransactionInfo.java +++ b/src/main/java/com/genersoft/iot/vmp/gb28181/bean/SipTransactionInfo.java @@ -3,6 +3,8 @@ package com.genersoft.iot.vmp.gb28181.bean; import gov.nist.javax.sip.message.SIPResponse; import lombok.Data; +import javax.sip.header.EventHeader; + @Data public class SipTransactionInfo { @@ -12,6 +14,7 @@ public class SipTransactionInfo { private String viaBranch; private int expires; private String user; + private String eventId; // 自己是否媒体流发送者 private boolean asSender; @@ -22,6 +25,10 @@ public class SipTransactionInfo { this.toTag = response.getToTag(); this.viaBranch = response.getTopmostViaHeader().getBranch(); this.asSender = asSender; + EventHeader header = (EventHeader)response.getHeader(EventHeader.NAME); + if (header != null) { + this.eventId = header.getEventId(); + } } public SipTransactionInfo(SIPResponse response) { @@ -30,6 +37,10 @@ public class SipTransactionInfo { this.toTag = response.getToTag(); this.viaBranch = response.getTopmostViaHeader().getBranch(); this.asSender = false; + EventHeader header = (EventHeader)response.getHeader(EventHeader.NAME); + if (header != null) { + this.eventId = header.getEventId(); + } } public SipTransactionInfo() { diff --git a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/cmd/SIPRequestHeaderProvider.java b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/cmd/SIPRequestHeaderProvider.java index f4820ff2b..a99e044a1 100755 --- a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/cmd/SIPRequestHeaderProvider.java +++ b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/cmd/SIPRequestHeaderProvider.java @@ -269,12 +269,15 @@ public class SIPRequestHeaderProvider { ExpiresHeader expireHeader = SipFactory.getInstance().createHeaderFactory().createExpiresHeader(expires); request.addHeader(expireHeader); - // Event - EventHeader eventHeader = SipFactory.getInstance().createHeaderFactory().createEventHeader(event); - - int random = (int) Math.floor(Math.random() * 10000); - eventHeader.setEventId(random + ""); - request.addHeader(eventHeader); + // Event + EventHeader eventHeader = SipFactory.getInstance().createHeaderFactory().createEventHeader(event); + if (sipTransactionInfo != null && sipTransactionInfo.getEventId() != null) { + eventHeader.setEventId(sipTransactionInfo.getEventId()); + }else { + int random = (int) Math.floor(Math.random() * 10000); + eventHeader.setEventId(random + ""); + } + request.addHeader(eventHeader); ContentTypeHeader contentTypeHeader = SipFactory.getInstance().createHeaderFactory().createContentTypeHeader("Application", "MANSCDP+xml"); request.setContent(content, contentTypeHeader);