修复开启订阅和取消订阅时EventId不一致
This commit is contained in:
@@ -3,6 +3,8 @@ package com.genersoft.iot.vmp.gb28181.bean;
|
|||||||
import gov.nist.javax.sip.message.SIPResponse;
|
import gov.nist.javax.sip.message.SIPResponse;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
|
||||||
|
import javax.sip.header.EventHeader;
|
||||||
|
|
||||||
@Data
|
@Data
|
||||||
public class SipTransactionInfo {
|
public class SipTransactionInfo {
|
||||||
|
|
||||||
@@ -12,6 +14,7 @@ public class SipTransactionInfo {
|
|||||||
private String viaBranch;
|
private String viaBranch;
|
||||||
private int expires;
|
private int expires;
|
||||||
private String user;
|
private String user;
|
||||||
|
private String eventId;
|
||||||
|
|
||||||
// 自己是否媒体流发送者
|
// 自己是否媒体流发送者
|
||||||
private boolean asSender;
|
private boolean asSender;
|
||||||
@@ -22,6 +25,10 @@ public class SipTransactionInfo {
|
|||||||
this.toTag = response.getToTag();
|
this.toTag = response.getToTag();
|
||||||
this.viaBranch = response.getTopmostViaHeader().getBranch();
|
this.viaBranch = response.getTopmostViaHeader().getBranch();
|
||||||
this.asSender = asSender;
|
this.asSender = asSender;
|
||||||
|
EventHeader header = (EventHeader)response.getHeader(EventHeader.NAME);
|
||||||
|
if (header != null) {
|
||||||
|
this.eventId = header.getEventId();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public SipTransactionInfo(SIPResponse response) {
|
public SipTransactionInfo(SIPResponse response) {
|
||||||
@@ -30,6 +37,10 @@ public class SipTransactionInfo {
|
|||||||
this.toTag = response.getToTag();
|
this.toTag = response.getToTag();
|
||||||
this.viaBranch = response.getTopmostViaHeader().getBranch();
|
this.viaBranch = response.getTopmostViaHeader().getBranch();
|
||||||
this.asSender = false;
|
this.asSender = false;
|
||||||
|
EventHeader header = (EventHeader)response.getHeader(EventHeader.NAME);
|
||||||
|
if (header != null) {
|
||||||
|
this.eventId = header.getEventId();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public SipTransactionInfo() {
|
public SipTransactionInfo() {
|
||||||
|
|||||||
@@ -269,12 +269,15 @@ public class SIPRequestHeaderProvider {
|
|||||||
ExpiresHeader expireHeader = SipFactory.getInstance().createHeaderFactory().createExpiresHeader(expires);
|
ExpiresHeader expireHeader = SipFactory.getInstance().createHeaderFactory().createExpiresHeader(expires);
|
||||||
request.addHeader(expireHeader);
|
request.addHeader(expireHeader);
|
||||||
|
|
||||||
// Event
|
// Event
|
||||||
EventHeader eventHeader = SipFactory.getInstance().createHeaderFactory().createEventHeader(event);
|
EventHeader eventHeader = SipFactory.getInstance().createHeaderFactory().createEventHeader(event);
|
||||||
|
if (sipTransactionInfo != null && sipTransactionInfo.getEventId() != null) {
|
||||||
int random = (int) Math.floor(Math.random() * 10000);
|
eventHeader.setEventId(sipTransactionInfo.getEventId());
|
||||||
eventHeader.setEventId(random + "");
|
}else {
|
||||||
request.addHeader(eventHeader);
|
int random = (int) Math.floor(Math.random() * 10000);
|
||||||
|
eventHeader.setEventId(random + "");
|
||||||
|
}
|
||||||
|
request.addHeader(eventHeader);
|
||||||
|
|
||||||
ContentTypeHeader contentTypeHeader = SipFactory.getInstance().createHeaderFactory().createContentTypeHeader("Application", "MANSCDP+xml");
|
ContentTypeHeader contentTypeHeader = SipFactory.getInstance().createHeaderFactory().createContentTypeHeader("Application", "MANSCDP+xml");
|
||||||
request.setContent(content, contentTypeHeader);
|
request.setContent(content, contentTypeHeader);
|
||||||
|
|||||||
Reference in New Issue
Block a user