Commit 7f79b925686e36e830499f103ffbd439d74dd701
1 parent
88721511
修复设备在事务内注销失败的问题
Showing
1 changed file
with
20 additions
and
16 deletions
src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/RegisterRequestProcessor.java
| ... | ... | @@ -103,23 +103,27 @@ public class RegisterRequestProcessor extends SIPRequestProcessorParent implemen |
| 103 | 103 | String title = registerFlag ? "[注册请求]": "[注销请求]"; |
| 104 | 104 | logger.info(title + "设备:{}, 开始处理: {}", deviceId, requestAddress); |
| 105 | 105 | if (device != null && |
| 106 | - device.getSipTransactionInfo() != null && | |
| 107 | - request.getCallIdHeader().getCallId().equals(device.getSipTransactionInfo().getCallId())) { | |
| 106 | + device.getSipTransactionInfo() != null && | |
| 107 | + request.getCallIdHeader().getCallId().equals(device.getSipTransactionInfo().getCallId())) { | |
| 108 | 108 | logger.info(title + "设备:{}, 注册续订: {}",device.getDeviceId(), device.getDeviceId()); |
| 109 | - device.setExpires(request.getExpires().getExpires()); | |
| 110 | - device.setIp(remoteAddressInfo.getIp()); | |
| 111 | - device.setPort(remoteAddressInfo.getPort()); | |
| 112 | - device.setHostAddress(remoteAddressInfo.getIp().concat(":").concat(String.valueOf(remoteAddressInfo.getPort()))); | |
| 113 | - device.setLocalIp(request.getLocalAddress().getHostAddress()); | |
| 114 | - Response registerOkResponse = getRegisterOkResponse(request); | |
| 115 | - // 判断TCP还是UDP | |
| 116 | - ViaHeader reqViaHeader = (ViaHeader) request.getHeader(ViaHeader.NAME); | |
| 117 | - String transport = reqViaHeader.getTransport(); | |
| 118 | - device.setTransport("TCP".equalsIgnoreCase(transport) ? "TCP" : "UDP"); | |
| 119 | - sipSender.transmitRequest(request.getLocalAddress().getHostAddress(), registerOkResponse); | |
| 120 | - device.setRegisterTime(DateUtil.getNow()); | |
| 121 | - SipTransactionInfo sipTransactionInfo = new SipTransactionInfo((SIPResponse)registerOkResponse); | |
| 122 | - deviceService.online(device, sipTransactionInfo); | |
| 109 | + if (registerFlag) { | |
| 110 | + device.setExpires(request.getExpires().getExpires()); | |
| 111 | + device.setIp(remoteAddressInfo.getIp()); | |
| 112 | + device.setPort(remoteAddressInfo.getPort()); | |
| 113 | + device.setHostAddress(remoteAddressInfo.getIp().concat(":").concat(String.valueOf(remoteAddressInfo.getPort()))); | |
| 114 | + device.setLocalIp(request.getLocalAddress().getHostAddress()); | |
| 115 | + Response registerOkResponse = getRegisterOkResponse(request); | |
| 116 | + // 判断TCP还是UDP | |
| 117 | + ViaHeader reqViaHeader = (ViaHeader) request.getHeader(ViaHeader.NAME); | |
| 118 | + String transport = reqViaHeader.getTransport(); | |
| 119 | + device.setTransport("TCP".equalsIgnoreCase(transport) ? "TCP" : "UDP"); | |
| 120 | + sipSender.transmitRequest(request.getLocalAddress().getHostAddress(), registerOkResponse); | |
| 121 | + device.setRegisterTime(DateUtil.getNow()); | |
| 122 | + SipTransactionInfo sipTransactionInfo = new SipTransactionInfo((SIPResponse)registerOkResponse); | |
| 123 | + deviceService.online(device, sipTransactionInfo); | |
| 124 | + }else { | |
| 125 | + deviceService.offline(deviceId, "主动注销"); | |
| 126 | + } | |
| 123 | 127 | return; |
| 124 | 128 | } |
| 125 | 129 | String password = (device != null && !ObjectUtils.isEmpty(device.getPassword()))? device.getPassword() : sipConfig.getPassword(); | ... | ... |