From 269ad8cedbb07ca207a6f33af23085894dab4aa6 Mon Sep 17 00:00:00 2001
From: 648540858 <648540858@qq.com>
Date: 星期日, 23 四月 2023 14:36:13 +0800
Subject: [PATCH] 修身目录刷新,优化公网下远程IP端口的获取
---
src/main/java/com/genersoft/iot/vmp/storager/impl/VideoManagerStorageImpl.java | 8 ++--
src/main/java/com/genersoft/iot/vmp/gb28181/conf/ServerLoggerImpl.java | 8 +--
src/main/java/com/genersoft/iot/vmp/gb28181/utils/SipUtils.java | 9 ++--
src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/RegisterRequestProcessor.java | 2
src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/message/notify/cmd/KeepaliveNotifyMessageHandler.java | 1
src/main/java/com/genersoft/iot/vmp/storager/dao/DeviceChannelMapper.java | 54 +++++++++++++++++++++++++++
6 files changed, 68 insertions(+), 14 deletions(-)
diff --git a/src/main/java/com/genersoft/iot/vmp/gb28181/conf/ServerLoggerImpl.java b/src/main/java/com/genersoft/iot/vmp/gb28181/conf/ServerLoggerImpl.java
index 3fc1d37..19e1906 100644
--- a/src/main/java/com/genersoft/iot/vmp/gb28181/conf/ServerLoggerImpl.java
+++ b/src/main/java/com/genersoft/iot/vmp/gb28181/conf/ServerLoggerImpl.java
@@ -27,7 +27,7 @@
return;
}
StringBuilder stringBuilder = new StringBuilder();
- stringBuilder.append(!sender? "鍙戦�侊細鐩爣--->" + from:"鎺ユ敹锛氭潵鑷�--->" + to)
+ stringBuilder.append(sender? "鍙戦�侊細鐩爣--->" + from:"鎺ユ敹锛氭潵鑷�--->" + to)
.append("\r\n")
.append(message);
this.stackLogger.logInfo(stringBuilder.toString());
@@ -40,7 +40,7 @@
return;
}
StringBuilder stringBuilder = new StringBuilder();
- stringBuilder.append(!sender? "鍙戦�侊細 鐩爣->" + from :"鎺ユ敹锛氭潵鑷�->" + to)
+ stringBuilder.append(sender? "鍙戦�侊細 鐩爣->" + from :"鎺ユ敹锛氭潵鑷�->" + to)
.append("\r\n")
.append(message);
this.stackLogger.logInfo(stringBuilder.toString());
@@ -52,7 +52,7 @@
return;
}
StringBuilder stringBuilder = new StringBuilder();
- stringBuilder.append(!sender? "鍙戦�侊細 鐩爣->" + from :"鎺ユ敹锛氭潵鑷�->" + to)
+ stringBuilder.append(sender? "鍙戦�侊細 鐩爣->" + from :"鎺ユ敹锛氭潵鑷�->" + to)
.append("\r\n")
.append(message);
this.stackLogger.logInfo(stringBuilder.toString());
@@ -87,6 +87,4 @@
this.stackLogger = this.sipStack.getStackLogger();
}
}
-
-
}
diff --git a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/RegisterRequestProcessor.java b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/RegisterRequestProcessor.java
index 9f69950..81e7fa6 100644
--- a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/RegisterRequestProcessor.java
+++ b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/RegisterRequestProcessor.java
@@ -96,7 +96,7 @@
RemoteAddressInfo remoteAddressInfo = SipUtils.getRemoteAddressFromRequest(request,
userSetting.getSipUseSourceIpAsRemoteAddress());
-
+ logger.info("[娉ㄥ唽璇锋眰] 璁惧锛歿}, 杩滅▼鍦板潃涓�: {}:{}", deviceId, remoteAddressInfo.getIp(), remoteAddressInfo.getPort());
if (device != null &&
device.getSipTransactionInfo() != null &&
request.getCallIdHeader().getCallId().equals(device.getSipTransactionInfo().getCallId())) {
diff --git a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/message/notify/cmd/KeepaliveNotifyMessageHandler.java b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/message/notify/cmd/KeepaliveNotifyMessageHandler.java
index 865b662..4d1a58e 100644
--- a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/message/notify/cmd/KeepaliveNotifyMessageHandler.java
+++ b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/message/notify/cmd/KeepaliveNotifyMessageHandler.java
@@ -69,6 +69,7 @@
RemoteAddressInfo remoteAddressInfo = SipUtils.getRemoteAddressFromRequest(request, userSetting.getSipUseSourceIpAsRemoteAddress());
if (!device.getIp().equalsIgnoreCase(remoteAddressInfo.getIp()) || device.getPort() != remoteAddressInfo.getPort()) {
+ logger.info("[蹇冭烦] 璁惧{}鍦板潃鍙樺寲, 杩滅▼鍦板潃涓�: {}:{}", device.getDeviceId(), remoteAddressInfo.getIp(), remoteAddressInfo.getPort());
device.setPort(remoteAddressInfo.getPort());
device.setHostAddress(remoteAddressInfo.getIp().concat(":").concat(String.valueOf(remoteAddressInfo.getPort())));
device.setIp(remoteAddressInfo.getIp());
diff --git a/src/main/java/com/genersoft/iot/vmp/gb28181/utils/SipUtils.java b/src/main/java/com/genersoft/iot/vmp/gb28181/utils/SipUtils.java
index 1f4632e..d6037a1 100644
--- a/src/main/java/com/genersoft/iot/vmp/gb28181/utils/SipUtils.java
+++ b/src/main/java/com/genersoft/iot/vmp/gb28181/utils/SipUtils.java
@@ -133,8 +133,9 @@
String remoteAddress;
int remotePort;
if (sipUseSourceIpAsRemoteAddress) {
- remoteAddress = request.getRemoteAddress().getHostAddress();
- remotePort = request.getRemotePort();
+ remoteAddress = request.getPeerPacketSourceAddress().getHostAddress();
+ remotePort = request.getPeerPacketSourcePort();
+
}else {
// 鍒ゆ柇RPort鏄惁鏀瑰彉锛屾敼鍙樺垯璇存槑璺敱nat淇℃伅鍙樺寲锛屼慨鏀硅澶囦俊鎭�
// 鑾峰彇鍒伴�氫俊鍦板潃绛変俊鎭�
@@ -142,8 +143,8 @@
remotePort = request.getTopmostViaHeader().getRPort();
// 瑙f瀽鏈湴鍦板潃鏇夸唬
if (ObjectUtils.isEmpty(remoteAddress) || remotePort == -1) {
- remoteAddress = request.getRemoteAddress().getHostAddress();
- remotePort = request.getRemotePort();
+ remoteAddress = request.getPeerPacketSourceAddress().getHostAddress();
+ remotePort = request.getPeerPacketSourcePort();
}
}
diff --git a/src/main/java/com/genersoft/iot/vmp/storager/dao/DeviceChannelMapper.java b/src/main/java/com/genersoft/iot/vmp/storager/dao/DeviceChannelMapper.java
index 3f4d804..f81d1f8 100644
--- a/src/main/java/com/genersoft/iot/vmp/storager/dao/DeviceChannelMapper.java
+++ b/src/main/java/com/genersoft/iot/vmp/storager/dao/DeviceChannelMapper.java
@@ -271,6 +271,60 @@
"</script>")
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}"})
void online(String deviceId, String channelId);
diff --git a/src/main/java/com/genersoft/iot/vmp/storager/impl/VideoManagerStorageImpl.java b/src/main/java/com/genersoft/iot/vmp/storager/impl/VideoManagerStorageImpl.java
index 206456d..cee613d 100644
--- a/src/main/java/com/genersoft/iot/vmp/storager/impl/VideoManagerStorageImpl.java
+++ b/src/main/java/com/genersoft/iot/vmp/storager/impl/VideoManagerStorageImpl.java
@@ -184,10 +184,10 @@
if (i + limitCount > channels.size()) {
toIndex = channels.size();
}
- result = result || deviceChannelMapper.batchAdd(channels.subList(i, toIndex)) < 0;
+ result = result || deviceChannelMapper.batchAddOrUpdate(channels.subList(i, toIndex)) < 0;
}
}else {
- result = result || deviceChannelMapper.batchAdd(channels) < 0;
+ result = result || deviceChannelMapper.batchAddOrUpdate(channels) < 0;
}
}
if (result) {
@@ -285,10 +285,10 @@
if (i + limitCount > addChannels.size()) {
toIndex = addChannels.size();
}
- result = result || deviceChannelMapper.batchAdd(addChannels.subList(i, toIndex)) < 0;
+ result = result || deviceChannelMapper.batchAddOrUpdate(addChannels.subList(i, toIndex)) < 0;
}
}else {
- result = result || deviceChannelMapper.batchAdd(addChannels) < 0;
+ result = result || deviceChannelMapper.batchAddOrUpdate(addChannels) < 0;
}
}
if (updateChannels.size() > 0) {
--
Gitblit v1.8.0