添加国标级联目录分组分组加快通道传输速度
This commit is contained in:
@@ -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) {
|
||||
// 成功
|
||||
|
||||
Reference in New Issue
Block a user