修身目录刷新,优化公网下远程IP端口的获取
parent
22deb206ba
commit
269ad8cedb
|
@ -27,7 +27,7 @@ public class ServerLoggerImpl implements ServerLogger {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
StringBuilder stringBuilder = new StringBuilder();
|
StringBuilder stringBuilder = new StringBuilder();
|
||||||
stringBuilder.append(!sender? "发送:目标--->" + from:"接收:来自--->" + to)
|
stringBuilder.append(sender? "发送:目标--->" + from:"接收:来自--->" + to)
|
||||||
.append("\r\n")
|
.append("\r\n")
|
||||||
.append(message);
|
.append(message);
|
||||||
this.stackLogger.logInfo(stringBuilder.toString());
|
this.stackLogger.logInfo(stringBuilder.toString());
|
||||||
|
@ -40,7 +40,7 @@ public class ServerLoggerImpl implements ServerLogger {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
StringBuilder stringBuilder = new StringBuilder();
|
StringBuilder stringBuilder = new StringBuilder();
|
||||||
stringBuilder.append(!sender? "发送: 目标->" + from :"接收:来自->" + to)
|
stringBuilder.append(sender? "发送: 目标->" + from :"接收:来自->" + to)
|
||||||
.append("\r\n")
|
.append("\r\n")
|
||||||
.append(message);
|
.append(message);
|
||||||
this.stackLogger.logInfo(stringBuilder.toString());
|
this.stackLogger.logInfo(stringBuilder.toString());
|
||||||
|
@ -52,7 +52,7 @@ public class ServerLoggerImpl implements ServerLogger {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
StringBuilder stringBuilder = new StringBuilder();
|
StringBuilder stringBuilder = new StringBuilder();
|
||||||
stringBuilder.append(!sender? "发送: 目标->" + from :"接收:来自->" + to)
|
stringBuilder.append(sender? "发送: 目标->" + from :"接收:来自->" + to)
|
||||||
.append("\r\n")
|
.append("\r\n")
|
||||||
.append(message);
|
.append(message);
|
||||||
this.stackLogger.logInfo(stringBuilder.toString());
|
this.stackLogger.logInfo(stringBuilder.toString());
|
||||||
|
@ -87,6 +87,4 @@ public class ServerLoggerImpl implements ServerLogger {
|
||||||
this.stackLogger = this.sipStack.getStackLogger();
|
this.stackLogger = this.sipStack.getStackLogger();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -96,7 +96,7 @@ public class RegisterRequestProcessor extends SIPRequestProcessorParent implemen
|
||||||
|
|
||||||
RemoteAddressInfo remoteAddressInfo = SipUtils.getRemoteAddressFromRequest(request,
|
RemoteAddressInfo remoteAddressInfo = SipUtils.getRemoteAddressFromRequest(request,
|
||||||
userSetting.getSipUseSourceIpAsRemoteAddress());
|
userSetting.getSipUseSourceIpAsRemoteAddress());
|
||||||
|
logger.info("[注册请求] 设备:{}, 远程地址为: {}:{}", deviceId, remoteAddressInfo.getIp(), remoteAddressInfo.getPort());
|
||||||
if (device != null &&
|
if (device != null &&
|
||||||
device.getSipTransactionInfo() != null &&
|
device.getSipTransactionInfo() != null &&
|
||||||
request.getCallIdHeader().getCallId().equals(device.getSipTransactionInfo().getCallId())) {
|
request.getCallIdHeader().getCallId().equals(device.getSipTransactionInfo().getCallId())) {
|
||||||
|
|
|
@ -69,6 +69,7 @@ public class KeepaliveNotifyMessageHandler extends SIPRequestProcessorParent imp
|
||||||
|
|
||||||
RemoteAddressInfo remoteAddressInfo = SipUtils.getRemoteAddressFromRequest(request, userSetting.getSipUseSourceIpAsRemoteAddress());
|
RemoteAddressInfo remoteAddressInfo = SipUtils.getRemoteAddressFromRequest(request, userSetting.getSipUseSourceIpAsRemoteAddress());
|
||||||
if (!device.getIp().equalsIgnoreCase(remoteAddressInfo.getIp()) || device.getPort() != remoteAddressInfo.getPort()) {
|
if (!device.getIp().equalsIgnoreCase(remoteAddressInfo.getIp()) || device.getPort() != remoteAddressInfo.getPort()) {
|
||||||
|
logger.info("[心跳] 设备{}地址变化, 远程地址为: {}:{}", device.getDeviceId(), remoteAddressInfo.getIp(), remoteAddressInfo.getPort());
|
||||||
device.setPort(remoteAddressInfo.getPort());
|
device.setPort(remoteAddressInfo.getPort());
|
||||||
device.setHostAddress(remoteAddressInfo.getIp().concat(":").concat(String.valueOf(remoteAddressInfo.getPort())));
|
device.setHostAddress(remoteAddressInfo.getIp().concat(":").concat(String.valueOf(remoteAddressInfo.getPort())));
|
||||||
device.setIp(remoteAddressInfo.getIp());
|
device.setIp(remoteAddressInfo.getIp());
|
||||||
|
|
|
@ -133,8 +133,9 @@ public class SipUtils {
|
||||||
String remoteAddress;
|
String remoteAddress;
|
||||||
int remotePort;
|
int remotePort;
|
||||||
if (sipUseSourceIpAsRemoteAddress) {
|
if (sipUseSourceIpAsRemoteAddress) {
|
||||||
remoteAddress = request.getRemoteAddress().getHostAddress();
|
remoteAddress = request.getPeerPacketSourceAddress().getHostAddress();
|
||||||
remotePort = request.getRemotePort();
|
remotePort = request.getPeerPacketSourcePort();
|
||||||
|
|
||||||
}else {
|
}else {
|
||||||
// 判断RPort是否改变,改变则说明路由nat信息变化,修改设备信息
|
// 判断RPort是否改变,改变则说明路由nat信息变化,修改设备信息
|
||||||
// 获取到通信地址等信息
|
// 获取到通信地址等信息
|
||||||
|
@ -142,8 +143,8 @@ public class SipUtils {
|
||||||
remotePort = request.getTopmostViaHeader().getRPort();
|
remotePort = request.getTopmostViaHeader().getRPort();
|
||||||
// 解析本地地址替代
|
// 解析本地地址替代
|
||||||
if (ObjectUtils.isEmpty(remoteAddress) || remotePort == -1) {
|
if (ObjectUtils.isEmpty(remoteAddress) || remotePort == -1) {
|
||||||
remoteAddress = request.getRemoteAddress().getHostAddress();
|
remoteAddress = request.getPeerPacketSourceAddress().getHostAddress();
|
||||||
remotePort = request.getRemotePort();
|
remotePort = request.getPeerPacketSourcePort();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -271,6 +271,60 @@ public interface DeviceChannelMapper {
|
||||||
"</script>")
|
"</script>")
|
||||||
int batchAdd(List<DeviceChannel> addChannels);
|
int batchAdd(List<DeviceChannel> addChannels);
|
||||||
|
|
||||||
|
|
||||||
|
@Insert("<script> " +
|
||||||
|
"insert into device_channel " +
|
||||||
|
"(channelId, deviceId, name, manufacture, model, owner, civilCode, block, subCount, " +
|
||||||
|
" address, parental, parentId, safetyWay, registerWay, certNum, certifiable, errCode, secrecy, " +
|
||||||
|
" ipAddress, port, password, PTZType, status, streamId, longitude, latitude, longitudeGcj02, latitudeGcj02, " +
|
||||||
|
" longitudeWgs84, latitudeWgs84, hasAudio, createTime, updateTime, businessGroupId, gpsTime) " +
|
||||||
|
"values " +
|
||||||
|
"<foreach collection='addChannels' index='index' item='item' separator=','> " +
|
||||||
|
"(#{item.channelId}, #{item.deviceId}, #{item.name}, #{item.manufacture}, #{item.model}, " +
|
||||||
|
"#{item.owner}, #{item.civilCode}, #{item.block},#{item.subCount}," +
|
||||||
|
"#{item.address}, #{item.parental}, #{item.parentId}, #{item.safetyWay}, #{item.registerWay}, " +
|
||||||
|
"#{item.certNum}, #{item.certifiable}, #{item.errCode}, #{item.secrecy}, " +
|
||||||
|
"#{item.ipAddress}, #{item.port}, #{item.password}, #{item.PTZType}, #{item.status}, " +
|
||||||
|
"#{item.streamId}, #{item.longitude}, #{item.latitude},#{item.longitudeGcj02}, " +
|
||||||
|
"#{item.latitudeGcj02},#{item.longitudeWgs84}, #{item.latitudeWgs84}, #{item.hasAudio}, now(), now(), " +
|
||||||
|
"#{item.businessGroupId}, #{item.gpsTime}) " +
|
||||||
|
"</foreach> " +
|
||||||
|
"ON DUPLICATE KEY UPDATE " +
|
||||||
|
"updateTime=VALUES(updateTime), " +
|
||||||
|
"name=VALUES(name), " +
|
||||||
|
"manufacture=VALUES(manufacture), " +
|
||||||
|
"model=VALUES(model), " +
|
||||||
|
"owner=VALUES(owner), " +
|
||||||
|
"civilCode=VALUES(civilCode), " +
|
||||||
|
"block=VALUES(block), " +
|
||||||
|
"subCount=VALUES(subCount), " +
|
||||||
|
"address=VALUES(address), " +
|
||||||
|
"parental=VALUES(parental), " +
|
||||||
|
"parentId=VALUES(parentId), " +
|
||||||
|
"safetyWay=VALUES(safetyWay), " +
|
||||||
|
"registerWay=VALUES(registerWay), " +
|
||||||
|
"certNum=VALUES(certNum), " +
|
||||||
|
"certifiable=VALUES(certifiable), " +
|
||||||
|
"errCode=VALUES(errCode), " +
|
||||||
|
"secrecy=VALUES(secrecy), " +
|
||||||
|
"ipAddress=VALUES(ipAddress), " +
|
||||||
|
"port=VALUES(port), " +
|
||||||
|
"password=VALUES(password), " +
|
||||||
|
"PTZType=VALUES(PTZType), " +
|
||||||
|
"status=VALUES(status), " +
|
||||||
|
"streamId=VALUES(streamId), " +
|
||||||
|
"longitude=VALUES(longitude), " +
|
||||||
|
"latitude=VALUES(latitude), " +
|
||||||
|
"longitudeGcj02=VALUES(longitudeGcj02), " +
|
||||||
|
"latitudeGcj02=VALUES(latitudeGcj02), " +
|
||||||
|
"longitudeWgs84=VALUES(longitudeWgs84), " +
|
||||||
|
"latitudeWgs84=VALUES(latitudeWgs84), " +
|
||||||
|
"hasAudio=VALUES(hasAudio), " +
|
||||||
|
"businessGroupId=VALUES(businessGroupId), " +
|
||||||
|
"gpsTime=VALUES(gpsTime)" +
|
||||||
|
"</script>")
|
||||||
|
int batchAddOrUpdate(List<DeviceChannel> addChannels);
|
||||||
|
|
||||||
@Update(value = {"UPDATE device_channel SET status=1 WHERE deviceId=#{deviceId} AND channelId=#{channelId}"})
|
@Update(value = {"UPDATE device_channel SET status=1 WHERE deviceId=#{deviceId} AND channelId=#{channelId}"})
|
||||||
void online(String deviceId, String channelId);
|
void online(String deviceId, String channelId);
|
||||||
|
|
||||||
|
|
|
@ -184,10 +184,10 @@ public class VideoManagerStorageImpl implements IVideoManagerStorage {
|
||||||
if (i + limitCount > channels.size()) {
|
if (i + limitCount > channels.size()) {
|
||||||
toIndex = channels.size();
|
toIndex = channels.size();
|
||||||
}
|
}
|
||||||
result = result || deviceChannelMapper.batchAdd(channels.subList(i, toIndex)) < 0;
|
result = result || deviceChannelMapper.batchAddOrUpdate(channels.subList(i, toIndex)) < 0;
|
||||||
}
|
}
|
||||||
}else {
|
}else {
|
||||||
result = result || deviceChannelMapper.batchAdd(channels) < 0;
|
result = result || deviceChannelMapper.batchAddOrUpdate(channels) < 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (result) {
|
if (result) {
|
||||||
|
@ -285,10 +285,10 @@ public class VideoManagerStorageImpl implements IVideoManagerStorage {
|
||||||
if (i + limitCount > addChannels.size()) {
|
if (i + limitCount > addChannels.size()) {
|
||||||
toIndex = addChannels.size();
|
toIndex = addChannels.size();
|
||||||
}
|
}
|
||||||
result = result || deviceChannelMapper.batchAdd(addChannels.subList(i, toIndex)) < 0;
|
result = result || deviceChannelMapper.batchAddOrUpdate(addChannels.subList(i, toIndex)) < 0;
|
||||||
}
|
}
|
||||||
}else {
|
}else {
|
||||||
result = result || deviceChannelMapper.batchAdd(addChannels) < 0;
|
result = result || deviceChannelMapper.batchAddOrUpdate(addChannels) < 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (updateChannels.size() > 0) {
|
if (updateChannels.size() > 0) {
|
||||||
|
|
Loading…
Reference in New Issue