增加设备上线判断双逻辑,兼容大华注册后不再发送注册的设备
This commit is contained in:
@@ -74,6 +74,8 @@ public class UserSetting {
|
||||
|
||||
private boolean registerKeepIntDialog = false;
|
||||
|
||||
private int gbDeviceOnline = 0;
|
||||
|
||||
public Boolean getSavePositionHistory() {
|
||||
return savePositionHistory;
|
||||
}
|
||||
@@ -325,4 +327,12 @@ public class UserSetting {
|
||||
public void setDocEnable(Boolean docEnable) {
|
||||
this.docEnable = docEnable;
|
||||
}
|
||||
|
||||
public int getGbDeviceOnline() {
|
||||
return gbDeviceOnline;
|
||||
}
|
||||
|
||||
public void setGbDeviceOnline(int gbDeviceOnline) {
|
||||
this.gbDeviceOnline = gbDeviceOnline;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -62,7 +62,10 @@ public class KeepaliveNotifyMessageHandler extends SIPRequestProcessorParent imp
|
||||
}
|
||||
SIPRequest request = (SIPRequest) evt.getRequest();
|
||||
logger.info("[收到心跳] device: {}, callId: {}", device.getDeviceId(), request.getCallIdHeader().getCallId());
|
||||
|
||||
if (userSetting.getGbDeviceOnline() == 0 && !device.isOnLine()) {
|
||||
logger.warn("[收到心跳] 设备离线,心跳不进行回复, device: {}, callId: {}", device.getDeviceId(), request.getCallIdHeader().getCallId());
|
||||
return;
|
||||
}
|
||||
// 回复200 OK
|
||||
try {
|
||||
responseAck(request, Response.OK);
|
||||
@@ -101,9 +104,10 @@ public class KeepaliveNotifyMessageHandler extends SIPRequestProcessorParent imp
|
||||
if (device.isOnLine()) {
|
||||
deviceService.updateDevice(device);
|
||||
}else {
|
||||
// 对于已经离线的设备判断他的注册是否已经过期
|
||||
if (!deviceService.expire(device)){
|
||||
device.setOnLine(false);
|
||||
if (userSetting.getGbDeviceOnline() == 1) {
|
||||
// 对于已经离线的设备判断他的注册是否已经过期
|
||||
device.setOnLine(true);
|
||||
device.setRegisterTime(DateUtil.getNow());
|
||||
deviceService.online(device, null);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user