优化目录订阅以及国标级联目录订阅回复

This commit is contained in:
648540858
2022-03-10 20:53:56 +08:00
parent 41616f726d
commit c1d7f867c2
25 changed files with 451 additions and 208 deletions

View File

@@ -220,4 +220,6 @@ public class SendRtpItem {
public void setDialog(byte[] dialog) {
this.dialog = dialog;
}
}

View File

@@ -0,0 +1,37 @@
package com.genersoft.iot.vmp.gb28181.bean;
import org.springframework.stereotype.Component;
import java.util.concurrent.ConcurrentHashMap;
@Component
public class SubscribeHolder {
private static ConcurrentHashMap<String, SubscribeInfo> catalogMap = new ConcurrentHashMap<>();
private static ConcurrentHashMap<String, SubscribeInfo> mobilePositionMap = new ConcurrentHashMap<>();
public void putCatalogSubscribe(String platformId, SubscribeInfo subscribeInfo) {
catalogMap.put(platformId, subscribeInfo);
}
public SubscribeInfo getCatalogSubscribe(String platformId) {
return catalogMap.get(platformId);
}
public void removeCatalogSubscribe(String platformId) {
catalogMap.remove(platformId);
}
public void putMobilePositionSubscribe(String platformId, SubscribeInfo subscribeInfo) {
mobilePositionMap.put(platformId, subscribeInfo);
}
public SubscribeInfo getMobilePositionSubscribe(String platformId) {
return mobilePositionMap.get(platformId);
}
public void removeMobilePositionSubscribe(String platformId) {
mobilePositionMap.remove(platformId);
}
}

View File

@@ -1,13 +1,15 @@
package com.genersoft.iot.vmp.gb28181.bean;
import com.genersoft.iot.vmp.utils.SerializeUtils;
import javax.sip.Dialog;
import javax.sip.RequestEvent;
import javax.sip.ServerTransaction;
import javax.sip.header.*;
import javax.sip.message.Request;
public class SubscribeInfo {
public SubscribeInfo() {
}
public SubscribeInfo(RequestEvent evt, String id) {
this.id = id;
@@ -23,6 +25,8 @@ public class SubscribeInfo {
this.eventType = eventHeader.getEventType();
ViaHeader viaHeader = (ViaHeader)request.getHeader(ViaHeader.NAME);
this.branch = viaHeader.getBranch();
this.transaction = evt.getServerTransaction();
this.dialog = evt.getDialog();
}
private String id;
@@ -33,6 +37,8 @@ public class SubscribeInfo {
private String fromTag;
private String toTag;
private String branch;
private ServerTransaction transaction;
private Dialog dialog;
public String getId() {
return id;
@@ -97,4 +103,20 @@ public class SubscribeInfo {
public void setBranch(String branch) {
this.branch = branch;
}
public ServerTransaction getTransaction() {
return transaction;
}
public void setTransaction(ServerTransaction transaction) {
this.transaction = transaction;
}
public Dialog getDialog() {
return dialog;
}
public void setDialog(Dialog dialog) {
this.dialog = dialog;
}
}