From 9d56da5680fe1bb78a928d3f5f747b90a2364248 Mon Sep 17 00:00:00 2001
From: 648540858 <648540858@qq.com>
Date: 星期三, 16 八月 2023 01:57:39 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/wvp-28181-2.0' into wvp-28181-2.0
---
src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/RegisterRequestProcessor.java | 56 +++++++++++++++++++++++++++++---------------------------
1 files changed, 29 insertions(+), 27 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
old mode 100644
new mode 100755
index 0c8c3f6..761781c
--- 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
@@ -6,7 +6,7 @@
import com.genersoft.iot.vmp.gb28181.bean.Device;
import com.genersoft.iot.vmp.gb28181.bean.RemoteAddressInfo;
import com.genersoft.iot.vmp.gb28181.bean.SipTransactionInfo;
-import com.genersoft.iot.vmp.gb28181.bean.WvpSipDate;
+import com.genersoft.iot.vmp.gb28181.bean.GbSipDate;
import com.genersoft.iot.vmp.gb28181.transmit.SIPProcessorObserver;
import com.genersoft.iot.vmp.gb28181.transmit.SIPSender;
import com.genersoft.iot.vmp.gb28181.transmit.event.request.ISIPRequestProcessor;
@@ -80,40 +80,32 @@
public void process(RequestEvent evt) {
try {
RequestEventExt evtExt = (RequestEventExt) evt;
- String requestAddress = evtExt.getRemoteIpAddress() + ":" + evtExt.getRemotePort();
-// 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;
// 娉ㄥ唽鏍囧織
- boolean registerFlag;
+ boolean registerFlag = true;
+ if (request.getExpires().getExpires() == 0) {
+ // 娉ㄩ攢鎴愬姛
+ registerFlag = false;
+ }
FromHeader fromHeader = (FromHeader) request.getHeader(FromHeader.NAME);
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());
-
+ String requestAddress = remoteAddressInfo.getIp() + ":" + remoteAddressInfo.getPort();
+ String title = registerFlag ? "[娉ㄥ唽璇锋眰]": "[娉ㄩ攢璇锋眰]";
+ logger.info(title + "璁惧锛歿}, 寮�濮嬪鐞�: {}", deviceId, requestAddress);
if (device != null &&
device.getSipTransactionInfo() != null &&
request.getCallIdHeader().getCallId().equals(device.getSipTransactionInfo().getCallId())) {
- logger.info("[娉ㄥ唽璇锋眰] 璁惧锛歿}, 娉ㄥ唽缁: {}",device.getDeviceId(), device.getDeviceId());
+ logger.info(title + "璁惧锛歿}, 娉ㄥ唽缁: {}",device.getDeviceId(), device.getDeviceId());
device.setExpires(request.getExpires().getExpires());
device.setIp(remoteAddressInfo.getIp());
device.setPort(remoteAddressInfo.getPort());
@@ -133,7 +125,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: {}",deviceId, requestAddress);
+ logger.info(title + " 璁惧锛歿}, 鍥炲401: {}",deviceId, requestAddress);
response = getMessageFactory().createResponse(Response.UNAUTHORIZED, request);
new DigestServerAuthenticationHelper().generateChallenge(getHeaderFactory(), response, sipConfig.getDomain());
sipSender.transmitRequest(request.getLocalAddress().getHostAddress(), response);
@@ -148,7 +140,7 @@
// 娉ㄥ唽澶辫触
response = getMessageFactory().createResponse(Response.FORBIDDEN, request);
response.setReasonPhrase("wrong password");
- logger.info("[娉ㄥ唽璇锋眰] 璁惧锛歿}, 瀵嗙爜/SIP鏈嶅姟鍣↖D閿欒, 鍥炲403: {}", deviceId, requestAddress);
+ logger.info(title + " 璁惧锛歿}, 瀵嗙爜/SIP鏈嶅姟鍣↖D閿欒, 鍥炲403: {}", deviceId, requestAddress);
sipSender.transmitRequest(request.getLocalAddress().getHostAddress(), response);
return;
}
@@ -158,8 +150,8 @@
// 娣诲姞date澶�
SIPDateHeader dateHeader = new SIPDateHeader();
// 浣跨敤鑷繁淇敼鐨�
- WvpSipDate wvpSipDate = new WvpSipDate(Calendar.getInstance(Locale.ENGLISH).getTimeInMillis());
- dateHeader.setDate(wvpSipDate);
+ GbSipDate gbSipDate = new GbSipDate(Calendar.getInstance(Locale.ENGLISH).getTimeInMillis());
+ dateHeader.setDate(gbSipDate);
response.addHeader(dateHeader);
if (request.getExpires() == null) {
@@ -177,10 +169,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())));
@@ -221,8 +223,8 @@
// 娣诲姞date澶�
SIPDateHeader dateHeader = new SIPDateHeader();
// 浣跨敤鑷繁淇敼鐨�
- WvpSipDate wvpSipDate = new WvpSipDate(Calendar.getInstance(Locale.ENGLISH).getTimeInMillis());
- dateHeader.setDate(wvpSipDate);
+ GbSipDate gbSipDate = new GbSipDate(Calendar.getInstance(Locale.ENGLISH).getTimeInMillis());
+ dateHeader.setDate(gbSipDate);
response.addHeader(dateHeader);
// 娣诲姞Contact澶�
--
Gitblit v1.8.0