Commit 23710f1c649354fb21317dd710a4b2ec53688a44
1 parent
d340a37a
优化多网卡下的localIp获取
Showing
14 changed files
with
193 additions
and
153 deletions
src/main/java/com/genersoft/iot/vmp/common/StreamInfo.java
| @@ -5,7 +5,7 @@ import io.swagger.v3.oas.annotations.media.Schema; | @@ -5,7 +5,7 @@ import io.swagger.v3.oas.annotations.media.Schema; | ||
| 5 | import java.io.Serializable; | 5 | import java.io.Serializable; |
| 6 | 6 | ||
| 7 | @Schema(description = "流信息") | 7 | @Schema(description = "流信息") |
| 8 | -public class StreamInfo implements Serializable { | 8 | +public class StreamInfo implements Serializable, Cloneable{ |
| 9 | 9 | ||
| 10 | @Schema(description = "应用名") | 10 | @Schema(description = "应用名") |
| 11 | private String app; | 11 | private String app; |
| @@ -463,4 +463,15 @@ public class StreamInfo implements Serializable { | @@ -463,4 +463,15 @@ public class StreamInfo implements Serializable { | ||
| 463 | public void setTransactionInfo(TransactionInfo transactionInfo) { | 463 | public void setTransactionInfo(TransactionInfo transactionInfo) { |
| 464 | this.transactionInfo = transactionInfo; | 464 | this.transactionInfo = transactionInfo; |
| 465 | } | 465 | } |
| 466 | + | ||
| 467 | + @Override | ||
| 468 | + public StreamInfo clone() { | ||
| 469 | + StreamInfo instance = null; | ||
| 470 | + try{ | ||
| 471 | + instance = (StreamInfo)super.clone(); | ||
| 472 | + }catch(CloneNotSupportedException e) { | ||
| 473 | + e.printStackTrace(); | ||
| 474 | + } | ||
| 475 | + return instance; | ||
| 476 | + } | ||
| 466 | } | 477 | } |
src/main/java/com/genersoft/iot/vmp/conf/SipConfig.java
| @@ -3,6 +3,7 @@ package com.genersoft.iot.vmp.conf; | @@ -3,6 +3,7 @@ package com.genersoft.iot.vmp.conf; | ||
| 3 | 3 | ||
| 4 | import org.springframework.boot.context.properties.ConfigurationProperties; | 4 | import org.springframework.boot.context.properties.ConfigurationProperties; |
| 5 | import org.springframework.stereotype.Component; | 5 | import org.springframework.stereotype.Component; |
| 6 | +import org.springframework.util.ObjectUtils; | ||
| 6 | 7 | ||
| 7 | @Component | 8 | @Component |
| 8 | @ConfigurationProperties(prefix = "sip", ignoreInvalidFields = true) | 9 | @ConfigurationProperties(prefix = "sip", ignoreInvalidFields = true) |
| @@ -92,4 +93,10 @@ public class SipConfig { | @@ -92,4 +93,10 @@ public class SipConfig { | ||
| 92 | public void setAlarm(boolean alarm) { | 93 | public void setAlarm(boolean alarm) { |
| 93 | this.alarm = alarm; | 94 | this.alarm = alarm; |
| 94 | } | 95 | } |
| 96 | + | ||
| 97 | + public void getLocalIp(String deviceLocalIp) { | ||
| 98 | + if (ObjectUtils.isEmpty(deviceLocalIp)) { | ||
| 99 | + | ||
| 100 | + } | ||
| 101 | + } | ||
| 95 | } | 102 | } |
src/main/java/com/genersoft/iot/vmp/gb28181/SipLayer.java
| @@ -72,6 +72,7 @@ public class SipLayer implements CommandLineRunner { | @@ -72,6 +72,7 @@ public class SipLayer implements CommandLineRunner { | ||
| 72 | try { | 72 | try { |
| 73 | ListeningPoint tcpListeningPoint = sipStack.createListeningPoint(monitorIp, port, "TCP"); | 73 | ListeningPoint tcpListeningPoint = sipStack.createListeningPoint(monitorIp, port, "TCP"); |
| 74 | SipProviderImpl tcpSipProvider = (SipProviderImpl)sipStack.createSipProvider(tcpListeningPoint); | 74 | SipProviderImpl tcpSipProvider = (SipProviderImpl)sipStack.createSipProvider(tcpListeningPoint); |
| 75 | + | ||
| 75 | tcpSipProvider.setDialogErrorsAutomaticallyHandled(); | 76 | tcpSipProvider.setDialogErrorsAutomaticallyHandled(); |
| 76 | tcpSipProvider.addSipListener(sipProcessorObserver); | 77 | tcpSipProvider.addSipListener(sipProcessorObserver); |
| 77 | tcpSipProviderMap.put(monitorIp, tcpSipProvider); | 78 | tcpSipProviderMap.put(monitorIp, tcpSipProvider); |
| @@ -134,4 +135,11 @@ public class SipLayer implements CommandLineRunner { | @@ -134,4 +135,11 @@ public class SipLayer implements CommandLineRunner { | ||
| 134 | } | 135 | } |
| 135 | return tcpSipProviderMap.get(ip); | 136 | return tcpSipProviderMap.get(ip); |
| 136 | } | 137 | } |
| 138 | + | ||
| 139 | + public String getLocalIp(String deviceLocalIp) { | ||
| 140 | + if (!ObjectUtils.isEmpty(deviceLocalIp)) { | ||
| 141 | + return deviceLocalIp; | ||
| 142 | + } | ||
| 143 | + return getUdpSipProvider().getListeningPoint().getIPAddress(); | ||
| 144 | + } | ||
| 137 | } | 145 | } |
src/main/java/com/genersoft/iot/vmp/gb28181/transmit/SIPSender.java
| @@ -106,11 +106,27 @@ public class SIPSender { | @@ -106,11 +106,27 @@ public class SIPSender { | ||
| 106 | } | 106 | } |
| 107 | 107 | ||
| 108 | public CallIdHeader getNewCallIdHeader(String ip, String transport){ | 108 | public CallIdHeader getNewCallIdHeader(String ip, String transport){ |
| 109 | - if (ObjectUtils.isEmpty(ip) || ObjectUtils.isEmpty(transport)) { | ||
| 110 | - return transport.equalsIgnoreCase("TCP") ? sipLayer.getTcpSipProvider().getNewCallId() | ||
| 111 | - : sipLayer.getUdpSipProvider().getNewCallId(); | 109 | + if (ObjectUtils.isEmpty(transport)) { |
| 110 | + return sipLayer.getUdpSipProvider().getNewCallId(); | ||
| 111 | + } | ||
| 112 | + SipProviderImpl sipProvider; | ||
| 113 | + if (ObjectUtils.isEmpty(ip)) { | ||
| 114 | + sipProvider = transport.equalsIgnoreCase("TCP") ? sipLayer.getTcpSipProvider() | ||
| 115 | + : sipLayer.getUdpSipProvider(); | ||
| 116 | + }else { | ||
| 117 | + sipProvider = transport.equalsIgnoreCase("TCP") ? sipLayer.getTcpSipProvider(ip) | ||
| 118 | + : sipLayer.getUdpSipProvider(ip); | ||
| 119 | + } | ||
| 120 | + | ||
| 121 | + if (sipProvider == null) { | ||
| 122 | + sipProvider = sipLayer.getUdpSipProvider(); | ||
| 123 | + } | ||
| 124 | + | ||
| 125 | + if (sipProvider != null) { | ||
| 126 | + return sipProvider.getNewCallId(); | ||
| 127 | + }else { | ||
| 128 | + logger.warn("[新建CallIdHeader失败], ip={}, transport={}", ip, transport); | ||
| 129 | + return null; | ||
| 112 | } | 130 | } |
| 113 | - return transport.equalsIgnoreCase("TCP") ? sipLayer.getTcpSipProvider(ip).getNewCallId() | ||
| 114 | - : sipLayer.getUdpSipProvider(ip).getNewCallId(); | ||
| 115 | } | 131 | } |
| 116 | } | 132 | } |
src/main/java/com/genersoft/iot/vmp/gb28181/transmit/callback/DeferredResultHolder.java
| 1 | package com.genersoft.iot.vmp.gb28181.transmit.callback; | 1 | package com.genersoft.iot.vmp.gb28181.transmit.callback; |
| 2 | 2 | ||
| 3 | -import com.alibaba.fastjson2.JSON; | ||
| 4 | import com.genersoft.iot.vmp.vmanager.bean.DeferredResultEx; | 3 | import com.genersoft.iot.vmp.vmanager.bean.DeferredResultEx; |
| 5 | import org.springframework.stereotype.Component; | 4 | import org.springframework.stereotype.Component; |
| 6 | import org.springframework.util.ObjectUtils; | 5 | import org.springframework.util.ObjectUtils; |
| @@ -130,23 +129,26 @@ public class DeferredResultHolder { | @@ -130,23 +129,26 @@ public class DeferredResultHolder { | ||
| 130 | if (deferredResultMap == null) { | 129 | if (deferredResultMap == null) { |
| 131 | return; | 130 | return; |
| 132 | } | 131 | } |
| 133 | - Set<String> ids = deferredResultMap.keySet(); | ||
| 134 | - for (String id : ids) { | ||
| 135 | - DeferredResultEx result = deferredResultMap.get(id); | ||
| 136 | - if (result == null) { | 132 | + synchronized (this) { |
| 133 | + deferredResultMap = map.get(msg.getKey()); | ||
| 134 | + if (deferredResultMap == null) { | ||
| 137 | return; | 135 | return; |
| 138 | } | 136 | } |
| 139 | - if (result.getFilter() != null) { | ||
| 140 | - Object handler = result.getFilter().handler(msg.getData()); | ||
| 141 | - System.out.println(JSON.toJSONString(handler)); | ||
| 142 | - result.getDeferredResult().setResult(handler); | ||
| 143 | - }else { | ||
| 144 | - result.getDeferredResult().setResult(msg.getData()); | ||
| 145 | - } | 137 | + Set<String> ids = deferredResultMap.keySet(); |
| 138 | + for (String id : ids) { | ||
| 139 | + DeferredResultEx result = deferredResultMap.get(id); | ||
| 140 | + if (result == null) { | ||
| 141 | + return; | ||
| 142 | + } | ||
| 143 | + if (result.getFilter() != null) { | ||
| 144 | + Object handler = result.getFilter().handler(msg.getData()); | ||
| 145 | + result.getDeferredResult().setResult(handler); | ||
| 146 | + }else { | ||
| 147 | + result.getDeferredResult().setResult(msg.getData()); | ||
| 148 | + } | ||
| 146 | 149 | ||
| 150 | + } | ||
| 151 | + map.remove(msg.getKey()); | ||
| 147 | } | 152 | } |
| 148 | - map.remove(msg.getKey()); | ||
| 149 | } | 153 | } |
| 150 | - | ||
| 151 | - | ||
| 152 | } | 154 | } |
src/main/java/com/genersoft/iot/vmp/gb28181/transmit/cmd/SIPRequestHeaderProvider.java
| 1 | package com.genersoft.iot.vmp.gb28181.transmit.cmd; | 1 | package com.genersoft.iot.vmp.gb28181.transmit.cmd; |
| 2 | 2 | ||
| 3 | -import java.text.ParseException; | ||
| 4 | -import java.util.ArrayList; | ||
| 5 | - | ||
| 6 | -import javax.sip.*; | ||
| 7 | -import javax.sip.address.Address; | ||
| 8 | -import javax.sip.address.SipURI; | ||
| 9 | -import javax.sip.header.*; | ||
| 10 | -import javax.sip.message.Request; | ||
| 11 | - | 3 | +import com.genersoft.iot.vmp.conf.SipConfig; |
| 12 | import com.genersoft.iot.vmp.gb28181.SipLayer; | 4 | import com.genersoft.iot.vmp.gb28181.SipLayer; |
| 5 | +import com.genersoft.iot.vmp.gb28181.bean.Device; | ||
| 13 | import com.genersoft.iot.vmp.gb28181.bean.SipTransactionInfo; | 6 | import com.genersoft.iot.vmp.gb28181.bean.SipTransactionInfo; |
| 14 | import com.genersoft.iot.vmp.gb28181.session.VideoStreamSessionManager; | 7 | import com.genersoft.iot.vmp.gb28181.session.VideoStreamSessionManager; |
| 15 | import com.genersoft.iot.vmp.gb28181.utils.SipUtils; | 8 | import com.genersoft.iot.vmp.gb28181.utils.SipUtils; |
| @@ -20,8 +13,15 @@ import gov.nist.javax.sip.message.SIPResponse; | @@ -20,8 +13,15 @@ import gov.nist.javax.sip.message.SIPResponse; | ||
| 20 | import org.springframework.beans.factory.annotation.Autowired; | 13 | import org.springframework.beans.factory.annotation.Autowired; |
| 21 | import org.springframework.stereotype.Component; | 14 | import org.springframework.stereotype.Component; |
| 22 | 15 | ||
| 23 | -import com.genersoft.iot.vmp.conf.SipConfig; | ||
| 24 | -import com.genersoft.iot.vmp.gb28181.bean.Device; | 16 | +import javax.sip.InvalidArgumentException; |
| 17 | +import javax.sip.PeerUnavailableException; | ||
| 18 | +import javax.sip.SipException; | ||
| 19 | +import javax.sip.address.Address; | ||
| 20 | +import javax.sip.address.SipURI; | ||
| 21 | +import javax.sip.header.*; | ||
| 22 | +import javax.sip.message.Request; | ||
| 23 | +import java.text.ParseException; | ||
| 24 | +import java.util.ArrayList; | ||
| 25 | 25 | ||
| 26 | /** | 26 | /** |
| 27 | * @description:摄像头命令request创造器 TODO 冗余代码太多待优化 | 27 | * @description:摄像头命令request创造器 TODO 冗余代码太多待优化 |
| @@ -52,7 +52,7 @@ public class SIPRequestHeaderProvider { | @@ -52,7 +52,7 @@ public class SIPRequestHeaderProvider { | ||
| 52 | SipURI requestURI = sipLayer.getSipFactory().createAddressFactory().createSipURI(device.getDeviceId(), device.getHostAddress()); | 52 | SipURI requestURI = sipLayer.getSipFactory().createAddressFactory().createSipURI(device.getDeviceId(), device.getHostAddress()); |
| 53 | // via | 53 | // via |
| 54 | ArrayList<ViaHeader> viaHeaders = new ArrayList<ViaHeader>(); | 54 | ArrayList<ViaHeader> viaHeaders = new ArrayList<ViaHeader>(); |
| 55 | - ViaHeader viaHeader = sipLayer.getSipFactory().createHeaderFactory().createViaHeader(device.getLocalIp(), sipConfig.getPort(), device.getTransport(), viaTag); | 55 | + ViaHeader viaHeader = sipLayer.getSipFactory().createHeaderFactory().createViaHeader(sipLayer.getLocalIp(device.getLocalIp()), sipConfig.getPort(), device.getTransport(), viaTag); |
| 56 | viaHeader.setRPort(); | 56 | viaHeader.setRPort(); |
| 57 | viaHeaders.add(viaHeader); | 57 | viaHeaders.add(viaHeader); |
| 58 | // from | 58 | // from |
| @@ -85,7 +85,8 @@ public class SIPRequestHeaderProvider { | @@ -85,7 +85,8 @@ public class SIPRequestHeaderProvider { | ||
| 85 | SipURI requestLine = sipLayer.getSipFactory().createAddressFactory().createSipURI(channelId, device.getHostAddress()); | 85 | SipURI requestLine = sipLayer.getSipFactory().createAddressFactory().createSipURI(channelId, device.getHostAddress()); |
| 86 | //via | 86 | //via |
| 87 | ArrayList<ViaHeader> viaHeaders = new ArrayList<ViaHeader>(); | 87 | ArrayList<ViaHeader> viaHeaders = new ArrayList<ViaHeader>(); |
| 88 | - ViaHeader viaHeader = sipLayer.getSipFactory().createHeaderFactory().createViaHeader(device.getLocalIp(), sipConfig.getPort(), device.getTransport(), viaTag); | 88 | + HeaderFactory headerFactory = sipLayer.getSipFactory().createHeaderFactory(); |
| 89 | + ViaHeader viaHeader = sipLayer.getSipFactory().createHeaderFactory().createViaHeader(sipLayer.getLocalIp(device.getLocalIp()), sipConfig.getPort(), device.getTransport(), viaTag); | ||
| 89 | viaHeader.setRPort(); | 90 | viaHeader.setRPort(); |
| 90 | viaHeaders.add(viaHeader); | 91 | viaHeaders.add(viaHeader); |
| 91 | 92 | ||
| @@ -107,7 +108,7 @@ public class SIPRequestHeaderProvider { | @@ -107,7 +108,7 @@ public class SIPRequestHeaderProvider { | ||
| 107 | 108 | ||
| 108 | request.addHeader(SipUtils.createUserAgentHeader(sipLayer.getSipFactory(), gitUtil)); | 109 | request.addHeader(SipUtils.createUserAgentHeader(sipLayer.getSipFactory(), gitUtil)); |
| 109 | 110 | ||
| 110 | - Address concatAddress = sipLayer.getSipFactory().createAddressFactory().createAddress(sipLayer.getSipFactory().createAddressFactory().createSipURI(sipConfig.getId(), device.getLocalIp()+":"+sipConfig.getPort())); | 111 | + Address concatAddress = sipLayer.getSipFactory().createAddressFactory().createAddress(sipLayer.getSipFactory().createAddressFactory().createSipURI(sipConfig.getId(), sipLayer.getLocalIp(device.getLocalIp())+":"+sipConfig.getPort())); |
| 111 | // Address concatAddress = sipLayer.getSipFactory().createAddressFactory().createAddress(sipLayer.getSipFactory().createAddressFactory().createSipURI(sipConfig.getId(), device.getHost().getIp()+":"+device.getHost().getPort())); | 112 | // Address concatAddress = sipLayer.getSipFactory().createAddressFactory().createAddress(sipLayer.getSipFactory().createAddressFactory().createSipURI(sipConfig.getId(), device.getHost().getIp()+":"+device.getHost().getPort())); |
| 112 | request.addHeader(sipLayer.getSipFactory().createHeaderFactory().createContactHeader(concatAddress)); | 113 | request.addHeader(sipLayer.getSipFactory().createHeaderFactory().createContactHeader(concatAddress)); |
| 113 | // Subject | 114 | // Subject |
| @@ -124,7 +125,7 @@ public class SIPRequestHeaderProvider { | @@ -124,7 +125,7 @@ public class SIPRequestHeaderProvider { | ||
| 124 | SipURI requestLine = sipLayer.getSipFactory().createAddressFactory().createSipURI(channelId, device.getHostAddress()); | 125 | SipURI requestLine = sipLayer.getSipFactory().createAddressFactory().createSipURI(channelId, device.getHostAddress()); |
| 125 | // via | 126 | // via |
| 126 | ArrayList<ViaHeader> viaHeaders = new ArrayList<ViaHeader>(); | 127 | ArrayList<ViaHeader> viaHeaders = new ArrayList<ViaHeader>(); |
| 127 | - ViaHeader viaHeader = sipLayer.getSipFactory().createHeaderFactory().createViaHeader(device.getLocalIp(), sipConfig.getPort(), device.getTransport(), viaTag); | 128 | + ViaHeader viaHeader = sipLayer.getSipFactory().createHeaderFactory().createViaHeader(sipLayer.getLocalIp(device.getLocalIp()), sipConfig.getPort(), device.getTransport(), viaTag); |
| 128 | viaHeader.setRPort(); | 129 | viaHeader.setRPort(); |
| 129 | viaHeaders.add(viaHeader); | 130 | viaHeaders.add(viaHeader); |
| 130 | //from | 131 | //from |
| @@ -143,7 +144,7 @@ public class SIPRequestHeaderProvider { | @@ -143,7 +144,7 @@ public class SIPRequestHeaderProvider { | ||
| 143 | CSeqHeader cSeqHeader = sipLayer.getSipFactory().createHeaderFactory().createCSeqHeader(redisCatchStorage.getCSEQ(), Request.INVITE); | 144 | CSeqHeader cSeqHeader = sipLayer.getSipFactory().createHeaderFactory().createCSeqHeader(redisCatchStorage.getCSEQ(), Request.INVITE); |
| 144 | request = sipLayer.getSipFactory().createMessageFactory().createRequest(requestLine, Request.INVITE, callIdHeader, cSeqHeader,fromHeader, toHeader, viaHeaders, maxForwards); | 145 | request = sipLayer.getSipFactory().createMessageFactory().createRequest(requestLine, Request.INVITE, callIdHeader, cSeqHeader,fromHeader, toHeader, viaHeaders, maxForwards); |
| 145 | 146 | ||
| 146 | - Address concatAddress = sipLayer.getSipFactory().createAddressFactory().createAddress(sipLayer.getSipFactory().createAddressFactory().createSipURI(sipConfig.getId(), device.getLocalIp()+":"+sipConfig.getPort())); | 147 | + Address concatAddress = sipLayer.getSipFactory().createAddressFactory().createAddress(sipLayer.getSipFactory().createAddressFactory().createSipURI(sipConfig.getId(), sipLayer.getLocalIp(device.getLocalIp())+":"+sipConfig.getPort())); |
| 147 | // Address concatAddress = sipLayer.getSipFactory().createAddressFactory().createAddress(sipLayer.getSipFactory().createAddressFactory().createSipURI(sipConfig.getId(), device.getHost().getIp()+":"+device.getHost().getPort())); | 148 | // Address concatAddress = sipLayer.getSipFactory().createAddressFactory().createAddress(sipLayer.getSipFactory().createAddressFactory().createSipURI(sipConfig.getId(), device.getHost().getIp()+":"+device.getHost().getPort())); |
| 148 | request.addHeader(sipLayer.getSipFactory().createHeaderFactory().createContactHeader(concatAddress)); | 149 | request.addHeader(sipLayer.getSipFactory().createHeaderFactory().createContactHeader(concatAddress)); |
| 149 | 150 | ||
| @@ -164,7 +165,7 @@ public class SIPRequestHeaderProvider { | @@ -164,7 +165,7 @@ public class SIPRequestHeaderProvider { | ||
| 164 | SipURI requestLine = sipLayer.getSipFactory().createAddressFactory().createSipURI(channelId, device.getHostAddress()); | 165 | SipURI requestLine = sipLayer.getSipFactory().createAddressFactory().createSipURI(channelId, device.getHostAddress()); |
| 165 | // via | 166 | // via |
| 166 | ArrayList<ViaHeader> viaHeaders = new ArrayList<ViaHeader>(); | 167 | ArrayList<ViaHeader> viaHeaders = new ArrayList<ViaHeader>(); |
| 167 | - ViaHeader viaHeader = sipLayer.getSipFactory().createHeaderFactory().createViaHeader(device.getLocalIp(), sipConfig.getPort(), device.getTransport(), SipUtils.getNewViaTag()); | 168 | + ViaHeader viaHeader = sipLayer.getSipFactory().createHeaderFactory().createViaHeader(sipLayer.getLocalIp(device.getLocalIp()), sipConfig.getPort(), device.getTransport(), SipUtils.getNewViaTag()); |
| 168 | viaHeaders.add(viaHeader); | 169 | viaHeaders.add(viaHeader); |
| 169 | //from | 170 | //from |
| 170 | SipURI fromSipURI = sipLayer.getSipFactory().createAddressFactory().createSipURI(sipConfig.getId(),sipConfig.getDomain()); | 171 | SipURI fromSipURI = sipLayer.getSipFactory().createAddressFactory().createSipURI(sipConfig.getId(),sipConfig.getDomain()); |
| @@ -185,7 +186,7 @@ public class SIPRequestHeaderProvider { | @@ -185,7 +186,7 @@ public class SIPRequestHeaderProvider { | ||
| 185 | 186 | ||
| 186 | request.addHeader(SipUtils.createUserAgentHeader(sipLayer.getSipFactory(), gitUtil)); | 187 | request.addHeader(SipUtils.createUserAgentHeader(sipLayer.getSipFactory(), gitUtil)); |
| 187 | 188 | ||
| 188 | - Address concatAddress = sipLayer.getSipFactory().createAddressFactory().createAddress(sipLayer.getSipFactory().createAddressFactory().createSipURI(sipConfig.getId(), device.getLocalIp()+":"+sipConfig.getPort())); | 189 | + Address concatAddress = sipLayer.getSipFactory().createAddressFactory().createAddress(sipLayer.getSipFactory().createAddressFactory().createSipURI(sipConfig.getId(), sipLayer.getLocalIp(device.getLocalIp())+":"+sipConfig.getPort())); |
| 189 | request.addHeader(sipLayer.getSipFactory().createHeaderFactory().createContactHeader(concatAddress)); | 190 | request.addHeader(sipLayer.getSipFactory().createHeaderFactory().createContactHeader(concatAddress)); |
| 190 | 191 | ||
| 191 | request.addHeader(SipUtils.createUserAgentHeader(sipLayer.getSipFactory(), gitUtil)); | 192 | request.addHeader(SipUtils.createUserAgentHeader(sipLayer.getSipFactory(), gitUtil)); |
| @@ -199,7 +200,7 @@ public class SIPRequestHeaderProvider { | @@ -199,7 +200,7 @@ public class SIPRequestHeaderProvider { | ||
| 199 | SipURI requestURI = sipLayer.getSipFactory().createAddressFactory().createSipURI(device.getDeviceId(), device.getHostAddress()); | 200 | SipURI requestURI = sipLayer.getSipFactory().createAddressFactory().createSipURI(device.getDeviceId(), device.getHostAddress()); |
| 200 | // via | 201 | // via |
| 201 | ArrayList<ViaHeader> viaHeaders = new ArrayList<ViaHeader>(); | 202 | ArrayList<ViaHeader> viaHeaders = new ArrayList<ViaHeader>(); |
| 202 | - ViaHeader viaHeader = sipLayer.getSipFactory().createHeaderFactory().createViaHeader(device.getLocalIp(), sipConfig.getPort(), | 203 | + ViaHeader viaHeader = sipLayer.getSipFactory().createHeaderFactory().createViaHeader(sipLayer.getLocalIp(device.getLocalIp()), sipConfig.getPort(), |
| 203 | device.getTransport(), SipUtils.getNewViaTag()); | 204 | device.getTransport(), SipUtils.getNewViaTag()); |
| 204 | viaHeader.setRPort(); | 205 | viaHeader.setRPort(); |
| 205 | viaHeaders.add(viaHeader); | 206 | viaHeaders.add(viaHeader); |
| @@ -222,7 +223,7 @@ public class SIPRequestHeaderProvider { | @@ -222,7 +223,7 @@ public class SIPRequestHeaderProvider { | ||
| 222 | toHeader, viaHeaders, maxForwards); | 223 | toHeader, viaHeaders, maxForwards); |
| 223 | 224 | ||
| 224 | 225 | ||
| 225 | - Address concatAddress = sipLayer.getSipFactory().createAddressFactory().createAddress(sipLayer.getSipFactory().createAddressFactory().createSipURI(sipConfig.getId(), device.getLocalIp()+":"+sipConfig.getPort())); | 226 | + Address concatAddress = sipLayer.getSipFactory().createAddressFactory().createAddress(sipLayer.getSipFactory().createAddressFactory().createSipURI(sipConfig.getId(), sipLayer.getLocalIp(device.getLocalIp())+":"+sipConfig.getPort())); |
| 226 | request.addHeader(sipLayer.getSipFactory().createHeaderFactory().createContactHeader(concatAddress)); | 227 | request.addHeader(sipLayer.getSipFactory().createHeaderFactory().createContactHeader(concatAddress)); |
| 227 | 228 | ||
| 228 | // Expires | 229 | // Expires |
| @@ -254,7 +255,7 @@ public class SIPRequestHeaderProvider { | @@ -254,7 +255,7 @@ public class SIPRequestHeaderProvider { | ||
| 254 | SipURI requestLine = sipLayer.getSipFactory().createAddressFactory().createSipURI(channelId, device.getHostAddress()); | 255 | SipURI requestLine = sipLayer.getSipFactory().createAddressFactory().createSipURI(channelId, device.getHostAddress()); |
| 255 | // via | 256 | // via |
| 256 | ArrayList<ViaHeader> viaHeaders = new ArrayList<ViaHeader>(); | 257 | ArrayList<ViaHeader> viaHeaders = new ArrayList<ViaHeader>(); |
| 257 | - ViaHeader viaHeader = sipLayer.getSipFactory().createHeaderFactory().createViaHeader(device.getLocalIp(), sipConfig.getPort(), device.getTransport(), SipUtils.getNewViaTag()); | 258 | + ViaHeader viaHeader = sipLayer.getSipFactory().createHeaderFactory().createViaHeader(sipLayer.getLocalIp(device.getLocalIp()), sipConfig.getPort(), device.getTransport(), SipUtils.getNewViaTag()); |
| 258 | viaHeaders.add(viaHeader); | 259 | viaHeaders.add(viaHeader); |
| 259 | //from | 260 | //from |
| 260 | SipURI fromSipURI = sipLayer.getSipFactory().createAddressFactory().createSipURI(sipConfig.getId(),sipConfig.getDomain()); | 261 | SipURI fromSipURI = sipLayer.getSipFactory().createAddressFactory().createSipURI(sipConfig.getId(),sipConfig.getDomain()); |
| @@ -275,7 +276,7 @@ public class SIPRequestHeaderProvider { | @@ -275,7 +276,7 @@ public class SIPRequestHeaderProvider { | ||
| 275 | 276 | ||
| 276 | request.addHeader(SipUtils.createUserAgentHeader(sipLayer.getSipFactory(), gitUtil)); | 277 | request.addHeader(SipUtils.createUserAgentHeader(sipLayer.getSipFactory(), gitUtil)); |
| 277 | 278 | ||
| 278 | - Address concatAddress = sipLayer.getSipFactory().createAddressFactory().createAddress(sipLayer.getSipFactory().createAddressFactory().createSipURI(sipConfig.getId(), device.getLocalIp()+":"+sipConfig.getPort())); | 279 | + Address concatAddress = sipLayer.getSipFactory().createAddressFactory().createAddress(sipLayer.getSipFactory().createAddressFactory().createSipURI(sipConfig.getId(), sipLayer.getLocalIp(device.getLocalIp())+":"+sipConfig.getPort())); |
| 279 | request.addHeader(sipLayer.getSipFactory().createHeaderFactory().createContactHeader(concatAddress)); | 280 | request.addHeader(sipLayer.getSipFactory().createHeaderFactory().createContactHeader(concatAddress)); |
| 280 | 281 | ||
| 281 | request.addHeader(SipUtils.createUserAgentHeader(sipLayer.getSipFactory(), gitUtil)); | 282 | request.addHeader(SipUtils.createUserAgentHeader(sipLayer.getSipFactory(), gitUtil)); |
src/main/java/com/genersoft/iot/vmp/gb28181/transmit/cmd/impl/SIPCommander.java
| @@ -33,7 +33,6 @@ import org.springframework.util.ObjectUtils; | @@ -33,7 +33,6 @@ import org.springframework.util.ObjectUtils; | ||
| 33 | import javax.sip.InvalidArgumentException; | 33 | import javax.sip.InvalidArgumentException; |
| 34 | import javax.sip.ResponseEvent; | 34 | import javax.sip.ResponseEvent; |
| 35 | import javax.sip.SipException; | 35 | import javax.sip.SipException; |
| 36 | -import javax.sip.SipFactory; | ||
| 37 | import javax.sip.header.CallIdHeader; | 36 | import javax.sip.header.CallIdHeader; |
| 38 | import javax.sip.message.Request; | 37 | import javax.sip.message.Request; |
| 39 | import java.text.ParseException; | 38 | import java.text.ParseException; |
| @@ -182,9 +181,9 @@ public class SIPCommander implements ISIPCommander { | @@ -182,9 +181,9 @@ public class SIPCommander implements ISIPCommander { | ||
| 182 | ptzXml.append("</Info>\r\n"); | 181 | ptzXml.append("</Info>\r\n"); |
| 183 | ptzXml.append("</Control>\r\n"); | 182 | ptzXml.append("</Control>\r\n"); |
| 184 | 183 | ||
| 185 | - Request request = headerProvider.createMessageRequest(device, ptzXml.toString(), SipUtils.getNewViaTag(), SipUtils.getNewFromTag(), null, sipSender.getNewCallIdHeader(device.getLocalIp(),device.getTransport())); | 184 | + Request request = headerProvider.createMessageRequest(device, ptzXml.toString(), SipUtils.getNewViaTag(), SipUtils.getNewFromTag(), null, sipSender.getNewCallIdHeader(sipLayer.getLocalIp(device.getLocalIp()),device.getTransport())); |
| 186 | 185 | ||
| 187 | - sipSender.transmitRequest(device.getLocalIp(),request); | 186 | + sipSender.transmitRequest(sipLayer.getLocalIp(device.getLocalIp()),request); |
| 188 | } | 187 | } |
| 189 | 188 | ||
| 190 | /** | 189 | /** |
| @@ -217,8 +216,8 @@ public class SIPCommander implements ISIPCommander { | @@ -217,8 +216,8 @@ public class SIPCommander implements ISIPCommander { | ||
| 217 | 216 | ||
| 218 | 217 | ||
| 219 | 218 | ||
| 220 | - SIPRequest request = (SIPRequest) headerProvider.createMessageRequest(device, ptzXml.toString(), SipUtils.getNewViaTag(), SipUtils.getNewFromTag(), null,sipSender.getNewCallIdHeader(device.getLocalIp(),device.getTransport())); | ||
| 221 | - sipSender.transmitRequest(device.getLocalIp(),request); | 219 | + SIPRequest request = (SIPRequest) headerProvider.createMessageRequest(device, ptzXml.toString(), SipUtils.getNewViaTag(), SipUtils.getNewFromTag(), null,sipSender.getNewCallIdHeader(sipLayer.getLocalIp(device.getLocalIp()),device.getTransport())); |
| 220 | + sipSender.transmitRequest(sipLayer.getLocalIp(device.getLocalIp()),request); | ||
| 222 | 221 | ||
| 223 | } | 222 | } |
| 224 | 223 | ||
| @@ -246,8 +245,8 @@ public class SIPCommander implements ISIPCommander { | @@ -246,8 +245,8 @@ public class SIPCommander implements ISIPCommander { | ||
| 246 | ptzXml.append("</Control>\r\n"); | 245 | ptzXml.append("</Control>\r\n"); |
| 247 | 246 | ||
| 248 | 247 | ||
| 249 | - Request request = headerProvider.createMessageRequest(device, ptzXml.toString(), SipUtils.getNewViaTag(), SipUtils.getNewFromTag(), null,sipSender.getNewCallIdHeader(device.getLocalIp(),device.getTransport())); | ||
| 250 | - sipSender.transmitRequest(device.getLocalIp(),request, errorEvent, okEvent); | 248 | + Request request = headerProvider.createMessageRequest(device, ptzXml.toString(), SipUtils.getNewViaTag(), SipUtils.getNewFromTag(), null,sipSender.getNewCallIdHeader(sipLayer.getLocalIp(device.getLocalIp()),device.getTransport())); |
| 249 | + sipSender.transmitRequest(sipLayer.getLocalIp(device.getLocalIp()),request, errorEvent, okEvent); | ||
| 251 | 250 | ||
| 252 | } | 251 | } |
| 253 | 252 | ||
| @@ -341,8 +340,8 @@ public class SIPCommander implements ISIPCommander { | @@ -341,8 +340,8 @@ public class SIPCommander implements ISIPCommander { | ||
| 341 | 340 | ||
| 342 | 341 | ||
| 343 | 342 | ||
| 344 | - Request request = headerProvider.createInviteRequest(device, channelId, content.toString(), SipUtils.getNewViaTag(), SipUtils.getNewFromTag(), null, ssrcInfo.getSsrc(),sipSender.getNewCallIdHeader(device.getLocalIp(),device.getTransport())); | ||
| 345 | - sipSender.transmitRequest(device.getLocalIp(), request, (e -> { | 343 | + Request request = headerProvider.createInviteRequest(device, channelId, content.toString(), SipUtils.getNewViaTag(), SipUtils.getNewFromTag(), null, ssrcInfo.getSsrc(),sipSender.getNewCallIdHeader(sipLayer.getLocalIp(device.getLocalIp()),device.getTransport())); |
| 344 | + sipSender.transmitRequest(sipLayer.getLocalIp(device.getLocalIp()), request, (e -> { | ||
| 346 | streamSession.remove(device.getDeviceId(), channelId, ssrcInfo.getStream()); | 345 | streamSession.remove(device.getDeviceId(), channelId, ssrcInfo.getStream()); |
| 347 | mediaServerService.releaseSsrc(mediaServerItem.getId(), ssrcInfo.getSsrc()); | 346 | mediaServerService.releaseSsrc(mediaServerItem.getId(), ssrcInfo.getSsrc()); |
| 348 | errorEvent.response(e); | 347 | errorEvent.response(e); |
| @@ -442,21 +441,21 @@ public class SIPCommander implements ISIPCommander { | @@ -442,21 +441,21 @@ public class SIPCommander implements ISIPCommander { | ||
| 442 | // 添加订阅 | 441 | // 添加订阅 |
| 443 | subscribe.addSubscribe(hookSubscribe, (MediaServerItem mediaServerItemInUse, JSONObject json) -> { | 442 | subscribe.addSubscribe(hookSubscribe, (MediaServerItem mediaServerItemInUse, JSONObject json) -> { |
| 444 | if (hookEvent != null) { | 443 | if (hookEvent != null) { |
| 445 | - InviteStreamInfo inviteStreamInfo = new InviteStreamInfo(mediaServerItemInUse, json,sipSender.getNewCallIdHeader(device.getLocalIp(),device.getTransport()).getCallId(), "rtp", ssrcInfo.getStream()); | 444 | + InviteStreamInfo inviteStreamInfo = new InviteStreamInfo(mediaServerItemInUse, json,sipSender.getNewCallIdHeader(sipLayer.getLocalIp(device.getLocalIp()),device.getTransport()).getCallId(), "rtp", ssrcInfo.getStream()); |
| 446 | hookEvent.call(inviteStreamInfo); | 445 | hookEvent.call(inviteStreamInfo); |
| 447 | } | 446 | } |
| 448 | subscribe.removeSubscribe(hookSubscribe); | 447 | subscribe.removeSubscribe(hookSubscribe); |
| 449 | }); | 448 | }); |
| 450 | - Request request = headerProvider.createPlaybackInviteRequest(device, channelId, content.toString(), null, SipUtils.getNewFromTag(), null,sipSender.getNewCallIdHeader(device.getLocalIp(),device.getTransport()), ssrcInfo.getSsrc()); | 449 | + Request request = headerProvider.createPlaybackInviteRequest(device, channelId, content.toString(), null, SipUtils.getNewFromTag(), null,sipSender.getNewCallIdHeader(sipLayer.getLocalIp(device.getLocalIp()),device.getTransport()), ssrcInfo.getSsrc()); |
| 451 | 450 | ||
| 452 | - sipSender.transmitRequest(device.getLocalIp(), request, errorEvent, event -> { | 451 | + sipSender.transmitRequest(sipLayer.getLocalIp(device.getLocalIp()), request, errorEvent, event -> { |
| 453 | ResponseEvent responseEvent = (ResponseEvent) event.event; | 452 | ResponseEvent responseEvent = (ResponseEvent) event.event; |
| 454 | SIPResponse response = (SIPResponse) responseEvent.getResponse(); | 453 | SIPResponse response = (SIPResponse) responseEvent.getResponse(); |
| 455 | - streamSession.put(device.getDeviceId(), channelId,sipSender.getNewCallIdHeader(device.getLocalIp(),device.getTransport()).getCallId(), ssrcInfo.getStream(), ssrcInfo.getSsrc(), mediaServerItem.getId(), response, VideoStreamSessionManager.SessionType.playback); | 454 | + streamSession.put(device.getDeviceId(), channelId,sipSender.getNewCallIdHeader(sipLayer.getLocalIp(device.getLocalIp()),device.getTransport()).getCallId(), ssrcInfo.getStream(), ssrcInfo.getSsrc(), mediaServerItem.getId(), response, VideoStreamSessionManager.SessionType.playback); |
| 456 | okEvent.response(event); | 455 | okEvent.response(event); |
| 457 | }); | 456 | }); |
| 458 | if (inviteStreamCallback != null) { | 457 | if (inviteStreamCallback != null) { |
| 459 | - inviteStreamCallback.call(new InviteStreamInfo(mediaServerItem, null,sipSender.getNewCallIdHeader(device.getLocalIp(),device.getTransport()).getCallId(), "rtp", ssrcInfo.getStream())); | 458 | + inviteStreamCallback.call(new InviteStreamInfo(mediaServerItem, null,sipSender.getNewCallIdHeader(sipLayer.getLocalIp(device.getLocalIp()),device.getTransport()).getCallId(), "rtp", ssrcInfo.getStream())); |
| 460 | } | 459 | } |
| 461 | } | 460 | } |
| 462 | 461 | ||
| @@ -545,7 +544,7 @@ public class SIPCommander implements ISIPCommander { | @@ -545,7 +544,7 @@ public class SIPCommander implements ISIPCommander { | ||
| 545 | HookSubscribeForStreamChange hookSubscribe = HookSubscribeFactory.on_stream_changed("rtp", ssrcInfo.getStream(), true, null, mediaServerItem.getId()); | 544 | HookSubscribeForStreamChange hookSubscribe = HookSubscribeFactory.on_stream_changed("rtp", ssrcInfo.getStream(), true, null, mediaServerItem.getId()); |
| 546 | // 添加订阅 | 545 | // 添加订阅 |
| 547 | subscribe.addSubscribe(hookSubscribe, (MediaServerItem mediaServerItemInUse, JSONObject json) -> { | 546 | subscribe.addSubscribe(hookSubscribe, (MediaServerItem mediaServerItemInUse, JSONObject json) -> { |
| 548 | - hookEvent.call(new InviteStreamInfo(mediaServerItem, json,sipSender.getNewCallIdHeader(device.getLocalIp(),device.getTransport()).getCallId(), "rtp", ssrcInfo.getStream())); | 547 | + hookEvent.call(new InviteStreamInfo(mediaServerItem, json,sipSender.getNewCallIdHeader(sipLayer.getLocalIp(device.getLocalIp()),device.getTransport()).getCallId(), "rtp", ssrcInfo.getStream())); |
| 549 | subscribe.removeSubscribe(hookSubscribe); | 548 | subscribe.removeSubscribe(hookSubscribe); |
| 550 | hookSubscribe.getContent().put("regist", false); | 549 | hookSubscribe.getContent().put("regist", false); |
| 551 | hookSubscribe.getContent().put("schema", "rtsp"); | 550 | hookSubscribe.getContent().put("schema", "rtsp"); |
| @@ -554,7 +553,7 @@ public class SIPCommander implements ISIPCommander { | @@ -554,7 +553,7 @@ public class SIPCommander implements ISIPCommander { | ||
| 554 | (MediaServerItem mediaServerItemForEnd, JSONObject jsonForEnd) -> { | 553 | (MediaServerItem mediaServerItemForEnd, JSONObject jsonForEnd) -> { |
| 555 | logger.info("[录像]下载结束, 发送BYE"); | 554 | logger.info("[录像]下载结束, 发送BYE"); |
| 556 | try { | 555 | try { |
| 557 | - streamByeCmd(device, channelId, ssrcInfo.getStream(),sipSender.getNewCallIdHeader(device.getLocalIp(),device.getTransport()).getCallId()); | 556 | + streamByeCmd(device, channelId, ssrcInfo.getStream(),sipSender.getNewCallIdHeader(sipLayer.getLocalIp(device.getLocalIp()),device.getTransport()).getCallId()); |
| 558 | } catch (InvalidArgumentException | ParseException | SipException | | 557 | } catch (InvalidArgumentException | ParseException | SipException | |
| 559 | SsrcTransactionNotFoundException e) { | 558 | SsrcTransactionNotFoundException e) { |
| 560 | logger.error("[录像]下载结束, 发送BYE失败 {}", e.getMessage()); | 559 | logger.error("[录像]下载结束, 发送BYE失败 {}", e.getMessage()); |
| @@ -562,14 +561,14 @@ public class SIPCommander implements ISIPCommander { | @@ -562,14 +561,14 @@ public class SIPCommander implements ISIPCommander { | ||
| 562 | }); | 561 | }); |
| 563 | }); | 562 | }); |
| 564 | 563 | ||
| 565 | - Request request = headerProvider.createPlaybackInviteRequest(device, channelId, content.toString(), null, SipUtils.getNewFromTag(), null,sipSender.getNewCallIdHeader(device.getLocalIp(),device.getTransport()), ssrcInfo.getSsrc()); | 564 | + Request request = headerProvider.createPlaybackInviteRequest(device, channelId, content.toString(), null, SipUtils.getNewFromTag(), null,sipSender.getNewCallIdHeader(sipLayer.getLocalIp(device.getLocalIp()),device.getTransport()), ssrcInfo.getSsrc()); |
| 566 | if (inviteStreamCallback != null) { | 565 | if (inviteStreamCallback != null) { |
| 567 | - inviteStreamCallback.call(new InviteStreamInfo(mediaServerItem, null,sipSender.getNewCallIdHeader(device.getLocalIp(),device.getTransport()).getCallId(), "rtp", ssrcInfo.getStream())); | 566 | + inviteStreamCallback.call(new InviteStreamInfo(mediaServerItem, null,sipSender.getNewCallIdHeader(sipLayer.getLocalIp(device.getLocalIp()),device.getTransport()).getCallId(), "rtp", ssrcInfo.getStream())); |
| 568 | } | 567 | } |
| 569 | - sipSender.transmitRequest(device.getLocalIp(), request, errorEvent, okEvent -> { | 568 | + sipSender.transmitRequest(sipLayer.getLocalIp(device.getLocalIp()), request, errorEvent, okEvent -> { |
| 570 | ResponseEvent responseEvent = (ResponseEvent) okEvent.event; | 569 | ResponseEvent responseEvent = (ResponseEvent) okEvent.event; |
| 571 | SIPResponse response = (SIPResponse) responseEvent.getResponse(); | 570 | SIPResponse response = (SIPResponse) responseEvent.getResponse(); |
| 572 | - streamSession.put(device.getDeviceId(), channelId,sipSender.getNewCallIdHeader(device.getLocalIp(),device.getTransport()).getCallId(), ssrcInfo.getStream(), ssrcInfo.getSsrc(), mediaServerItem.getId(), response, VideoStreamSessionManager.SessionType.download); | 571 | + streamSession.put(device.getDeviceId(), channelId,sipSender.getNewCallIdHeader(sipLayer.getLocalIp(device.getLocalIp()),device.getTransport()).getCallId(), ssrcInfo.getStream(), ssrcInfo.getSsrc(), mediaServerItem.getId(), response, VideoStreamSessionManager.SessionType.download); |
| 573 | }); | 572 | }); |
| 574 | } | 573 | } |
| 575 | 574 | ||
| @@ -596,7 +595,7 @@ public class SIPCommander implements ISIPCommander { | @@ -596,7 +595,7 @@ public class SIPCommander implements ISIPCommander { | ||
| 596 | streamSession.remove(ssrcTransaction.getDeviceId(), ssrcTransaction.getChannelId(), ssrcTransaction.getStream()); | 595 | streamSession.remove(ssrcTransaction.getDeviceId(), ssrcTransaction.getChannelId(), ssrcTransaction.getStream()); |
| 597 | 596 | ||
| 598 | Request byteRequest = headerProvider.createByteRequest(device, channelId, ssrcTransaction.getSipTransactionInfo()); | 597 | Request byteRequest = headerProvider.createByteRequest(device, channelId, ssrcTransaction.getSipTransactionInfo()); |
| 599 | - sipSender.transmitRequest(device.getLocalIp(), byteRequest, null, okEvent); | 598 | + sipSender.transmitRequest(sipLayer.getLocalIp(device.getLocalIp()), byteRequest, null, okEvent); |
| 600 | } | 599 | } |
| 601 | 600 | ||
| 602 | /** | 601 | /** |
| @@ -629,8 +628,8 @@ public class SIPCommander implements ISIPCommander { | @@ -629,8 +628,8 @@ public class SIPCommander implements ISIPCommander { | ||
| 629 | 628 | ||
| 630 | 629 | ||
| 631 | 630 | ||
| 632 | - Request request = headerProvider.createMessageRequest(device, broadcastXml.toString(), SipUtils.getNewViaTag(), SipUtils.getNewFromTag(), null,sipSender.getNewCallIdHeader(device.getLocalIp(),device.getTransport())); | ||
| 633 | - sipSender.transmitRequest(device.getLocalIp(), request); | 631 | + Request request = headerProvider.createMessageRequest(device, broadcastXml.toString(), SipUtils.getNewViaTag(), SipUtils.getNewFromTag(), null,sipSender.getNewCallIdHeader(sipLayer.getLocalIp(device.getLocalIp()),device.getTransport())); |
| 632 | + sipSender.transmitRequest(sipLayer.getLocalIp(device.getLocalIp()), request); | ||
| 634 | 633 | ||
| 635 | } | 634 | } |
| 636 | 635 | ||
| @@ -649,8 +648,8 @@ public class SIPCommander implements ISIPCommander { | @@ -649,8 +648,8 @@ public class SIPCommander implements ISIPCommander { | ||
| 649 | 648 | ||
| 650 | 649 | ||
| 651 | 650 | ||
| 652 | - Request request = headerProvider.createMessageRequest(device, broadcastXml.toString(), SipUtils.getNewViaTag(), SipUtils.getNewFromTag(), null,sipSender.getNewCallIdHeader(device.getLocalIp(),device.getTransport())); | ||
| 653 | - sipSender.transmitRequest(device.getLocalIp(), request, errorEvent); | 651 | + Request request = headerProvider.createMessageRequest(device, broadcastXml.toString(), SipUtils.getNewViaTag(), SipUtils.getNewFromTag(), null,sipSender.getNewCallIdHeader(sipLayer.getLocalIp(device.getLocalIp()),device.getTransport())); |
| 652 | + sipSender.transmitRequest(sipLayer.getLocalIp(device.getLocalIp()), request, errorEvent); | ||
| 654 | 653 | ||
| 655 | } | 654 | } |
| 656 | 655 | ||
| @@ -680,8 +679,8 @@ public class SIPCommander implements ISIPCommander { | @@ -680,8 +679,8 @@ public class SIPCommander implements ISIPCommander { | ||
| 680 | 679 | ||
| 681 | 680 | ||
| 682 | 681 | ||
| 683 | - Request request = headerProvider.createMessageRequest(device, cmdXml.toString(), null, SipUtils.getNewFromTag(), null,sipSender.getNewCallIdHeader(device.getLocalIp(),device.getTransport())); | ||
| 684 | - sipSender.transmitRequest(device.getLocalIp(), request, errorEvent); | 682 | + Request request = headerProvider.createMessageRequest(device, cmdXml.toString(), null, SipUtils.getNewFromTag(), null,sipSender.getNewCallIdHeader(sipLayer.getLocalIp(device.getLocalIp()),device.getTransport())); |
| 683 | + sipSender.transmitRequest(sipLayer.getLocalIp(device.getLocalIp()), request, errorEvent); | ||
| 685 | } | 684 | } |
| 686 | 685 | ||
| 687 | /** | 686 | /** |
| @@ -704,8 +703,8 @@ public class SIPCommander implements ISIPCommander { | @@ -704,8 +703,8 @@ public class SIPCommander implements ISIPCommander { | ||
| 704 | 703 | ||
| 705 | 704 | ||
| 706 | 705 | ||
| 707 | - Request request = headerProvider.createMessageRequest(device, cmdXml.toString(), null, SipUtils.getNewFromTag(), null,sipSender.getNewCallIdHeader(device.getLocalIp(),device.getTransport())); | ||
| 708 | - sipSender.transmitRequest(device.getLocalIp(), request); | 706 | + Request request = headerProvider.createMessageRequest(device, cmdXml.toString(), null, SipUtils.getNewFromTag(), null,sipSender.getNewCallIdHeader(sipLayer.getLocalIp(device.getLocalIp()),device.getTransport())); |
| 707 | + sipSender.transmitRequest(sipLayer.getLocalIp(device.getLocalIp()), request); | ||
| 709 | } | 708 | } |
| 710 | 709 | ||
| 711 | /** | 710 | /** |
| @@ -729,8 +728,8 @@ public class SIPCommander implements ISIPCommander { | @@ -729,8 +728,8 @@ public class SIPCommander implements ISIPCommander { | ||
| 729 | 728 | ||
| 730 | 729 | ||
| 731 | 730 | ||
| 732 | - Request request = headerProvider.createMessageRequest(device, cmdXml.toString(), null, SipUtils.getNewFromTag(), null,sipSender.getNewCallIdHeader(device.getLocalIp(),device.getTransport())); | ||
| 733 | - sipSender.transmitRequest(device.getLocalIp(), request, errorEvent); | 731 | + Request request = headerProvider.createMessageRequest(device, cmdXml.toString(), null, SipUtils.getNewFromTag(), null,sipSender.getNewCallIdHeader(sipLayer.getLocalIp(device.getLocalIp()),device.getTransport())); |
| 732 | + sipSender.transmitRequest(sipLayer.getLocalIp(device.getLocalIp()), request, errorEvent); | ||
| 734 | } | 733 | } |
| 735 | 734 | ||
| 736 | /** | 735 | /** |
| @@ -765,8 +764,8 @@ public class SIPCommander implements ISIPCommander { | @@ -765,8 +764,8 @@ public class SIPCommander implements ISIPCommander { | ||
| 765 | 764 | ||
| 766 | 765 | ||
| 767 | 766 | ||
| 768 | - Request request = headerProvider.createMessageRequest(device, cmdXml.toString(), null, SipUtils.getNewFromTag(), null,sipSender.getNewCallIdHeader(device.getLocalIp(),device.getTransport())); | ||
| 769 | - sipSender.transmitRequest(device.getLocalIp(), request, errorEvent); | 767 | + Request request = headerProvider.createMessageRequest(device, cmdXml.toString(), null, SipUtils.getNewFromTag(), null,sipSender.getNewCallIdHeader(sipLayer.getLocalIp(device.getLocalIp()),device.getTransport())); |
| 768 | + sipSender.transmitRequest(sipLayer.getLocalIp(device.getLocalIp()), request, errorEvent); | ||
| 770 | } | 769 | } |
| 771 | 770 | ||
| 772 | /** | 771 | /** |
| @@ -794,8 +793,8 @@ public class SIPCommander implements ISIPCommander { | @@ -794,8 +793,8 @@ public class SIPCommander implements ISIPCommander { | ||
| 794 | 793 | ||
| 795 | 794 | ||
| 796 | 795 | ||
| 797 | - Request request = headerProvider.createMessageRequest(device, cmdXml.toString(), null, SipUtils.getNewFromTag(), null,sipSender.getNewCallIdHeader(device.getLocalIp(),device.getTransport())); | ||
| 798 | - sipSender.transmitRequest(device.getLocalIp(), request); | 796 | + Request request = headerProvider.createMessageRequest(device, cmdXml.toString(), null, SipUtils.getNewFromTag(), null,sipSender.getNewCallIdHeader(sipLayer.getLocalIp(device.getLocalIp()),device.getTransport())); |
| 797 | + sipSender.transmitRequest(sipLayer.getLocalIp(device.getLocalIp()), request); | ||
| 799 | } | 798 | } |
| 800 | 799 | ||
| 801 | /** | 800 | /** |
| @@ -841,8 +840,8 @@ public class SIPCommander implements ISIPCommander { | @@ -841,8 +840,8 @@ public class SIPCommander implements ISIPCommander { | ||
| 841 | 840 | ||
| 842 | 841 | ||
| 843 | 842 | ||
| 844 | - Request request = headerProvider.createMessageRequest(device, cmdXml.toString(), null, SipUtils.getNewFromTag(), null,sipSender.getNewCallIdHeader(device.getLocalIp(),device.getTransport())); | ||
| 845 | - sipSender.transmitRequest(device.getLocalIp(), request, errorEvent); | 843 | + Request request = headerProvider.createMessageRequest(device, cmdXml.toString(), null, SipUtils.getNewFromTag(), null,sipSender.getNewCallIdHeader(sipLayer.getLocalIp(device.getLocalIp()),device.getTransport())); |
| 844 | + sipSender.transmitRequest(sipLayer.getLocalIp(device.getLocalIp()), request, errorEvent); | ||
| 846 | } | 845 | } |
| 847 | 846 | ||
| 848 | /** | 847 | /** |
| @@ -904,8 +903,8 @@ public class SIPCommander implements ISIPCommander { | @@ -904,8 +903,8 @@ public class SIPCommander implements ISIPCommander { | ||
| 904 | 903 | ||
| 905 | 904 | ||
| 906 | 905 | ||
| 907 | - Request request = headerProvider.createMessageRequest(device, cmdXml.toString(), null, SipUtils.getNewFromTag(), null,sipSender.getNewCallIdHeader(device.getLocalIp(),device.getTransport())); | ||
| 908 | - sipSender.transmitRequest(device.getLocalIp(), request, errorEvent); | 906 | + Request request = headerProvider.createMessageRequest(device, cmdXml.toString(), null, SipUtils.getNewFromTag(), null,sipSender.getNewCallIdHeader(sipLayer.getLocalIp(device.getLocalIp()),device.getTransport())); |
| 907 | + sipSender.transmitRequest(sipLayer.getLocalIp(device.getLocalIp()), request, errorEvent); | ||
| 909 | } | 908 | } |
| 910 | 909 | ||
| 911 | /** | 910 | /** |
| @@ -927,9 +926,9 @@ public class SIPCommander implements ISIPCommander { | @@ -927,9 +926,9 @@ public class SIPCommander implements ISIPCommander { | ||
| 927 | 926 | ||
| 928 | 927 | ||
| 929 | 928 | ||
| 930 | - Request request = headerProvider.createMessageRequest(device, catalogXml.toString(), null, SipUtils.getNewFromTag(), null,sipSender.getNewCallIdHeader(device.getLocalIp(),device.getTransport())); | 929 | + Request request = headerProvider.createMessageRequest(device, catalogXml.toString(), null, SipUtils.getNewFromTag(), null,sipSender.getNewCallIdHeader(sipLayer.getLocalIp(device.getLocalIp()),device.getTransport())); |
| 931 | 930 | ||
| 932 | - sipSender.transmitRequest(device.getLocalIp(), request, errorEvent); | 931 | + sipSender.transmitRequest(sipLayer.getLocalIp(device.getLocalIp()), request, errorEvent); |
| 933 | } | 932 | } |
| 934 | 933 | ||
| 935 | /** | 934 | /** |
| @@ -951,9 +950,9 @@ public class SIPCommander implements ISIPCommander { | @@ -951,9 +950,9 @@ public class SIPCommander implements ISIPCommander { | ||
| 951 | 950 | ||
| 952 | 951 | ||
| 953 | 952 | ||
| 954 | - Request request = headerProvider.createMessageRequest(device, catalogXml.toString(), SipUtils.getNewViaTag(), SipUtils.getNewFromTag(), null,sipSender.getNewCallIdHeader(device.getLocalIp(),device.getTransport())); | 953 | + Request request = headerProvider.createMessageRequest(device, catalogXml.toString(), SipUtils.getNewViaTag(), SipUtils.getNewFromTag(), null,sipSender.getNewCallIdHeader(sipLayer.getLocalIp(device.getLocalIp()),device.getTransport())); |
| 955 | 954 | ||
| 956 | - sipSender.transmitRequest(device.getLocalIp(), request); | 955 | + sipSender.transmitRequest(sipLayer.getLocalIp(device.getLocalIp()), request); |
| 957 | 956 | ||
| 958 | } | 957 | } |
| 959 | 958 | ||
| @@ -976,9 +975,9 @@ public class SIPCommander implements ISIPCommander { | @@ -976,9 +975,9 @@ public class SIPCommander implements ISIPCommander { | ||
| 976 | 975 | ||
| 977 | 976 | ||
| 978 | 977 | ||
| 979 | - Request request = headerProvider.createMessageRequest(device, catalogXml.toString(), SipUtils.getNewViaTag(), SipUtils.getNewFromTag(), null,sipSender.getNewCallIdHeader(device.getLocalIp(),device.getTransport())); | 978 | + Request request = headerProvider.createMessageRequest(device, catalogXml.toString(), SipUtils.getNewViaTag(), SipUtils.getNewFromTag(), null,sipSender.getNewCallIdHeader(sipLayer.getLocalIp(device.getLocalIp()),device.getTransport())); |
| 980 | 979 | ||
| 981 | - sipSender.transmitRequest(device.getLocalIp(), request, errorEvent); | 980 | + sipSender.transmitRequest(sipLayer.getLocalIp(device.getLocalIp()), request, errorEvent); |
| 982 | } | 981 | } |
| 983 | 982 | ||
| 984 | /** | 983 | /** |
| @@ -1022,9 +1021,9 @@ public class SIPCommander implements ISIPCommander { | @@ -1022,9 +1021,9 @@ public class SIPCommander implements ISIPCommander { | ||
| 1022 | 1021 | ||
| 1023 | 1022 | ||
| 1024 | Request request = headerProvider.createMessageRequest(device, recordInfoXml.toString(), | 1023 | Request request = headerProvider.createMessageRequest(device, recordInfoXml.toString(), |
| 1025 | - SipUtils.getNewViaTag(), SipUtils.getNewFromTag(), null,sipSender.getNewCallIdHeader(device.getLocalIp(),device.getTransport())); | 1024 | + SipUtils.getNewViaTag(), SipUtils.getNewFromTag(), null,sipSender.getNewCallIdHeader(sipLayer.getLocalIp(device.getLocalIp()),device.getTransport())); |
| 1026 | 1025 | ||
| 1027 | - sipSender.transmitRequest(device.getLocalIp(), request, errorEvent, okEvent); | 1026 | + sipSender.transmitRequest(sipLayer.getLocalIp(device.getLocalIp()), request, errorEvent, okEvent); |
| 1028 | } | 1027 | } |
| 1029 | 1028 | ||
| 1030 | /** | 1029 | /** |
| @@ -1072,8 +1071,8 @@ public class SIPCommander implements ISIPCommander { | @@ -1072,8 +1071,8 @@ public class SIPCommander implements ISIPCommander { | ||
| 1072 | 1071 | ||
| 1073 | 1072 | ||
| 1074 | 1073 | ||
| 1075 | - Request request = headerProvider.createMessageRequest(device, cmdXml.toString(), null, SipUtils.getNewFromTag(), null,sipSender.getNewCallIdHeader(device.getLocalIp(),device.getTransport())); | ||
| 1076 | - sipSender.transmitRequest(device.getLocalIp(), request, errorEvent); | 1074 | + Request request = headerProvider.createMessageRequest(device, cmdXml.toString(), null, SipUtils.getNewFromTag(), null,sipSender.getNewCallIdHeader(sipLayer.getLocalIp(device.getLocalIp()),device.getTransport())); |
| 1075 | + sipSender.transmitRequest(sipLayer.getLocalIp(device.getLocalIp()), request, errorEvent); | ||
| 1077 | } | 1076 | } |
| 1078 | 1077 | ||
| 1079 | /** | 1078 | /** |
| @@ -1102,8 +1101,8 @@ public class SIPCommander implements ISIPCommander { | @@ -1102,8 +1101,8 @@ public class SIPCommander implements ISIPCommander { | ||
| 1102 | 1101 | ||
| 1103 | 1102 | ||
| 1104 | 1103 | ||
| 1105 | - Request request = headerProvider.createMessageRequest(device, cmdXml.toString(), null, SipUtils.getNewFromTag(), null,sipSender.getNewCallIdHeader(device.getLocalIp(),device.getTransport())); | ||
| 1106 | - sipSender.transmitRequest(device.getLocalIp(), request, errorEvent); | 1104 | + Request request = headerProvider.createMessageRequest(device, cmdXml.toString(), null, SipUtils.getNewFromTag(), null,sipSender.getNewCallIdHeader(sipLayer.getLocalIp(device.getLocalIp()),device.getTransport())); |
| 1105 | + sipSender.transmitRequest(sipLayer.getLocalIp(device.getLocalIp()), request, errorEvent); | ||
| 1107 | } | 1106 | } |
| 1108 | 1107 | ||
| 1109 | /** | 1108 | /** |
| @@ -1129,8 +1128,8 @@ public class SIPCommander implements ISIPCommander { | @@ -1129,8 +1128,8 @@ public class SIPCommander implements ISIPCommander { | ||
| 1129 | 1128 | ||
| 1130 | 1129 | ||
| 1131 | 1130 | ||
| 1132 | - Request request = headerProvider.createMessageRequest(device, cmdXml.toString(), null, SipUtils.getNewFromTag(), null,sipSender.getNewCallIdHeader(device.getLocalIp(),device.getTransport())); | ||
| 1133 | - sipSender.transmitRequest(device.getLocalIp(), request, errorEvent); | 1131 | + Request request = headerProvider.createMessageRequest(device, cmdXml.toString(), null, SipUtils.getNewFromTag(), null,sipSender.getNewCallIdHeader(sipLayer.getLocalIp(device.getLocalIp()),device.getTransport())); |
| 1132 | + sipSender.transmitRequest(sipLayer.getLocalIp(device.getLocalIp()), request, errorEvent); | ||
| 1134 | } | 1133 | } |
| 1135 | 1134 | ||
| 1136 | /** | 1135 | /** |
| @@ -1153,9 +1152,9 @@ public class SIPCommander implements ISIPCommander { | @@ -1153,9 +1152,9 @@ public class SIPCommander implements ISIPCommander { | ||
| 1153 | 1152 | ||
| 1154 | 1153 | ||
| 1155 | 1154 | ||
| 1156 | - Request request = headerProvider.createMessageRequest(device, mobilePostitionXml.toString(), SipUtils.getNewViaTag(), SipUtils.getNewFromTag(), null,sipSender.getNewCallIdHeader(device.getLocalIp(),device.getTransport())); | 1155 | + Request request = headerProvider.createMessageRequest(device, mobilePostitionXml.toString(), SipUtils.getNewViaTag(), SipUtils.getNewFromTag(), null,sipSender.getNewCallIdHeader(sipLayer.getLocalIp(device.getLocalIp()),device.getTransport())); |
| 1157 | 1156 | ||
| 1158 | - sipSender.transmitRequest(device.getLocalIp(), request, errorEvent); | 1157 | + sipSender.transmitRequest(sipLayer.getLocalIp(device.getLocalIp()), request, errorEvent); |
| 1159 | 1158 | ||
| 1160 | } | 1159 | } |
| 1161 | 1160 | ||
| @@ -1185,11 +1184,11 @@ public class SIPCommander implements ISIPCommander { | @@ -1185,11 +1184,11 @@ public class SIPCommander implements ISIPCommander { | ||
| 1185 | if (requestOld != null) { | 1184 | if (requestOld != null) { |
| 1186 | callIdHeader = sipLayer.getSipFactory().createHeaderFactory().createCallIdHeader(requestOld.getCallIdHeader().getCallId()); | 1185 | callIdHeader = sipLayer.getSipFactory().createHeaderFactory().createCallIdHeader(requestOld.getCallIdHeader().getCallId()); |
| 1187 | } else { | 1186 | } else { |
| 1188 | - callIdHeader = sipSender.getNewCallIdHeader(device.getLocalIp(),device.getTransport()); | 1187 | + callIdHeader = sipSender.getNewCallIdHeader(sipLayer.getLocalIp(device.getLocalIp()),device.getTransport()); |
| 1189 | } | 1188 | } |
| 1190 | SIPRequest request = (SIPRequest) headerProvider.createSubscribeRequest(device, subscribePostitionXml.toString(), requestOld, device.getSubscribeCycleForMobilePosition(), "presence",callIdHeader); //Position;id=" + tm.substring(tm.length() - 4)); | 1189 | SIPRequest request = (SIPRequest) headerProvider.createSubscribeRequest(device, subscribePostitionXml.toString(), requestOld, device.getSubscribeCycleForMobilePosition(), "presence",callIdHeader); //Position;id=" + tm.substring(tm.length() - 4)); |
| 1191 | 1190 | ||
| 1192 | - sipSender.transmitRequest(device.getLocalIp(), request, errorEvent, okEvent); | 1191 | + sipSender.transmitRequest(sipLayer.getLocalIp(device.getLocalIp()), request, errorEvent, okEvent); |
| 1193 | return request; | 1192 | return request; |
| 1194 | } | 1193 | } |
| 1195 | 1194 | ||
| @@ -1238,8 +1237,8 @@ public class SIPCommander implements ISIPCommander { | @@ -1238,8 +1237,8 @@ public class SIPCommander implements ISIPCommander { | ||
| 1238 | 1237 | ||
| 1239 | 1238 | ||
| 1240 | 1239 | ||
| 1241 | - Request request = headerProvider.createSubscribeRequest(device, cmdXml.toString(), null, expires, "presence",sipSender.getNewCallIdHeader(device.getLocalIp(),device.getTransport())); | ||
| 1242 | - sipSender.transmitRequest(device.getLocalIp(), request); | 1240 | + Request request = headerProvider.createSubscribeRequest(device, cmdXml.toString(), null, expires, "presence",sipSender.getNewCallIdHeader(sipLayer.getLocalIp(device.getLocalIp()),device.getTransport())); |
| 1241 | + sipSender.transmitRequest(sipLayer.getLocalIp(device.getLocalIp()), request); | ||
| 1243 | 1242 | ||
| 1244 | } | 1243 | } |
| 1245 | 1244 | ||
| @@ -1260,13 +1259,13 @@ public class SIPCommander implements ISIPCommander { | @@ -1260,13 +1259,13 @@ public class SIPCommander implements ISIPCommander { | ||
| 1260 | if (requestOld != null) { | 1259 | if (requestOld != null) { |
| 1261 | callIdHeader = sipLayer.getSipFactory().createHeaderFactory().createCallIdHeader(requestOld.getCallIdHeader().getCallId()); | 1260 | callIdHeader = sipLayer.getSipFactory().createHeaderFactory().createCallIdHeader(requestOld.getCallIdHeader().getCallId()); |
| 1262 | } else { | 1261 | } else { |
| 1263 | - callIdHeader = sipSender.getNewCallIdHeader(device.getLocalIp(),device.getTransport()); | 1262 | + callIdHeader = sipSender.getNewCallIdHeader(sipLayer.getLocalIp(device.getLocalIp()),device.getTransport()); |
| 1264 | } | 1263 | } |
| 1265 | 1264 | ||
| 1266 | // 有效时间默认为60秒以上 | 1265 | // 有效时间默认为60秒以上 |
| 1267 | SIPRequest request = (SIPRequest) headerProvider.createSubscribeRequest(device, cmdXml.toString(), requestOld, device.getSubscribeCycleForCatalog(), "Catalog", | 1266 | SIPRequest request = (SIPRequest) headerProvider.createSubscribeRequest(device, cmdXml.toString(), requestOld, device.getSubscribeCycleForCatalog(), "Catalog", |
| 1268 | callIdHeader); | 1267 | callIdHeader); |
| 1269 | - sipSender.transmitRequest(device.getLocalIp(), request, errorEvent, okEvent); | 1268 | + sipSender.transmitRequest(sipLayer.getLocalIp(device.getLocalIp()), request, errorEvent, okEvent); |
| 1270 | return request; | 1269 | return request; |
| 1271 | } | 1270 | } |
| 1272 | 1271 | ||
| @@ -1287,9 +1286,9 @@ public class SIPCommander implements ISIPCommander { | @@ -1287,9 +1286,9 @@ public class SIPCommander implements ISIPCommander { | ||
| 1287 | dragXml.append(cmdString); | 1286 | dragXml.append(cmdString); |
| 1288 | dragXml.append("</Control>\r\n"); | 1287 | dragXml.append("</Control>\r\n"); |
| 1289 | 1288 | ||
| 1290 | - Request request = headerProvider.createMessageRequest(device, dragXml.toString(), SipUtils.getNewViaTag(), SipUtils.getNewFromTag(), null,sipSender.getNewCallIdHeader(device.getLocalIp(),device.getTransport())); | 1289 | + Request request = headerProvider.createMessageRequest(device, dragXml.toString(), SipUtils.getNewViaTag(), SipUtils.getNewFromTag(), null,sipSender.getNewCallIdHeader(sipLayer.getLocalIp(device.getLocalIp()),device.getTransport())); |
| 1291 | logger.debug("拉框信令: " + request.toString()); | 1290 | logger.debug("拉框信令: " + request.toString()); |
| 1292 | - sipSender.transmitRequest(device.getLocalIp(),request); | 1291 | + sipSender.transmitRequest(sipLayer.getLocalIp(device.getLocalIp()),request); |
| 1293 | } | 1292 | } |
| 1294 | 1293 | ||
| 1295 | 1294 | ||
| @@ -1368,7 +1367,7 @@ public class SIPCommander implements ISIPCommander { | @@ -1368,7 +1367,7 @@ public class SIPCommander implements ISIPCommander { | ||
| 1368 | return; | 1367 | return; |
| 1369 | } | 1368 | } |
| 1370 | 1369 | ||
| 1371 | - sipSender.transmitRequest(device.getLocalIp(), request, errorEvent, okEvent); | 1370 | + sipSender.transmitRequest(sipLayer.getLocalIp(device.getLocalIp()), request, errorEvent, okEvent); |
| 1372 | } | 1371 | } |
| 1373 | 1372 | ||
| 1374 | @Override | 1373 | @Override |
| @@ -1398,8 +1397,8 @@ public class SIPCommander implements ISIPCommander { | @@ -1398,8 +1397,8 @@ public class SIPCommander implements ISIPCommander { | ||
| 1398 | deviceStatusXml.append("</Notify>\r\n"); | 1397 | deviceStatusXml.append("</Notify>\r\n"); |
| 1399 | 1398 | ||
| 1400 | 1399 | ||
| 1401 | - Request request = headerProvider.createMessageRequest(device, deviceStatusXml.toString(), SipUtils.getNewViaTag(), SipUtils.getNewFromTag(), null,sipSender.getNewCallIdHeader(device.getLocalIp(),device.getTransport())); | ||
| 1402 | - sipSender.transmitRequest(device.getLocalIp(),request); | 1400 | + Request request = headerProvider.createMessageRequest(device, deviceStatusXml.toString(), SipUtils.getNewViaTag(), SipUtils.getNewFromTag(), null,sipSender.getNewCallIdHeader(sipLayer.getLocalIp(device.getLocalIp()),device.getTransport())); |
| 1401 | + sipSender.transmitRequest(sipLayer.getLocalIp(device.getLocalIp()),request); | ||
| 1403 | 1402 | ||
| 1404 | 1403 | ||
| 1405 | } | 1404 | } |
src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/RegisterRequestProcessor.java
| 1 | package com.genersoft.iot.vmp.gb28181.transmit.event.request.impl; | 1 | package com.genersoft.iot.vmp.gb28181.transmit.event.request.impl; |
| 2 | 2 | ||
| 3 | import com.genersoft.iot.vmp.conf.SipConfig; | 3 | import com.genersoft.iot.vmp.conf.SipConfig; |
| 4 | +import com.genersoft.iot.vmp.gb28181.auth.DigestServerAuthenticationHelper; | ||
| 4 | import com.genersoft.iot.vmp.gb28181.bean.Device; | 5 | import com.genersoft.iot.vmp.gb28181.bean.Device; |
| 5 | import com.genersoft.iot.vmp.gb28181.bean.WvpSipDate; | 6 | import com.genersoft.iot.vmp.gb28181.bean.WvpSipDate; |
| 6 | import com.genersoft.iot.vmp.gb28181.transmit.SIPProcessorObserver; | 7 | import com.genersoft.iot.vmp.gb28181.transmit.SIPProcessorObserver; |
| 7 | import com.genersoft.iot.vmp.gb28181.transmit.SIPSender; | 8 | import com.genersoft.iot.vmp.gb28181.transmit.SIPSender; |
| 8 | import com.genersoft.iot.vmp.gb28181.transmit.event.request.ISIPRequestProcessor; | 9 | import com.genersoft.iot.vmp.gb28181.transmit.event.request.ISIPRequestProcessor; |
| 9 | import com.genersoft.iot.vmp.gb28181.transmit.event.request.SIPRequestProcessorParent; | 10 | import com.genersoft.iot.vmp.gb28181.transmit.event.request.SIPRequestProcessorParent; |
| 10 | -import com.genersoft.iot.vmp.gb28181.auth.DigestServerAuthenticationHelper; | ||
| 11 | import com.genersoft.iot.vmp.service.IDeviceService; | 11 | import com.genersoft.iot.vmp.service.IDeviceService; |
| 12 | import com.genersoft.iot.vmp.utils.DateUtil; | 12 | import com.genersoft.iot.vmp.utils.DateUtil; |
| 13 | import gov.nist.javax.sip.RequestEventExt; | 13 | import gov.nist.javax.sip.RequestEventExt; |
| 14 | import gov.nist.javax.sip.address.AddressImpl; | 14 | import gov.nist.javax.sip.address.AddressImpl; |
| 15 | import gov.nist.javax.sip.address.SipUri; | 15 | import gov.nist.javax.sip.address.SipUri; |
| 16 | -import gov.nist.javax.sip.header.Expires; | ||
| 17 | import gov.nist.javax.sip.header.SIPDateHeader; | 16 | import gov.nist.javax.sip.header.SIPDateHeader; |
| 18 | import gov.nist.javax.sip.message.SIPRequest; | 17 | import gov.nist.javax.sip.message.SIPRequest; |
| 19 | import org.slf4j.Logger; | 18 | import org.slf4j.Logger; |
| @@ -25,8 +24,10 @@ import org.springframework.util.ObjectUtils; | @@ -25,8 +24,10 @@ import org.springframework.util.ObjectUtils; | ||
| 25 | 24 | ||
| 26 | import javax.sip.RequestEvent; | 25 | import javax.sip.RequestEvent; |
| 27 | import javax.sip.SipException; | 26 | import javax.sip.SipException; |
| 28 | -import javax.sip.header.*; | ||
| 29 | -import javax.sip.message.Request; | 27 | +import javax.sip.header.AuthorizationHeader; |
| 28 | +import javax.sip.header.ContactHeader; | ||
| 29 | +import javax.sip.header.FromHeader; | ||
| 30 | +import javax.sip.header.ViaHeader; | ||
| 30 | import javax.sip.message.Response; | 31 | import javax.sip.message.Response; |
| 31 | import java.security.NoSuchAlgorithmException; | 32 | import java.security.NoSuchAlgorithmException; |
| 32 | import java.text.ParseException; | 33 | import java.text.ParseException; |
| @@ -76,7 +77,7 @@ public class RegisterRequestProcessor extends SIPRequestProcessorParent implemen | @@ -76,7 +77,7 @@ public class RegisterRequestProcessor extends SIPRequestProcessorParent implemen | ||
| 76 | Response response = null; | 77 | Response response = null; |
| 77 | boolean passwordCorrect = false; | 78 | boolean passwordCorrect = false; |
| 78 | // 注册标志 | 79 | // 注册标志 |
| 79 | - boolean registerFlag = false; | 80 | + boolean registerFlag; |
| 80 | FromHeader fromHeader = (FromHeader) request.getHeader(FromHeader.NAME); | 81 | FromHeader fromHeader = (FromHeader) request.getHeader(FromHeader.NAME); |
| 81 | AddressImpl address = (AddressImpl) fromHeader.getAddress(); | 82 | AddressImpl address = (AddressImpl) fromHeader.getAddress(); |
| 82 | SipUri uri = (SipUri) address.getURI(); | 83 | SipUri uri = (SipUri) address.getURI(); |
src/main/java/com/genersoft/iot/vmp/media/zlm/ZLMHttpHookListener.java
| @@ -568,8 +568,6 @@ public class ZLMHttpHookListener { | @@ -568,8 +568,6 @@ public class ZLMHttpHookListener { | ||
| 568 | public JSONObject onServerStarted(HttpServletRequest request, @RequestBody JSONObject jsonObject){ | 568 | public JSONObject onServerStarted(HttpServletRequest request, @RequestBody JSONObject jsonObject){ |
| 569 | 569 | ||
| 570 | jsonObject.put("ip", request.getRemoteAddr()); | 570 | jsonObject.put("ip", request.getRemoteAddr()); |
| 571 | - System.out.println(jsonObject.toJSONString() | ||
| 572 | - ); | ||
| 573 | ZLMServerConfig zlmServerConfig = JSON.to(ZLMServerConfig.class, jsonObject); | 571 | ZLMServerConfig zlmServerConfig = JSON.to(ZLMServerConfig.class, jsonObject); |
| 574 | zlmServerConfig.setIp(request.getRemoteAddr()); | 572 | zlmServerConfig.setIp(request.getRemoteAddr()); |
| 575 | logger.info("[ZLM HOOK] zlm 启动 " + zlmServerConfig.getGeneralMediaServerId()); | 573 | logger.info("[ZLM HOOK] zlm 启动 " + zlmServerConfig.getGeneralMediaServerId()); |
| @@ -632,7 +630,6 @@ public class ZLMHttpHookListener { | @@ -632,7 +630,6 @@ public class ZLMHttpHookListener { | ||
| 632 | @ResponseBody | 630 | @ResponseBody |
| 633 | @PostMapping(value = "/on_rtp_server_timeout", produces = "application/json;charset=UTF-8") | 631 | @PostMapping(value = "/on_rtp_server_timeout", produces = "application/json;charset=UTF-8") |
| 634 | public JSONObject onRtpServerTimeout(HttpServletRequest request, @RequestBody OnRtpServerTimeoutHookParam param){ | 632 | public JSONObject onRtpServerTimeout(HttpServletRequest request, @RequestBody OnRtpServerTimeoutHookParam param){ |
| 635 | - System.out.println(param); | ||
| 636 | logger.info("[ZLM HOOK] rtpServer收流超时:{}->{}({})", param.getMediaServerId(), param.getStream_id(), param.getSsrc()); | 633 | logger.info("[ZLM HOOK] rtpServer收流超时:{}->{}({})", param.getMediaServerId(), param.getStream_id(), param.getSsrc()); |
| 637 | 634 | ||
| 638 | JSONObject ret = new JSONObject(); | 635 | JSONObject ret = new JSONObject(); |
src/main/java/com/genersoft/iot/vmp/service/impl/PlayServiceImpl.java
| @@ -115,9 +115,9 @@ public class PlayServiceImpl implements IPlayService { | @@ -115,9 +115,9 @@ public class PlayServiceImpl implements IPlayService { | ||
| 115 | if (mediaServerItem == null) { | 115 | if (mediaServerItem == null) { |
| 116 | throw new ControllerException(ErrorCode.ERROR100.getCode(), "未找到可用的zlm"); | 116 | throw new ControllerException(ErrorCode.ERROR100.getCode(), "未找到可用的zlm"); |
| 117 | } | 117 | } |
| 118 | + String key = DeferredResultHolder.CALLBACK_CMD_PLAY + deviceId + channelId; | ||
| 118 | 119 | ||
| 119 | RequestMessage msg = new RequestMessage(); | 120 | RequestMessage msg = new RequestMessage(); |
| 120 | - String key = DeferredResultHolder.CALLBACK_CMD_PLAY + deviceId + channelId; | ||
| 121 | msg.setKey(key); | 121 | msg.setKey(key); |
| 122 | 122 | ||
| 123 | Device device = redisCatchStorage.getDevice(deviceId); | 123 | Device device = redisCatchStorage.getDevice(deviceId); |
| @@ -181,7 +181,6 @@ public class PlayServiceImpl implements IPlayService { | @@ -181,7 +181,6 @@ public class PlayServiceImpl implements IPlayService { | ||
| 181 | streamId = String.format("%s_%s", device.getDeviceId(), channelId); | 181 | streamId = String.format("%s_%s", device.getDeviceId(), channelId); |
| 182 | } | 182 | } |
| 183 | SSRCInfo ssrcInfo = mediaServerService.openRTPServer(mediaServerItem, streamId, device.isSsrcCheck(), false); | 183 | SSRCInfo ssrcInfo = mediaServerService.openRTPServer(mediaServerItem, streamId, device.isSsrcCheck(), false); |
| 184 | - logger.info(JSONObject.toJSONString(ssrcInfo)); | ||
| 185 | if (ssrcInfo == null) { | 184 | if (ssrcInfo == null) { |
| 186 | WVPResult wvpResult = new WVPResult(); | 185 | WVPResult wvpResult = new WVPResult(); |
| 187 | wvpResult.setCode(ErrorCode.ERROR100.getCode()); | 186 | wvpResult.setCode(ErrorCode.ERROR100.getCode()); |
| @@ -189,7 +188,7 @@ public class PlayServiceImpl implements IPlayService { | @@ -189,7 +188,7 @@ public class PlayServiceImpl implements IPlayService { | ||
| 189 | msg.setData(wvpResult); | 188 | msg.setData(wvpResult); |
| 190 | 189 | ||
| 191 | resultHolder.invokeAllResult(msg); | 190 | resultHolder.invokeAllResult(msg); |
| 192 | - return playResult; | 191 | + return; |
| 193 | } | 192 | } |
| 194 | play(mediaServerItem, ssrcInfo, device, channelId, (mediaServerItemInUse, response) -> { | 193 | play(mediaServerItem, ssrcInfo, device, channelId, (mediaServerItemInUse, response) -> { |
| 195 | if (hookEvent != null) { | 194 | if (hookEvent != null) { |
| @@ -248,16 +247,14 @@ public class PlayServiceImpl implements IPlayService { | @@ -248,16 +247,14 @@ public class PlayServiceImpl implements IPlayService { | ||
| 248 | } | 247 | } |
| 249 | } | 248 | } |
| 250 | }, userSetting.getPlayTimeout()); | 249 | }, userSetting.getPlayTimeout()); |
| 251 | - final String ssrc = ssrcInfo.getSsrc(); | ||
| 252 | - final String stream = ssrcInfo.getStream(); | ||
| 253 | //端口获取失败的ssrcInfo 没有必要发送点播指令 | 250 | //端口获取失败的ssrcInfo 没有必要发送点播指令 |
| 254 | if (ssrcInfo.getPort() <= 0) { | 251 | if (ssrcInfo.getPort() <= 0) { |
| 255 | logger.info("[点播端口分配异常],deviceId={},channelId={},ssrcInfo={}", device.getDeviceId(), channelId, ssrcInfo); | 252 | logger.info("[点播端口分配异常],deviceId={},channelId={},ssrcInfo={}", device.getDeviceId(), channelId, ssrcInfo); |
| 256 | dynamicTask.stop(timeOutTaskKey); | 253 | dynamicTask.stop(timeOutTaskKey); |
| 257 | // 释放ssrc | 254 | // 释放ssrc |
| 258 | - mediaServerService.releaseSsrc(mediaServerItem.getId(), finalSsrcInfo.getSsrc()); | 255 | + mediaServerService.releaseSsrc(mediaServerItem.getId(), ssrcInfo.getSsrc()); |
| 259 | 256 | ||
| 260 | - streamSession.remove(device.getDeviceId(), channelId, finalSsrcInfo.getStream()); | 257 | + streamSession.remove(device.getDeviceId(), channelId, ssrcInfo.getStream()); |
| 261 | 258 | ||
| 262 | RequestMessage msg = new RequestMessage(); | 259 | RequestMessage msg = new RequestMessage(); |
| 263 | msg.setKey(DeferredResultHolder.CALLBACK_CMD_PLAY + device.getDeviceId() + channelId); | 260 | msg.setKey(DeferredResultHolder.CALLBACK_CMD_PLAY + device.getDeviceId() + channelId); |
| @@ -274,7 +271,7 @@ public class PlayServiceImpl implements IPlayService { | @@ -274,7 +271,7 @@ public class PlayServiceImpl implements IPlayService { | ||
| 274 | onPublishHandlerForPlay(mediaServerItemInuse, response, device.getDeviceId(), channelId); | 271 | onPublishHandlerForPlay(mediaServerItemInuse, response, device.getDeviceId(), channelId); |
| 275 | hookEvent.response(mediaServerItemInuse, response); | 272 | hookEvent.response(mediaServerItemInuse, response); |
| 276 | logger.info("[点播成功] deviceId: {}, channelId: {}", device.getDeviceId(), channelId); | 273 | logger.info("[点播成功] deviceId: {}, channelId: {}", device.getDeviceId(), channelId); |
| 277 | - String streamUrl = String.format("rtsp://127.0.0.1:%s/%s/%s", mediaServerItemInuse.getRtspPort(), "rtp", stream); | 274 | + String streamUrl = String.format("rtsp://127.0.0.1:%s/%s/%s", mediaServerItemInuse.getRtspPort(), "rtp", ssrcInfo.getStream()); |
| 278 | String path = "snap"; | 275 | String path = "snap"; |
| 279 | String fileName = device.getDeviceId() + "_" + channelId + ".jpg"; | 276 | String fileName = device.getDeviceId() + "_" + channelId + ".jpg"; |
| 280 | // 请求截图 | 277 | // 请求截图 |
src/main/java/com/genersoft/iot/vmp/storager/dao/DeviceMapper.java
| @@ -111,6 +111,7 @@ public interface DeviceMapper { | @@ -111,6 +111,7 @@ public interface DeviceMapper { | ||
| 111 | "<if test=\"firmware != null\">, firmware='${firmware}'</if>" + | 111 | "<if test=\"firmware != null\">, firmware='${firmware}'</if>" + |
| 112 | "<if test=\"transport != null\">, transport='${transport}'</if>" + | 112 | "<if test=\"transport != null\">, transport='${transport}'</if>" + |
| 113 | "<if test=\"ip != null\">, ip='${ip}'</if>" + | 113 | "<if test=\"ip != null\">, ip='${ip}'</if>" + |
| 114 | + "<if test=\"localIp != null\">, localIp='${localIp}'</if>" + | ||
| 114 | "<if test=\"port != null\">, port=${port}</if>" + | 115 | "<if test=\"port != null\">, port=${port}</if>" + |
| 115 | "<if test=\"hostAddress != null\">, hostAddress='${hostAddress}'</if>" + | 116 | "<if test=\"hostAddress != null\">, hostAddress='${hostAddress}'</if>" + |
| 116 | "<if test=\"online != null\">, online=${online}</if>" + | 117 | "<if test=\"online != null\">, online=${online}</if>" + |
src/main/java/com/genersoft/iot/vmp/vmanager/bean/WVPResult.java
| @@ -4,7 +4,7 @@ package com.genersoft.iot.vmp.vmanager.bean; | @@ -4,7 +4,7 @@ package com.genersoft.iot.vmp.vmanager.bean; | ||
| 4 | import io.swagger.v3.oas.annotations.media.Schema; | 4 | import io.swagger.v3.oas.annotations.media.Schema; |
| 5 | 5 | ||
| 6 | @Schema(description = "统一返回结果") | 6 | @Schema(description = "统一返回结果") |
| 7 | -public class WVPResult<T> { | 7 | +public class WVPResult<T> implements Cloneable{ |
| 8 | 8 | ||
| 9 | public WVPResult() { | 9 | public WVPResult() { |
| 10 | } | 10 | } |
| @@ -64,4 +64,8 @@ public class WVPResult<T> { | @@ -64,4 +64,8 @@ public class WVPResult<T> { | ||
| 64 | this.data = data; | 64 | this.data = data; |
| 65 | } | 65 | } |
| 66 | 66 | ||
| 67 | + @Override | ||
| 68 | + public Object clone() throws CloneNotSupportedException { | ||
| 69 | + return super.clone(); | ||
| 70 | + } | ||
| 67 | } | 71 | } |
src/main/java/com/genersoft/iot/vmp/vmanager/gb28181/play/PlayController.java
| @@ -83,20 +83,6 @@ public class PlayController { | @@ -83,20 +83,6 @@ public class PlayController { | ||
| 83 | public DeferredResult<WVPResult<StreamInfo>> play(HttpServletRequest request, @PathVariable String deviceId, | 83 | public DeferredResult<WVPResult<StreamInfo>> play(HttpServletRequest request, @PathVariable String deviceId, |
| 84 | @PathVariable String channelId) { | 84 | @PathVariable String channelId) { |
| 85 | 85 | ||
| 86 | - String localAddr = request.getLocalAddr(); | ||
| 87 | - String localName = request.getLocalName(); | ||
| 88 | - String remoteHost = request.getRemoteHost(); | ||
| 89 | - String remoteAddr = request.getRemoteAddr(); | ||
| 90 | - String remoteUser = request.getRemoteUser(); | ||
| 91 | - String requestURI = request.getRequestURI(); | ||
| 92 | - System.out.println(3333333); | ||
| 93 | - System.out.println(localAddr); | ||
| 94 | - System.out.println(localName); | ||
| 95 | - System.out.println(remoteHost); | ||
| 96 | - System.out.println(remoteAddr); | ||
| 97 | - System.out.println(remoteUser); | ||
| 98 | - System.out.println(requestURI); | ||
| 99 | - System.out.println(4444444); | ||
| 100 | // 获取可用的zlm | 86 | // 获取可用的zlm |
| 101 | Device device = storager.queryVideoDevice(deviceId); | 87 | Device device = storager.queryVideoDevice(deviceId); |
| 102 | MediaServerItem newMediaServerItem = playService.getNewMediaServerItem(device); | 88 | MediaServerItem newMediaServerItem = playService.getNewMediaServerItem(device); |
| @@ -110,16 +96,31 @@ public class PlayController { | @@ -110,16 +96,31 @@ public class PlayController { | ||
| 110 | DeferredResult<WVPResult<StreamInfo>> result = new DeferredResult<>(userSetting.getPlayTimeout().longValue()); | 96 | DeferredResult<WVPResult<StreamInfo>> result = new DeferredResult<>(userSetting.getPlayTimeout().longValue()); |
| 111 | DeferredResultEx<WVPResult<StreamInfo>> deferredResultEx = new DeferredResultEx<>(result); | 97 | DeferredResultEx<WVPResult<StreamInfo>> deferredResultEx = new DeferredResultEx<>(result); |
| 112 | 98 | ||
| 99 | + result.onTimeout(()->{ | ||
| 100 | + logger.info("点播接口等待超时"); | ||
| 101 | + // 释放rtpserver | ||
| 102 | + WVPResult<StreamInfo> wvpResult = new WVPResult<>(); | ||
| 103 | + wvpResult.setCode(ErrorCode.ERROR100.getCode()); | ||
| 104 | + wvpResult.setMsg("点播超时"); | ||
| 105 | + msg.setData(wvpResult); | ||
| 106 | + resultHolder.invokeResult(msg); | ||
| 107 | + }); | ||
| 108 | + | ||
| 109 | + // TODO 在点播未成功的情况下在此调用接口点播会导致返回的流地址ip错误 | ||
| 113 | deferredResultEx.setFilter(result1 -> { | 110 | deferredResultEx.setFilter(result1 -> { |
| 114 | - System.out.println(1111); | ||
| 115 | - System.out.println(request.getLocalName()); | ||
| 116 | - WVPResult<StreamInfo> wvpResult = (WVPResult<StreamInfo>)result1; | ||
| 117 | - if (wvpResult.getCode() == ErrorCode.SUCCESS.getCode()) { | ||
| 118 | - StreamInfo data = wvpResult.getData(); | 111 | + WVPResult<StreamInfo> wvpResult1 = (WVPResult<StreamInfo>)result1; |
| 112 | + WVPResult<StreamInfo> clone = null; | ||
| 113 | + try { | ||
| 114 | + clone = (WVPResult<StreamInfo>)wvpResult1.clone(); | ||
| 115 | + } catch (CloneNotSupportedException e) { | ||
| 116 | + throw new RuntimeException(e); | ||
| 117 | + } | ||
| 118 | + if (clone.getCode() == ErrorCode.SUCCESS.getCode()) { | ||
| 119 | + StreamInfo data = clone.getData().clone(); | ||
| 119 | data.channgeStreamIp(request.getLocalName()); | 120 | data.channgeStreamIp(request.getLocalName()); |
| 120 | - ((WVPResult<StreamInfo>)result1).setData(data); | 121 | + clone.setData(data); |
| 121 | } | 122 | } |
| 122 | - return result1; | 123 | + return clone; |
| 123 | }); | 124 | }); |
| 124 | 125 | ||
| 125 | // 录像查询以channelId作为deviceId查询 | 126 | // 录像查询以channelId作为deviceId查询 |
src/main/java/com/genersoft/iot/vmp/vmanager/streamProxy/StreamProxyController.java
| @@ -6,22 +6,17 @@ import com.genersoft.iot.vmp.conf.exception.ControllerException; | @@ -6,22 +6,17 @@ import com.genersoft.iot.vmp.conf.exception.ControllerException; | ||
| 6 | import com.genersoft.iot.vmp.media.zlm.dto.MediaServerItem; | 6 | import com.genersoft.iot.vmp.media.zlm.dto.MediaServerItem; |
| 7 | import com.genersoft.iot.vmp.media.zlm.dto.StreamProxyItem; | 7 | import com.genersoft.iot.vmp.media.zlm.dto.StreamProxyItem; |
| 8 | import com.genersoft.iot.vmp.service.IMediaServerService; | 8 | import com.genersoft.iot.vmp.service.IMediaServerService; |
| 9 | -import com.genersoft.iot.vmp.service.IMediaService; | ||
| 10 | -import com.genersoft.iot.vmp.storager.IRedisCatchStorage; | ||
| 11 | import com.genersoft.iot.vmp.service.IStreamProxyService; | 9 | import com.genersoft.iot.vmp.service.IStreamProxyService; |
| 12 | import com.genersoft.iot.vmp.vmanager.bean.ErrorCode; | 10 | import com.genersoft.iot.vmp.vmanager.bean.ErrorCode; |
| 13 | -import com.genersoft.iot.vmp.vmanager.bean.WVPResult; | ||
| 14 | import com.github.pagehelper.PageInfo; | 11 | import com.github.pagehelper.PageInfo; |
| 15 | import io.swagger.v3.oas.annotations.Operation; | 12 | import io.swagger.v3.oas.annotations.Operation; |
| 16 | import io.swagger.v3.oas.annotations.Parameter; | 13 | import io.swagger.v3.oas.annotations.Parameter; |
| 17 | -import io.swagger.v3.oas.annotations.Parameters; | ||
| 18 | import io.swagger.v3.oas.annotations.tags.Tag; | 14 | import io.swagger.v3.oas.annotations.tags.Tag; |
| 19 | import org.slf4j.Logger; | 15 | import org.slf4j.Logger; |
| 20 | import org.slf4j.LoggerFactory; | 16 | import org.slf4j.LoggerFactory; |
| 21 | import org.springframework.beans.factory.annotation.Autowired; | 17 | import org.springframework.beans.factory.annotation.Autowired; |
| 22 | import org.springframework.stereotype.Controller; | 18 | import org.springframework.stereotype.Controller; |
| 23 | import org.springframework.util.ObjectUtils; | 19 | import org.springframework.util.ObjectUtils; |
| 24 | -import org.springframework.util.StringUtils; | ||
| 25 | import org.springframework.web.bind.annotation.*; | 20 | import org.springframework.web.bind.annotation.*; |
| 26 | 21 | ||
| 27 | @SuppressWarnings("rawtypes") | 22 | @SuppressWarnings("rawtypes") |
| @@ -63,7 +58,7 @@ public class StreamProxyController { | @@ -63,7 +58,7 @@ public class StreamProxyController { | ||
| 63 | }) | 58 | }) |
| 64 | @PostMapping(value = "/save") | 59 | @PostMapping(value = "/save") |
| 65 | @ResponseBody | 60 | @ResponseBody |
| 66 | - public StreamInfo save(@RequestBody StreamProxyItem param){ | 61 | + public StreamInfo save(@RequestBody StreamProxyItem param){ |
| 67 | logger.info("添加代理: " + JSONObject.toJSONString(param)); | 62 | logger.info("添加代理: " + JSONObject.toJSONString(param)); |
| 68 | if (ObjectUtils.isEmpty(param.getMediaServerId())) { | 63 | if (ObjectUtils.isEmpty(param.getMediaServerId())) { |
| 69 | param.setMediaServerId("auto"); | 64 | param.setMediaServerId("auto"); |