| | |
| | | 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()); |
| | |
| | | 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()); |
| | |
| | | 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()); |
| | |
| | | this.stackLogger = this.sipStack.getStackLogger(); |
| | | } |
| | | } |
| | | |
| | | |
| | | } |
| | |
| | | |
| | | 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())) { |
| | |
| | | |
| | | 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()); |
| | |
| | | String remoteAddress; |
| | | int remotePort; |
| | | if (sipUseSourceIpAsRemoteAddress) { |
| | | remoteAddress = request.getRemoteAddress().getHostAddress(); |
| | | remotePort = request.getRemotePort(); |
| | | remoteAddress = request.getPeerPacketSourceAddress().getHostAddress(); |
| | | remotePort = request.getPeerPacketSourcePort(); |
| | | |
| | | }else { |
| | | // 判断RPort是否改变,改变则说明路由nat信息变化,修改设备信息 |
| | | // 获取到通信地址等信息 |
| | |
| | | remotePort = request.getTopmostViaHeader().getRPort(); |
| | | // 解析本地地址替代 |
| | | if (ObjectUtils.isEmpty(remoteAddress) || remotePort == -1) { |
| | | remoteAddress = request.getRemoteAddress().getHostAddress(); |
| | | remotePort = request.getRemotePort(); |
| | | remoteAddress = request.getPeerPacketSourceAddress().getHostAddress(); |
| | | remotePort = request.getPeerPacketSourcePort(); |
| | | } |
| | | } |
| | | |
| | |
| | | "</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); |
| | | |
| | |
| | | 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) { |
| | |
| | | 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) { |