|
|
@@ -91,6 +91,18 @@ public class RegisterReqHandler extends ReqAbstractHandler implements Initializi
|
|
|
try {
|
|
|
log.info("收到注册请求,开始处理");
|
|
|
Request request = evt.getRequest();
|
|
|
+
|
|
|
+ ViaHeader viaHeader = (ViaHeader) request.getHeader(ViaHeader.NAME);
|
|
|
+ String received = viaHeader.getReceived(); // 优先取received(实际接入的IP)
|
|
|
+ int rPort = viaHeader.getRPort();
|
|
|
+
|
|
|
+ // 本地模拟设备兼容(received为空/rPort=-1时,用ViaHeader的host/port替代)
|
|
|
+ if (StringUtils.isEmpty(received) || rPort == -1) {
|
|
|
+ log.warn("本地地址替代! received:{},rPort:{} [{}:{}]", received, rPort, viaHeader.getHost(), viaHeader.getPort());
|
|
|
+ received = viaHeader.getHost(); // 兜底取ViaHeader中的host作为IP
|
|
|
+ rPort = viaHeader.getPort();
|
|
|
+ }
|
|
|
+
|
|
|
Response response;
|
|
|
// 注册标志 0:未携带授权头或者密码错误 1:注册成功 2:注销成功
|
|
|
int registerFlag;
|
|
|
@@ -142,16 +154,16 @@ public class RegisterReqHandler extends ReqAbstractHandler implements Initializi
|
|
|
response.addHeader(request.getHeader(ContactHeader.NAME));
|
|
|
// 添加Expires头
|
|
|
response.addHeader(request.getExpires());
|
|
|
- ViaHeader viaHeader = (ViaHeader) request.getHeader(ViaHeader.NAME);
|
|
|
- String received = viaHeader.getReceived();
|
|
|
- int rPort = viaHeader.getRPort();
|
|
|
- // 本地模拟设备 received 为空 rPort 为 -1
|
|
|
- // 解析本地地址替代
|
|
|
- if (StringUtils.isEmpty(received) || rPort == -1) {
|
|
|
- log.warn("本地地址替代! received:{},rPort:{} [{}:{}]", received, rPort, viaHeader.getHost(), viaHeader.getPort());
|
|
|
- received = viaHeader.getHost();
|
|
|
- rPort = viaHeader.getPort();
|
|
|
- }
|
|
|
+// ViaHeader viaHeader = (ViaHeader) request.getHeader(ViaHeader.NAME);
|
|
|
+// String received = viaHeader.getReceived();
|
|
|
+// int rPort = viaHeader.getRPort();
|
|
|
+// // 本地模拟设备 received 为空 rPort 为 -1
|
|
|
+// // 解析本地地址替代
|
|
|
+// if (StringUtils.isEmpty(received) || rPort == -1) {
|
|
|
+// log.warn("本地地址替代! received:{},rPort:{} [{}:{}]", received, rPort, viaHeader.getHost(), viaHeader.getPort());
|
|
|
+// received = viaHeader.getHost();
|
|
|
+// rPort = viaHeader.getPort();
|
|
|
+// }
|
|
|
YfSipDeviceDO device = new YfSipDeviceDO();
|
|
|
;
|
|
|
device.setStreamMode("UDP");
|