648540858
2023-07-06 e4754af417b176f5e0ab998e6594d875bc0a069c
src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/RegisterRequestProcessor.java
@@ -80,7 +80,6 @@
    public void process(RequestEvent evt) {
        try {
            RequestEventExt evtExt = (RequestEventExt) evt;
            String requestAddress = evtExt.getRemoteIpAddress() + ":" + evtExt.getRemotePort();
            SIPRequest request = (SIPRequest)evt.getRequest();
            Response response = null;
@@ -91,12 +90,13 @@
            AddressImpl address = (AddressImpl) fromHeader.getAddress();
            SipUri uri = (SipUri) address.getURI();
            String deviceId = uri.getUser();
            logger.info("[注册请求] 设备:{}, 开始处理: {}", deviceId, requestAddress);
            Device device = deviceService.getDevice(deviceId);
            RemoteAddressInfo remoteAddressInfo = SipUtils.getRemoteAddressFromRequest(request,
                    userSetting.getSipUseSourceIpAsRemoteAddress());
            logger.info("[注册请求] 设备:{}, 远程地址为: {}:{}", deviceId, remoteAddressInfo.getIp(), remoteAddressInfo.getPort());
            String requestAddress = remoteAddressInfo.getIp() + ":" + remoteAddressInfo.getPort();
                    logger.info("[注册请求] 设备:{}, 开始处理: {}", deviceId, requestAddress);
            if (device != null &&
                device.getSipTransactionInfo() != null &&
                request.getCallIdHeader().getCallId().equals(device.getSipTransactionInfo().getCallId())) {
@@ -164,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())));