From e4754af417b176f5e0ab998e6594d875bc0a069c Mon Sep 17 00:00:00 2001 From: 648540858 <648540858@qq.com> Date: 星期四, 06 七月 2023 15:35:59 +0800 Subject: [PATCH] 修复数据错误导致无法转成JSON返回 #919 --- src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/RegisterRequestProcessor.java | 38 ++++++++++++++++++-------------------- 1 files changed, 18 insertions(+), 20 deletions(-) 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 72da660..e084f35 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 @@ -80,21 +80,7 @@ public void process(RequestEvent evt) { try { RequestEventExt evtExt = (RequestEventExt) evt; - String requestAddress = evtExt.getRemoteIpAddress() + ":" + evtExt.getRemotePort(); - logger.info("[娉ㄥ唽璇锋眰] 寮�濮嬪鐞�: {}", requestAddress); -// MBeanServer beanServer = ManagementFactory.getPlatformMBeanServer(); -// QueryExp protocol = Query.match(Query.attr("protocol"), Query.value("HTTP/1.1")); -//// ObjectName name = new ObjectName("*:type=Connector,*"); -// ObjectName name = new ObjectName("*:*"); -// Set<ObjectName> objectNames = beanServer.queryNames(name, protocol); -// for (ObjectName objectName : objectNames) { -// String catalina = objectName.getDomain(); -// if ("Catalina".equals(catalina)) { -// System.out.println(objectName.getKeyProperty("port")); -// } -// } -// System.out.println(ServiceInfo.getServerPort()); SIPRequest request = (SIPRequest)evt.getRequest(); Response response = null; boolean passwordCorrect = false; @@ -104,15 +90,17 @@ AddressImpl address = (AddressImpl) fromHeader.getAddress(); SipUri uri = (SipUri) address.getURI(); String deviceId = uri.getUser(); + Device device = deviceService.getDevice(deviceId); RemoteAddressInfo remoteAddressInfo = SipUtils.getRemoteAddressFromRequest(request, userSetting.getSipUseSourceIpAsRemoteAddress()); - + String requestAddress = remoteAddressInfo.getIp() + ":" + remoteAddressInfo.getPort(); + logger.info("[娉ㄥ唽璇锋眰] 璁惧锛歿}, 寮�濮嬪鐞�: {}", deviceId, requestAddress); if (device != null && device.getSipTransactionInfo() != null && request.getCallIdHeader().getCallId().equals(device.getSipTransactionInfo().getCallId())) { - logger.info("[娉ㄥ唽璇锋眰] 娉ㄥ唽缁: {}", device.getDeviceId()); + logger.info("[娉ㄥ唽璇锋眰] 璁惧锛歿}, 娉ㄥ唽缁: {}",device.getDeviceId(), device.getDeviceId()); device.setExpires(request.getExpires().getExpires()); device.setIp(remoteAddressInfo.getIp()); device.setPort(remoteAddressInfo.getPort()); @@ -132,7 +120,7 @@ String password = (device != null && !ObjectUtils.isEmpty(device.getPassword()))? device.getPassword() : sipConfig.getPassword(); AuthorizationHeader authHead = (AuthorizationHeader) request.getHeader(AuthorizationHeader.NAME); if (authHead == null && !ObjectUtils.isEmpty(password)) { - logger.info("[娉ㄥ唽璇锋眰] 鍥炲401: {}", requestAddress); + logger.info("[娉ㄥ唽璇锋眰] 璁惧锛歿}, 鍥炲401: {}",deviceId, requestAddress); response = getMessageFactory().createResponse(Response.UNAUTHORIZED, request); new DigestServerAuthenticationHelper().generateChallenge(getHeaderFactory(), response, sipConfig.getDomain()); sipSender.transmitRequest(request.getLocalAddress().getHostAddress(), response); @@ -147,7 +135,7 @@ // 娉ㄥ唽澶辫触 response = getMessageFactory().createResponse(Response.FORBIDDEN, request); response.setReasonPhrase("wrong password"); - logger.info("[娉ㄥ唽璇锋眰] 瀵嗙爜/SIP鏈嶅姟鍣↖D閿欒, 鍥炲403: {}", requestAddress); + logger.info("[娉ㄥ唽璇锋眰] 璁惧锛歿}, 瀵嗙爜/SIP鏈嶅姟鍣↖D閿欒, 鍥炲403: {}", deviceId, requestAddress); sipSender.transmitRequest(request.getLocalAddress().getHostAddress(), response); return; } @@ -176,10 +164,20 @@ device.setStreamMode("UDP"); device.setCharset("GB2312"); device.setGeoCoordSys("WGS84"); - device.setTreeType("CivilCode"); device.setDeviceId(deviceId); - device.setOnline(0); + device.setOnLine(false); + }else { + if (ObjectUtils.isEmpty(device.getStreamMode())) { + device.setStreamMode("UDP"); + } + if (ObjectUtils.isEmpty(device.getCharset())) { + device.setCharset("GB2312"); + } + if (ObjectUtils.isEmpty(device.getGeoCoordSys())) { + device.setGeoCoordSys("WGS84"); + } } + device.setIp(remoteAddressInfo.getIp()); device.setPort(remoteAddressInfo.getPort()); device.setHostAddress(remoteAddressInfo.getIp().concat(":").concat(String.valueOf(remoteAddressInfo.getPort()))); -- Gitblit v1.8.0