添加国标级联目录分组分组加快通道传输速度

This commit is contained in:
648540858
2022-04-18 16:16:49 +08:00
parent 20622d20d6
commit 93d69d5476
7 changed files with 176 additions and 78 deletions

View File

@@ -10,6 +10,8 @@ import org.springframework.scheduling.annotation.Async;
import javax.sip.Dialog;
import javax.sip.DialogState;
import javax.sip.ResponseEvent;
import java.util.Timer;
import java.util.TimerTask;
/**
* 目录订阅任务
@@ -20,6 +22,8 @@ public class CatalogSubscribeTask implements ISubscribeTask {
private final ISIPCommander sipCommander;
private Dialog dialog;
private Timer timer ;
public CatalogSubscribeTask(Device device, ISIPCommander sipCommander) {
this.device = device;
this.sipCommander = sipCommander;
@@ -27,6 +31,10 @@ public class CatalogSubscribeTask implements ISubscribeTask {
@Override
public void run() {
if (timer != null ) {
timer.cancel();
timer = null;
}
sipCommander.catalogSubscribe(device, dialog, eventResult -> {
if (eventResult.dialog != null || eventResult.dialog.getState().equals(DialogState.CONFIRMED)) {
dialog = eventResult.dialog;
@@ -43,6 +51,13 @@ public class CatalogSubscribeTask implements ISubscribeTask {
dialog = null;
// 失败
logger.warn("[目录订阅]失败,信令发送失败: {}-{} ", device.getDeviceId(), eventResult.msg);
timer = new Timer();
timer.schedule(new TimerTask() {
@Override
public void run() {
CatalogSubscribeTask.this.run();
}
}, 2000);
});
}
@@ -56,9 +71,13 @@ public class CatalogSubscribeTask implements ISubscribeTask {
* TERMINATED-> Terminated Dialog状态-终止
*/
logger.info("取消目录订阅时dialog状态为{}", DialogState.CONFIRMED);
if (timer != null ) {
timer.cancel();
timer = null;
}
if (dialog != null && dialog.getState().equals(DialogState.CONFIRMED)) {
device.setSubscribeCycleForCatalog(0);
sipCommander.mobilePositionSubscribe(device, dialog, eventResult -> {
sipCommander.catalogSubscribe(device, dialog, eventResult -> {
ResponseEvent event = (ResponseEvent) eventResult.event;
if (event.getResponse().getRawContent() != null) {
// 成功