Commit b37a77f23f995758178b6af38b89a860107d218d
1 parent
bb22908c
解决循环依赖导致的打包失败
Showing
10 changed files
with
198 additions
and
110 deletions
src/main/java/com/genersoft/iot/vmp/conf/SipPlatformRunner.java
| @@ -36,7 +36,6 @@ public class SipPlatformRunner implements CommandLineRunner { | @@ -36,7 +36,6 @@ public class SipPlatformRunner implements CommandLineRunner { | ||
| 36 | List<ParentPlatform> parentPlatforms = storager.queryEnableParentPlatformList(true); | 36 | List<ParentPlatform> parentPlatforms = storager.queryEnableParentPlatformList(true); |
| 37 | 37 | ||
| 38 | for (ParentPlatform parentPlatform : parentPlatforms) { | 38 | for (ParentPlatform parentPlatform : parentPlatforms) { |
| 39 | - | ||
| 40 | redisCatchStorage.updatePlatformRegister(parentPlatform); | 39 | redisCatchStorage.updatePlatformRegister(parentPlatform); |
| 41 | 40 | ||
| 42 | redisCatchStorage.updatePlatformKeepalive(parentPlatform); | 41 | redisCatchStorage.updatePlatformKeepalive(parentPlatform); |
src/main/java/com/genersoft/iot/vmp/gb28181/SipLayer.java
| @@ -16,6 +16,7 @@ import org.slf4j.Logger; | @@ -16,6 +16,7 @@ import org.slf4j.Logger; | ||
| 16 | import org.slf4j.LoggerFactory; | 16 | import org.slf4j.LoggerFactory; |
| 17 | import org.springframework.beans.factory.annotation.Autowired; | 17 | import org.springframework.beans.factory.annotation.Autowired; |
| 18 | import org.springframework.context.annotation.Bean; | 18 | import org.springframework.context.annotation.Bean; |
| 19 | +import org.springframework.context.annotation.ComponentScan; | ||
| 19 | import org.springframework.context.annotation.DependsOn; | 20 | import org.springframework.context.annotation.DependsOn; |
| 20 | import org.springframework.stereotype.Component; | 21 | import org.springframework.stereotype.Component; |
| 21 | 22 |
src/main/java/com/genersoft/iot/vmp/gb28181/transmit/cmd/SIPRequestHeaderPlarformProvider.java
| @@ -31,16 +31,16 @@ public class SIPRequestHeaderPlarformProvider { | @@ -31,16 +31,16 @@ public class SIPRequestHeaderPlarformProvider { | ||
| 31 | @Autowired | 31 | @Autowired |
| 32 | private SipFactory sipFactory; | 32 | private SipFactory sipFactory; |
| 33 | 33 | ||
| 34 | - @Autowired | ||
| 35 | - @Qualifier(value="tcpSipProvider") | ||
| 36 | - private SipProvider tcpSipProvider; | ||
| 37 | - | ||
| 38 | - @Autowired | ||
| 39 | - @Qualifier(value="udpSipProvider") | ||
| 40 | - private SipProvider udpSipProvider; | 34 | +// @Autowired |
| 35 | +// @Qualifier(value="tcpSipProvider") | ||
| 36 | +// private SipProvider tcpSipProvider; | ||
| 37 | +// | ||
| 38 | +// @Autowired | ||
| 39 | +// @Qualifier(value="udpSipProvider") | ||
| 40 | +// private SipProvider udpSipProvider; | ||
| 41 | 41 | ||
| 42 | 42 | ||
| 43 | - public Request createKeetpaliveMessageRequest(ParentPlatform parentPlatform, String content, String viaTag, String fromTag, String toTag) throws ParseException, InvalidArgumentException, PeerUnavailableException { | 43 | + public Request createKeetpaliveMessageRequest(ParentPlatform parentPlatform, String content, String viaTag, String fromTag, String toTag, CallIdHeader callIdHeader) throws ParseException, InvalidArgumentException, PeerUnavailableException { |
| 44 | Request request = null; | 44 | Request request = null; |
| 45 | // sipuri | 45 | // sipuri |
| 46 | SipURI requestURI = sipFactory.createAddressFactory().createSipURI(parentPlatform.getServerGBId(), parentPlatform.getServerIP() + ":" + parentPlatform.getServerPort()); | 46 | SipURI requestURI = sipFactory.createAddressFactory().createSipURI(parentPlatform.getServerGBId(), parentPlatform.getServerIP() + ":" + parentPlatform.getServerPort()); |
| @@ -59,9 +59,8 @@ public class SIPRequestHeaderPlarformProvider { | @@ -59,9 +59,8 @@ public class SIPRequestHeaderPlarformProvider { | ||
| 59 | SipURI toSipURI = sipFactory.createAddressFactory().createSipURI(parentPlatform.getServerGBId(), parentPlatform.getServerIP() + ":" + parentPlatform.getServerPort() ); | 59 | SipURI toSipURI = sipFactory.createAddressFactory().createSipURI(parentPlatform.getServerGBId(), parentPlatform.getServerIP() + ":" + parentPlatform.getServerPort() ); |
| 60 | Address toAddress = sipFactory.createAddressFactory().createAddress(toSipURI); | 60 | Address toAddress = sipFactory.createAddressFactory().createAddress(toSipURI); |
| 61 | ToHeader toHeader = sipFactory.createHeaderFactory().createToHeader(toAddress, toTag); | 61 | ToHeader toHeader = sipFactory.createHeaderFactory().createToHeader(toAddress, toTag); |
| 62 | - // callid | ||
| 63 | - CallIdHeader callIdHeader = parentPlatform.getTransport().equals("TCP") ? tcpSipProvider.getNewCallId() | ||
| 64 | - : udpSipProvider.getNewCallId(); | 62 | + |
| 63 | + | ||
| 65 | // Forwards | 64 | // Forwards |
| 66 | MaxForwardsHeader maxForwards = sipFactory.createHeaderFactory().createMaxForwardsHeader(70); | 65 | MaxForwardsHeader maxForwards = sipFactory.createHeaderFactory().createMaxForwardsHeader(70); |
| 67 | // ceq | 66 | // ceq |
| @@ -75,7 +74,7 @@ public class SIPRequestHeaderPlarformProvider { | @@ -75,7 +74,7 @@ public class SIPRequestHeaderPlarformProvider { | ||
| 75 | } | 74 | } |
| 76 | 75 | ||
| 77 | 76 | ||
| 78 | - public Request createRegisterRequest(@NotNull ParentPlatform platform, long CSeq, String fromTag, String viaTag) throws ParseException, InvalidArgumentException, PeerUnavailableException { | 77 | + public Request createRegisterRequest(@NotNull ParentPlatform platform, long CSeq, String fromTag, String viaTag, CallIdHeader callIdHeader) throws ParseException, InvalidArgumentException, PeerUnavailableException { |
| 79 | Request request = null; | 78 | Request request = null; |
| 80 | String sipAddress = sipConfig.getSipIp() + ":" + sipConfig.getSipPort(); | 79 | String sipAddress = sipConfig.getSipIp() + ":" + sipConfig.getSipPort(); |
| 81 | //请求行 | 80 | //请求行 |
| @@ -95,14 +94,7 @@ public class SIPRequestHeaderPlarformProvider { | @@ -95,14 +94,7 @@ public class SIPRequestHeaderPlarformProvider { | ||
| 95 | Address toAddress = sipFactory.createAddressFactory().createAddress(toSipURI); | 94 | Address toAddress = sipFactory.createAddressFactory().createAddress(toSipURI); |
| 96 | ToHeader toHeader = sipFactory.createHeaderFactory().createToHeader(toAddress,null); | 95 | ToHeader toHeader = sipFactory.createHeaderFactory().createToHeader(toAddress,null); |
| 97 | 96 | ||
| 98 | - //callid | ||
| 99 | - CallIdHeader callIdHeader = null; | ||
| 100 | - if(platform.getTransport().equals("TCP")) { | ||
| 101 | - callIdHeader = tcpSipProvider.getNewCallId(); | ||
| 102 | - } | ||
| 103 | - if(platform.getTransport().equals("UDP")) { | ||
| 104 | - callIdHeader = udpSipProvider.getNewCallId(); | ||
| 105 | - } | 97 | + |
| 106 | 98 | ||
| 107 | //Forwards | 99 | //Forwards |
| 108 | MaxForwardsHeader maxForwards = sipFactory.createHeaderFactory().createMaxForwardsHeader(70); | 100 | MaxForwardsHeader maxForwards = sipFactory.createHeaderFactory().createMaxForwardsHeader(70); |
| @@ -123,8 +115,10 @@ public class SIPRequestHeaderPlarformProvider { | @@ -123,8 +115,10 @@ public class SIPRequestHeaderPlarformProvider { | ||
| 123 | } | 115 | } |
| 124 | 116 | ||
| 125 | public Request createRegisterRequest(@NotNull ParentPlatform parentPlatform, String fromTag, String viaTag, | 117 | public Request createRegisterRequest(@NotNull ParentPlatform parentPlatform, String fromTag, String viaTag, |
| 126 | - String callId, WWWAuthenticateHeader www ) throws ParseException, PeerUnavailableException, InvalidArgumentException { | ||
| 127 | - Request registerRequest = createRegisterRequest(parentPlatform, 2L, fromTag, viaTag); | 118 | + String callId, WWWAuthenticateHeader www , CallIdHeader callIdHeader) throws ParseException, PeerUnavailableException, InvalidArgumentException { |
| 119 | + | ||
| 120 | + | ||
| 121 | + Request registerRequest = createRegisterRequest(parentPlatform, 2L, fromTag, viaTag, callIdHeader); | ||
| 128 | 122 | ||
| 129 | String realm = www.getRealm(); | 123 | String realm = www.getRealm(); |
| 130 | String nonce = www.getNonce(); | 124 | String nonce = www.getNonce(); |
| @@ -134,10 +128,8 @@ public class SIPRequestHeaderPlarformProvider { | @@ -134,10 +128,8 @@ public class SIPRequestHeaderPlarformProvider { | ||
| 134 | // qop 保护质量 包含auth(默认的)和auth-int(增加了报文完整性检测)两种策略 | 128 | // qop 保护质量 包含auth(默认的)和auth-int(增加了报文完整性检测)两种策略 |
| 135 | String qop = www.getQop(); | 129 | String qop = www.getQop(); |
| 136 | 130 | ||
| 137 | - CallIdHeader callIdHeader = (CallIdHeader)registerRequest.getHeader(CallIdHeader.NAME); | ||
| 138 | callIdHeader.setCallId(callId); | 131 | callIdHeader.setCallId(callId); |
| 139 | 132 | ||
| 140 | - | ||
| 141 | SipURI requestURI = sipFactory.createAddressFactory().createSipURI(parentPlatform.getServerGBId(), parentPlatform.getServerIP() + ":" + parentPlatform.getServerPort()); | 133 | SipURI requestURI = sipFactory.createAddressFactory().createSipURI(parentPlatform.getServerGBId(), parentPlatform.getServerIP() + ":" + parentPlatform.getServerPort()); |
| 142 | String cNonce = null; | 134 | String cNonce = null; |
| 143 | String nc = "00000001"; | 135 | String nc = "00000001"; |
| @@ -189,7 +181,7 @@ public class SIPRequestHeaderPlarformProvider { | @@ -189,7 +181,7 @@ public class SIPRequestHeaderPlarformProvider { | ||
| 189 | } | 181 | } |
| 190 | 182 | ||
| 191 | 183 | ||
| 192 | - public Request createMessageRequest(ParentPlatform parentPlatform, String content, String fromTag) throws PeerUnavailableException, ParseException, InvalidArgumentException { | 184 | + public Request createMessageRequest(ParentPlatform parentPlatform, String content, String fromTag, CallIdHeader callIdHeader) throws PeerUnavailableException, ParseException, InvalidArgumentException { |
| 193 | Request request = null; | 185 | Request request = null; |
| 194 | // sipuri | 186 | // sipuri |
| 195 | SipURI requestURI = sipFactory.createAddressFactory().createSipURI(parentPlatform.getServerGBId(), parentPlatform.getServerIP()+ ":" + parentPlatform.getServerPort()); | 187 | SipURI requestURI = sipFactory.createAddressFactory().createSipURI(parentPlatform.getServerGBId(), parentPlatform.getServerIP()+ ":" + parentPlatform.getServerPort()); |
| @@ -208,9 +200,7 @@ public class SIPRequestHeaderPlarformProvider { | @@ -208,9 +200,7 @@ public class SIPRequestHeaderPlarformProvider { | ||
| 208 | SipURI toSipURI = sipFactory.createAddressFactory().createSipURI(parentPlatform.getDeviceGBId(), parentPlatform.getServerGBDomain()); | 200 | SipURI toSipURI = sipFactory.createAddressFactory().createSipURI(parentPlatform.getDeviceGBId(), parentPlatform.getServerGBDomain()); |
| 209 | Address toAddress = sipFactory.createAddressFactory().createAddress(toSipURI); | 201 | Address toAddress = sipFactory.createAddressFactory().createAddress(toSipURI); |
| 210 | ToHeader toHeader = sipFactory.createHeaderFactory().createToHeader(toAddress, null); | 202 | ToHeader toHeader = sipFactory.createHeaderFactory().createToHeader(toAddress, null); |
| 211 | - // callid | ||
| 212 | - CallIdHeader callIdHeader = parentPlatform.getTransport().equals("TCP") ? tcpSipProvider.getNewCallId() | ||
| 213 | - : udpSipProvider.getNewCallId(); | 203 | + |
| 214 | // Forwards | 204 | // Forwards |
| 215 | MaxForwardsHeader maxForwards = sipFactory.createHeaderFactory().createMaxForwardsHeader(70); | 205 | MaxForwardsHeader maxForwards = sipFactory.createHeaderFactory().createMaxForwardsHeader(70); |
| 216 | // ceq | 206 | // ceq |
src/main/java/com/genersoft/iot/vmp/gb28181/transmit/cmd/SIPRequestHeaderProvider.java
| @@ -33,15 +33,7 @@ public class SIPRequestHeaderProvider { | @@ -33,15 +33,7 @@ public class SIPRequestHeaderProvider { | ||
| 33 | @Autowired | 33 | @Autowired |
| 34 | private SipFactory sipFactory; | 34 | private SipFactory sipFactory; |
| 35 | 35 | ||
| 36 | - @Autowired | ||
| 37 | - @Qualifier(value="tcpSipProvider") | ||
| 38 | - private SipProvider tcpSipProvider; | ||
| 39 | - | ||
| 40 | - @Autowired | ||
| 41 | - @Qualifier(value="udpSipProvider") | ||
| 42 | - private SipProvider udpSipProvider; | ||
| 43 | - | ||
| 44 | - public Request createMessageRequest(Device device, String content, String viaTag, String fromTag, String toTag) throws ParseException, InvalidArgumentException, PeerUnavailableException { | 36 | + public Request createMessageRequest(Device device, String content, String viaTag, String fromTag, String toTag, CallIdHeader callIdHeader) throws ParseException, InvalidArgumentException, PeerUnavailableException { |
| 45 | Request request = null; | 37 | Request request = null; |
| 46 | // sipuri | 38 | // sipuri |
| 47 | SipURI requestURI = sipFactory.createAddressFactory().createSipURI(device.getDeviceId(), device.getHostAddress()); | 39 | SipURI requestURI = sipFactory.createAddressFactory().createSipURI(device.getDeviceId(), device.getHostAddress()); |
| @@ -60,9 +52,7 @@ public class SIPRequestHeaderProvider { | @@ -60,9 +52,7 @@ public class SIPRequestHeaderProvider { | ||
| 60 | SipURI toSipURI = sipFactory.createAddressFactory().createSipURI(device.getDeviceId(), sipConfig.getSipDomain()); | 52 | SipURI toSipURI = sipFactory.createAddressFactory().createSipURI(device.getDeviceId(), sipConfig.getSipDomain()); |
| 61 | Address toAddress = sipFactory.createAddressFactory().createAddress(toSipURI); | 53 | Address toAddress = sipFactory.createAddressFactory().createAddress(toSipURI); |
| 62 | ToHeader toHeader = sipFactory.createHeaderFactory().createToHeader(toAddress, toTag); | 54 | ToHeader toHeader = sipFactory.createHeaderFactory().createToHeader(toAddress, toTag); |
| 63 | - // callid | ||
| 64 | - CallIdHeader callIdHeader = device.getTransport().equals("TCP") ? tcpSipProvider.getNewCallId() | ||
| 65 | - : udpSipProvider.getNewCallId(); | 55 | + |
| 66 | // Forwards | 56 | // Forwards |
| 67 | MaxForwardsHeader maxForwards = sipFactory.createHeaderFactory().createMaxForwardsHeader(70); | 57 | MaxForwardsHeader maxForwards = sipFactory.createHeaderFactory().createMaxForwardsHeader(70); |
| 68 | // ceq | 58 | // ceq |
| @@ -75,7 +65,7 @@ public class SIPRequestHeaderProvider { | @@ -75,7 +65,7 @@ public class SIPRequestHeaderProvider { | ||
| 75 | return request; | 65 | return request; |
| 76 | } | 66 | } |
| 77 | 67 | ||
| 78 | - public Request createInviteRequest(Device device, String channelId, String content, String viaTag, String fromTag, String toTag, String ssrc) throws ParseException, InvalidArgumentException, PeerUnavailableException { | 68 | + public Request createInviteRequest(Device device, String channelId, String content, String viaTag, String fromTag, String toTag, String ssrc, CallIdHeader callIdHeader) throws ParseException, InvalidArgumentException, PeerUnavailableException { |
| 79 | Request request = null; | 69 | Request request = null; |
| 80 | //请求行 | 70 | //请求行 |
| 81 | SipURI requestLine = sipFactory.createAddressFactory().createSipURI(channelId, device.getHostAddress()); | 71 | SipURI requestLine = sipFactory.createAddressFactory().createSipURI(channelId, device.getHostAddress()); |
| @@ -93,15 +83,6 @@ public class SIPRequestHeaderProvider { | @@ -93,15 +83,6 @@ public class SIPRequestHeaderProvider { | ||
| 93 | SipURI toSipURI = sipFactory.createAddressFactory().createSipURI(channelId,sipConfig.getSipDomain()); | 83 | SipURI toSipURI = sipFactory.createAddressFactory().createSipURI(channelId,sipConfig.getSipDomain()); |
| 94 | Address toAddress = sipFactory.createAddressFactory().createAddress(toSipURI); | 84 | Address toAddress = sipFactory.createAddressFactory().createAddress(toSipURI); |
| 95 | ToHeader toHeader = sipFactory.createHeaderFactory().createToHeader(toAddress,null); | 85 | ToHeader toHeader = sipFactory.createHeaderFactory().createToHeader(toAddress,null); |
| 96 | - | ||
| 97 | - //callid | ||
| 98 | - CallIdHeader callIdHeader = null; | ||
| 99 | - if(device.getTransport().equals("TCP")) { | ||
| 100 | - callIdHeader = tcpSipProvider.getNewCallId(); | ||
| 101 | - } | ||
| 102 | - if(device.getTransport().equals("UDP")) { | ||
| 103 | - callIdHeader = udpSipProvider.getNewCallId(); | ||
| 104 | - } | ||
| 105 | 86 | ||
| 106 | //Forwards | 87 | //Forwards |
| 107 | MaxForwardsHeader maxForwards = sipFactory.createHeaderFactory().createMaxForwardsHeader(70); | 88 | MaxForwardsHeader maxForwards = sipFactory.createHeaderFactory().createMaxForwardsHeader(70); |
| @@ -121,7 +102,7 @@ public class SIPRequestHeaderProvider { | @@ -121,7 +102,7 @@ public class SIPRequestHeaderProvider { | ||
| 121 | return request; | 102 | return request; |
| 122 | } | 103 | } |
| 123 | 104 | ||
| 124 | - public Request createPlaybackInviteRequest(Device device, String channelId, String content, String viaTag, String fromTag, String toTag) throws ParseException, InvalidArgumentException, PeerUnavailableException { | 105 | + public Request createPlaybackInviteRequest(Device device, String channelId, String content, String viaTag, String fromTag, String toTag, CallIdHeader callIdHeader) throws ParseException, InvalidArgumentException, PeerUnavailableException { |
| 125 | Request request = null; | 106 | Request request = null; |
| 126 | //请求行 | 107 | //请求行 |
| 127 | SipURI requestLine = sipFactory.createAddressFactory().createSipURI(device.getDeviceId(), device.getHostAddress()); | 108 | SipURI requestLine = sipFactory.createAddressFactory().createSipURI(device.getDeviceId(), device.getHostAddress()); |
| @@ -138,15 +119,6 @@ public class SIPRequestHeaderProvider { | @@ -138,15 +119,6 @@ public class SIPRequestHeaderProvider { | ||
| 138 | SipURI toSipURI = sipFactory.createAddressFactory().createSipURI(channelId,sipConfig.getSipDomain()); | 119 | SipURI toSipURI = sipFactory.createAddressFactory().createSipURI(channelId,sipConfig.getSipDomain()); |
| 139 | Address toAddress = sipFactory.createAddressFactory().createAddress(toSipURI); | 120 | Address toAddress = sipFactory.createAddressFactory().createAddress(toSipURI); |
| 140 | ToHeader toHeader = sipFactory.createHeaderFactory().createToHeader(toAddress,null); | 121 | ToHeader toHeader = sipFactory.createHeaderFactory().createToHeader(toAddress,null); |
| 141 | - | ||
| 142 | - //callid | ||
| 143 | - CallIdHeader callIdHeader = null; | ||
| 144 | - if(device.getTransport().equals("TCP")) { | ||
| 145 | - callIdHeader = tcpSipProvider.getNewCallId(); | ||
| 146 | - } | ||
| 147 | - if(device.getTransport().equals("UDP")) { | ||
| 148 | - callIdHeader = udpSipProvider.getNewCallId(); | ||
| 149 | - } | ||
| 150 | 122 | ||
| 151 | //Forwards | 123 | //Forwards |
| 152 | MaxForwardsHeader maxForwards = sipFactory.createHeaderFactory().createMaxForwardsHeader(70); | 124 | MaxForwardsHeader maxForwards = sipFactory.createHeaderFactory().createMaxForwardsHeader(70); |
| @@ -164,7 +136,7 @@ public class SIPRequestHeaderProvider { | @@ -164,7 +136,7 @@ public class SIPRequestHeaderProvider { | ||
| 164 | return request; | 136 | return request; |
| 165 | } | 137 | } |
| 166 | 138 | ||
| 167 | - public Request createSubscribeRequest(Device device, String content, String viaTag, String fromTag, String toTag, Integer expires, String event) throws ParseException, InvalidArgumentException, PeerUnavailableException { | 139 | + public Request createSubscribeRequest(Device device, String content, String viaTag, String fromTag, String toTag, Integer expires, String event, CallIdHeader callIdHeader) throws ParseException, InvalidArgumentException, PeerUnavailableException { |
| 168 | Request request = null; | 140 | Request request = null; |
| 169 | // sipuri | 141 | // sipuri |
| 170 | SipURI requestURI = sipFactory.createAddressFactory().createSipURI(device.getDeviceId(), device.getHostAddress()); | 142 | SipURI requestURI = sipFactory.createAddressFactory().createSipURI(device.getDeviceId(), device.getHostAddress()); |
| @@ -183,9 +155,7 @@ public class SIPRequestHeaderProvider { | @@ -183,9 +155,7 @@ public class SIPRequestHeaderProvider { | ||
| 183 | SipURI toSipURI = sipFactory.createAddressFactory().createSipURI(device.getDeviceId(), sipConfig.getSipDomain()); | 155 | SipURI toSipURI = sipFactory.createAddressFactory().createSipURI(device.getDeviceId(), sipConfig.getSipDomain()); |
| 184 | Address toAddress = sipFactory.createAddressFactory().createAddress(toSipURI); | 156 | Address toAddress = sipFactory.createAddressFactory().createAddress(toSipURI); |
| 185 | ToHeader toHeader = sipFactory.createHeaderFactory().createToHeader(toAddress, toTag); | 157 | ToHeader toHeader = sipFactory.createHeaderFactory().createToHeader(toAddress, toTag); |
| 186 | - // callid | ||
| 187 | - CallIdHeader callIdHeader = device.getTransport().equals("TCP") ? tcpSipProvider.getNewCallId() | ||
| 188 | - : udpSipProvider.getNewCallId(); | 158 | + |
| 189 | // Forwards | 159 | // Forwards |
| 190 | MaxForwardsHeader maxForwards = sipFactory.createHeaderFactory().createMaxForwardsHeader(70); | 160 | MaxForwardsHeader maxForwards = sipFactory.createHeaderFactory().createMaxForwardsHeader(70); |
| 191 | // ceq | 161 | // ceq |
src/main/java/com/genersoft/iot/vmp/gb28181/transmit/cmd/impl/SIPCommander.java
| @@ -23,6 +23,9 @@ import org.slf4j.LoggerFactory; | @@ -23,6 +23,9 @@ import org.slf4j.LoggerFactory; | ||
| 23 | import org.springframework.beans.factory.annotation.Autowired; | 23 | import org.springframework.beans.factory.annotation.Autowired; |
| 24 | import org.springframework.beans.factory.annotation.Qualifier; | 24 | import org.springframework.beans.factory.annotation.Qualifier; |
| 25 | import org.springframework.beans.factory.annotation.Value; | 25 | import org.springframework.beans.factory.annotation.Value; |
| 26 | +import org.springframework.context.annotation.ComponentScan; | ||
| 27 | +import org.springframework.context.annotation.DependsOn; | ||
| 28 | +import org.springframework.context.annotation.Lazy; | ||
| 26 | import org.springframework.stereotype.Component; | 29 | import org.springframework.stereotype.Component; |
| 27 | 30 | ||
| 28 | import com.genersoft.iot.vmp.conf.SipConfig; | 31 | import com.genersoft.iot.vmp.conf.SipConfig; |
| @@ -40,13 +43,25 @@ import com.genersoft.iot.vmp.gb28181.utils.XmlUtil; | @@ -40,13 +43,25 @@ import com.genersoft.iot.vmp.gb28181.utils.XmlUtil; | ||
| 40 | * @date: 2020年5月3日 下午9:22:48 | 43 | * @date: 2020年5月3日 下午9:22:48 |
| 41 | */ | 44 | */ |
| 42 | @Component | 45 | @Component |
| 46 | +@DependsOn("sipLayer") | ||
| 43 | public class SIPCommander implements ISIPCommander { | 47 | public class SIPCommander implements ISIPCommander { |
| 44 | 48 | ||
| 45 | private final Logger logger = LoggerFactory.getLogger(SIPCommander.class); | 49 | private final Logger logger = LoggerFactory.getLogger(SIPCommander.class); |
| 46 | - | 50 | + |
| 51 | + | ||
| 47 | @Autowired | 52 | @Autowired |
| 48 | private SipConfig sipConfig; | 53 | private SipConfig sipConfig; |
| 49 | - | 54 | + |
| 55 | + @Lazy | ||
| 56 | + @Autowired | ||
| 57 | + @Qualifier(value="tcpSipProvider") | ||
| 58 | + private SipProvider tcpSipProvider; | ||
| 59 | + | ||
| 60 | + @Lazy | ||
| 61 | + @Autowired | ||
| 62 | + @Qualifier(value="udpSipProvider") | ||
| 63 | + private SipProvider udpSipProvider; | ||
| 64 | + | ||
| 50 | @Autowired | 65 | @Autowired |
| 51 | private SIPRequestHeaderProvider headerProvider; | 66 | private SIPRequestHeaderProvider headerProvider; |
| 52 | 67 | ||
| @@ -58,14 +73,6 @@ public class SIPCommander implements ISIPCommander { | @@ -58,14 +73,6 @@ public class SIPCommander implements ISIPCommander { | ||
| 58 | 73 | ||
| 59 | @Autowired | 74 | @Autowired |
| 60 | private IRedisCatchStorage redisCatchStorage; | 75 | private IRedisCatchStorage redisCatchStorage; |
| 61 | - | ||
| 62 | - @Autowired | ||
| 63 | - @Qualifier(value="tcpSipProvider") | ||
| 64 | - private SipProvider tcpSipProvider; | ||
| 65 | - | ||
| 66 | - @Autowired | ||
| 67 | - @Qualifier(value="udpSipProvider") | ||
| 68 | - private SipProvider udpSipProvider; | ||
| 69 | 76 | ||
| 70 | @Autowired | 77 | @Autowired |
| 71 | private ZLMRTPServerFactory zlmrtpServerFactory; | 78 | private ZLMRTPServerFactory zlmrtpServerFactory; |
| @@ -235,7 +242,11 @@ public class SIPCommander implements ISIPCommander { | @@ -235,7 +242,11 @@ public class SIPCommander implements ISIPCommander { | ||
| 235 | ptzXml.append("</Control>\r\n"); | 242 | ptzXml.append("</Control>\r\n"); |
| 236 | 243 | ||
| 237 | String tm = Long.toString(System.currentTimeMillis()); | 244 | String tm = Long.toString(System.currentTimeMillis()); |
| 238 | - Request request = headerProvider.createMessageRequest(device, ptzXml.toString(), "z9hG4bK-ViaPtz-" + tm, "FromPtz" + tm, null); | 245 | + |
| 246 | + CallIdHeader callIdHeader = device.getTransport().equals("TCP") ? tcpSipProvider.getNewCallId() | ||
| 247 | + : udpSipProvider.getNewCallId(); | ||
| 248 | + | ||
| 249 | + Request request = headerProvider.createMessageRequest(device, ptzXml.toString(), "z9hG4bK-ViaPtz-" + tm, "FromPtz" + tm, null, callIdHeader); | ||
| 239 | 250 | ||
| 240 | transmitRequest(device, request); | 251 | transmitRequest(device, request); |
| 241 | return true; | 252 | return true; |
| @@ -272,7 +283,11 @@ public class SIPCommander implements ISIPCommander { | @@ -272,7 +283,11 @@ public class SIPCommander implements ISIPCommander { | ||
| 272 | ptzXml.append("</Control>\r\n"); | 283 | ptzXml.append("</Control>\r\n"); |
| 273 | 284 | ||
| 274 | String tm = Long.toString(System.currentTimeMillis()); | 285 | String tm = Long.toString(System.currentTimeMillis()); |
| 275 | - Request request = headerProvider.createMessageRequest(device, ptzXml.toString(), "z9hG4bK-ViaPtz-" + tm, "FromPtz" + tm, null); | 286 | + |
| 287 | + CallIdHeader callIdHeader = device.getTransport().equals("TCP") ? tcpSipProvider.getNewCallId() | ||
| 288 | + : udpSipProvider.getNewCallId(); | ||
| 289 | + | ||
| 290 | + Request request = headerProvider.createMessageRequest(device, ptzXml.toString(), "z9hG4bK-ViaPtz-" + tm, "FromPtz" + tm, null, callIdHeader); | ||
| 276 | transmitRequest(device, request); | 291 | transmitRequest(device, request); |
| 277 | return true; | 292 | return true; |
| 278 | } catch (SipException | ParseException | InvalidArgumentException e) { | 293 | } catch (SipException | ParseException | InvalidArgumentException e) { |
| @@ -302,7 +317,11 @@ public class SIPCommander implements ISIPCommander { | @@ -302,7 +317,11 @@ public class SIPCommander implements ISIPCommander { | ||
| 302 | ptzXml.append("</Control>\r\n"); | 317 | ptzXml.append("</Control>\r\n"); |
| 303 | 318 | ||
| 304 | String tm = Long.toString(System.currentTimeMillis()); | 319 | String tm = Long.toString(System.currentTimeMillis()); |
| 305 | - Request request = headerProvider.createMessageRequest(device, ptzXml.toString(), "z9hG4bK-ViaPtz-" + tm, "FromPtz" + tm, null); | 320 | + |
| 321 | + CallIdHeader callIdHeader = device.getTransport().equals("TCP") ? tcpSipProvider.getNewCallId() | ||
| 322 | + : udpSipProvider.getNewCallId(); | ||
| 323 | + | ||
| 324 | + Request request = headerProvider.createMessageRequest(device, ptzXml.toString(), "z9hG4bK-ViaPtz-" + tm, "FromPtz" + tm, null, callIdHeader); | ||
| 306 | transmitRequest(device, request); | 325 | transmitRequest(device, request); |
| 307 | return true; | 326 | return true; |
| 308 | } catch (SipException | ParseException | InvalidArgumentException e) { | 327 | } catch (SipException | ParseException | InvalidArgumentException e) { |
| @@ -414,7 +433,11 @@ public class SIPCommander implements ISIPCommander { | @@ -414,7 +433,11 @@ public class SIPCommander implements ISIPCommander { | ||
| 414 | content.append("y="+ssrc+"\r\n");//ssrc | 433 | content.append("y="+ssrc+"\r\n");//ssrc |
| 415 | 434 | ||
| 416 | String tm = Long.toString(System.currentTimeMillis()); | 435 | String tm = Long.toString(System.currentTimeMillis()); |
| 417 | - Request request = headerProvider.createInviteRequest(device, channelId, content.toString(), null, "FromInvt" + tm, null, ssrc); | 436 | + |
| 437 | + CallIdHeader callIdHeader = device.getTransport().equals("TCP") ? tcpSipProvider.getNewCallId() | ||
| 438 | + : udpSipProvider.getNewCallId(); | ||
| 439 | + | ||
| 440 | + Request request = headerProvider.createInviteRequest(device, channelId, content.toString(), null, "FromInvt" + tm, null, ssrc, callIdHeader); | ||
| 418 | 441 | ||
| 419 | ClientTransaction transaction = transmitRequest(device, request, errorEvent); | 442 | ClientTransaction transaction = transmitRequest(device, request, errorEvent); |
| 420 | streamSession.put(streamId,ssrc, transaction); | 443 | streamSession.put(streamId,ssrc, transaction); |
| @@ -512,7 +535,11 @@ public class SIPCommander implements ISIPCommander { | @@ -512,7 +535,11 @@ public class SIPCommander implements ISIPCommander { | ||
| 512 | content.append("y="+ssrc+"\r\n");//ssrc | 535 | content.append("y="+ssrc+"\r\n");//ssrc |
| 513 | 536 | ||
| 514 | String tm = Long.toString(System.currentTimeMillis()); | 537 | String tm = Long.toString(System.currentTimeMillis()); |
| 515 | - Request request = headerProvider.createPlaybackInviteRequest(device, channelId, content.toString(), null, "fromplybck" + tm, null); | 538 | + |
| 539 | + CallIdHeader callIdHeader = device.getTransport().equals("TCP") ? tcpSipProvider.getNewCallId() | ||
| 540 | + : udpSipProvider.getNewCallId(); | ||
| 541 | + | ||
| 542 | + Request request = headerProvider.createPlaybackInviteRequest(device, channelId, content.toString(), null, "fromplybck" + tm, null, callIdHeader); | ||
| 516 | 543 | ||
| 517 | ClientTransaction transaction = transmitRequest(device, request, errorEvent); | 544 | ClientTransaction transaction = transmitRequest(device, request, errorEvent); |
| 518 | streamSession.put(streamId, ssrc, transaction); | 545 | streamSession.put(streamId, ssrc, transaction); |
| @@ -624,7 +651,11 @@ public class SIPCommander implements ISIPCommander { | @@ -624,7 +651,11 @@ public class SIPCommander implements ISIPCommander { | ||
| 624 | cmdXml.append("</Control>\r\n"); | 651 | cmdXml.append("</Control>\r\n"); |
| 625 | 652 | ||
| 626 | String tm = Long.toString(System.currentTimeMillis()); | 653 | String tm = Long.toString(System.currentTimeMillis()); |
| 627 | - Request request = headerProvider.createMessageRequest(device, cmdXml.toString(), null, "FromRecord" + tm, null); | 654 | + |
| 655 | + CallIdHeader callIdHeader = device.getTransport().equals("TCP") ? tcpSipProvider.getNewCallId() | ||
| 656 | + : udpSipProvider.getNewCallId(); | ||
| 657 | + | ||
| 658 | + Request request = headerProvider.createMessageRequest(device, cmdXml.toString(), null, "FromRecord" + tm, null, callIdHeader); | ||
| 628 | transmitRequest(device, request, errorEvent); | 659 | transmitRequest(device, request, errorEvent); |
| 629 | return true; | 660 | return true; |
| 630 | } catch (SipException | ParseException | InvalidArgumentException e) { | 661 | } catch (SipException | ParseException | InvalidArgumentException e) { |
| @@ -651,7 +682,11 @@ public class SIPCommander implements ISIPCommander { | @@ -651,7 +682,11 @@ public class SIPCommander implements ISIPCommander { | ||
| 651 | cmdXml.append("</Control>\r\n"); | 682 | cmdXml.append("</Control>\r\n"); |
| 652 | 683 | ||
| 653 | String tm = Long.toString(System.currentTimeMillis()); | 684 | String tm = Long.toString(System.currentTimeMillis()); |
| 654 | - Request request = headerProvider.createMessageRequest(device, cmdXml.toString(), null, "FromBoot" + tm, null); | 685 | + |
| 686 | + CallIdHeader callIdHeader = device.getTransport().equals("TCP") ? tcpSipProvider.getNewCallId() | ||
| 687 | + : udpSipProvider.getNewCallId(); | ||
| 688 | + | ||
| 689 | + Request request = headerProvider.createMessageRequest(device, cmdXml.toString(), null, "FromBoot" + tm, null, callIdHeader); | ||
| 655 | transmitRequest(device, request); | 690 | transmitRequest(device, request); |
| 656 | return true; | 691 | return true; |
| 657 | } catch (SipException | ParseException | InvalidArgumentException e) { | 692 | } catch (SipException | ParseException | InvalidArgumentException e) { |
| @@ -679,7 +714,11 @@ public class SIPCommander implements ISIPCommander { | @@ -679,7 +714,11 @@ public class SIPCommander implements ISIPCommander { | ||
| 679 | cmdXml.append("</Control>\r\n"); | 714 | cmdXml.append("</Control>\r\n"); |
| 680 | 715 | ||
| 681 | String tm = Long.toString(System.currentTimeMillis()); | 716 | String tm = Long.toString(System.currentTimeMillis()); |
| 682 | - Request request = headerProvider.createMessageRequest(device, cmdXml.toString(), null, "FromGuard" + tm, null); | 717 | + |
| 718 | + CallIdHeader callIdHeader = device.getTransport().equals("TCP") ? tcpSipProvider.getNewCallId() | ||
| 719 | + : udpSipProvider.getNewCallId(); | ||
| 720 | + | ||
| 721 | + Request request = headerProvider.createMessageRequest(device, cmdXml.toString(), null, "FromGuard" + tm, null, callIdHeader); | ||
| 683 | transmitRequest(device, request, errorEvent); | 722 | transmitRequest(device, request, errorEvent); |
| 684 | return true; | 723 | return true; |
| 685 | } catch (SipException | ParseException | InvalidArgumentException e) { | 724 | } catch (SipException | ParseException | InvalidArgumentException e) { |
| @@ -718,7 +757,11 @@ public class SIPCommander implements ISIPCommander { | @@ -718,7 +757,11 @@ public class SIPCommander implements ISIPCommander { | ||
| 718 | cmdXml.append("</Control>\r\n"); | 757 | cmdXml.append("</Control>\r\n"); |
| 719 | 758 | ||
| 720 | String tm = Long.toString(System.currentTimeMillis()); | 759 | String tm = Long.toString(System.currentTimeMillis()); |
| 721 | - Request request = headerProvider.createMessageRequest(device, cmdXml.toString(), null, "FromAlarm" + tm, null); | 760 | + |
| 761 | + CallIdHeader callIdHeader = device.getTransport().equals("TCP") ? tcpSipProvider.getNewCallId() | ||
| 762 | + : udpSipProvider.getNewCallId(); | ||
| 763 | + | ||
| 764 | + Request request = headerProvider.createMessageRequest(device, cmdXml.toString(), null, "FromAlarm" + tm, null, callIdHeader); | ||
| 722 | transmitRequest(device, request, errorEvent); | 765 | transmitRequest(device, request, errorEvent); |
| 723 | return true; | 766 | return true; |
| 724 | } catch (SipException | ParseException | InvalidArgumentException e) { | 767 | } catch (SipException | ParseException | InvalidArgumentException e) { |
| @@ -750,7 +793,11 @@ public class SIPCommander implements ISIPCommander { | @@ -750,7 +793,11 @@ public class SIPCommander implements ISIPCommander { | ||
| 750 | cmdXml.append("</Control>\r\n"); | 793 | cmdXml.append("</Control>\r\n"); |
| 751 | 794 | ||
| 752 | String tm = Long.toString(System.currentTimeMillis()); | 795 | String tm = Long.toString(System.currentTimeMillis()); |
| 753 | - Request request = headerProvider.createMessageRequest(device, cmdXml.toString(), null, "FromBoot" + tm, null); | 796 | + |
| 797 | + CallIdHeader callIdHeader = device.getTransport().equals("TCP") ? tcpSipProvider.getNewCallId() | ||
| 798 | + : udpSipProvider.getNewCallId(); | ||
| 799 | + | ||
| 800 | + Request request = headerProvider.createMessageRequest(device, cmdXml.toString(), null, "FromBoot" + tm, null, callIdHeader); | ||
| 754 | transmitRequest(device, request); | 801 | transmitRequest(device, request); |
| 755 | return true; | 802 | return true; |
| 756 | } catch (SipException | ParseException | InvalidArgumentException e) { | 803 | } catch (SipException | ParseException | InvalidArgumentException e) { |
| @@ -800,7 +847,11 @@ public class SIPCommander implements ISIPCommander { | @@ -800,7 +847,11 @@ public class SIPCommander implements ISIPCommander { | ||
| 800 | cmdXml.append("</Control>\r\n"); | 847 | cmdXml.append("</Control>\r\n"); |
| 801 | 848 | ||
| 802 | String tm = Long.toString(System.currentTimeMillis()); | 849 | String tm = Long.toString(System.currentTimeMillis()); |
| 803 | - Request request = headerProvider.createMessageRequest(device, cmdXml.toString(), null, "FromGuard" + tm, null); | 850 | + |
| 851 | + CallIdHeader callIdHeader = device.getTransport().equals("TCP") ? tcpSipProvider.getNewCallId() | ||
| 852 | + : udpSipProvider.getNewCallId(); | ||
| 853 | + | ||
| 854 | + Request request = headerProvider.createMessageRequest(device, cmdXml.toString(), null, "FromGuard" + tm, null, callIdHeader); | ||
| 804 | transmitRequest(device, request, errorEvent); | 855 | transmitRequest(device, request, errorEvent); |
| 805 | return true; | 856 | return true; |
| 806 | } catch (SipException | ParseException | InvalidArgumentException e) { | 857 | } catch (SipException | ParseException | InvalidArgumentException e) { |
| @@ -867,7 +918,11 @@ public class SIPCommander implements ISIPCommander { | @@ -867,7 +918,11 @@ public class SIPCommander implements ISIPCommander { | ||
| 867 | cmdXml.append("</Control>\r\n"); | 918 | cmdXml.append("</Control>\r\n"); |
| 868 | 919 | ||
| 869 | String tm = Long.toString(System.currentTimeMillis()); | 920 | String tm = Long.toString(System.currentTimeMillis()); |
| 870 | - Request request = headerProvider.createMessageRequest(device, cmdXml.toString(), null, "FromConfig" + tm, null); | 921 | + |
| 922 | + CallIdHeader callIdHeader = device.getTransport().equals("TCP") ? tcpSipProvider.getNewCallId() | ||
| 923 | + : udpSipProvider.getNewCallId(); | ||
| 924 | + | ||
| 925 | + Request request = headerProvider.createMessageRequest(device, cmdXml.toString(), null, "FromConfig" + tm, null, callIdHeader); | ||
| 871 | transmitRequest(device, request, errorEvent); | 926 | transmitRequest(device, request, errorEvent); |
| 872 | return true; | 927 | return true; |
| 873 | } catch (SipException | ParseException | InvalidArgumentException e) { | 928 | } catch (SipException | ParseException | InvalidArgumentException e) { |
| @@ -893,7 +948,11 @@ public class SIPCommander implements ISIPCommander { | @@ -893,7 +948,11 @@ public class SIPCommander implements ISIPCommander { | ||
| 893 | catalogXml.append("</Query>\r\n"); | 948 | catalogXml.append("</Query>\r\n"); |
| 894 | 949 | ||
| 895 | String tm = Long.toString(System.currentTimeMillis()); | 950 | String tm = Long.toString(System.currentTimeMillis()); |
| 896 | - Request request = headerProvider.createMessageRequest(device, catalogXml.toString(), null, "FromStatus" + tm, null); | 951 | + |
| 952 | + CallIdHeader callIdHeader = device.getTransport().equals("TCP") ? tcpSipProvider.getNewCallId() | ||
| 953 | + : udpSipProvider.getNewCallId(); | ||
| 954 | + | ||
| 955 | + Request request = headerProvider.createMessageRequest(device, catalogXml.toString(), null, "FromStatus" + tm, null, callIdHeader); | ||
| 897 | 956 | ||
| 898 | transmitRequest(device, request, errorEvent); | 957 | transmitRequest(device, request, errorEvent); |
| 899 | return true; | 958 | return true; |
| @@ -921,7 +980,11 @@ public class SIPCommander implements ISIPCommander { | @@ -921,7 +980,11 @@ public class SIPCommander implements ISIPCommander { | ||
| 921 | catalogXml.append("</Query>\r\n"); | 980 | catalogXml.append("</Query>\r\n"); |
| 922 | 981 | ||
| 923 | String tm = Long.toString(System.currentTimeMillis()); | 982 | String tm = Long.toString(System.currentTimeMillis()); |
| 924 | - Request request = headerProvider.createMessageRequest(device, catalogXml.toString(), "z9hG4bK-ViaDeviceInfo-" + tm, "FromDev" + tm, null); | 983 | + |
| 984 | + CallIdHeader callIdHeader = device.getTransport().equals("TCP") ? tcpSipProvider.getNewCallId() | ||
| 985 | + : udpSipProvider.getNewCallId(); | ||
| 986 | + | ||
| 987 | + Request request = headerProvider.createMessageRequest(device, catalogXml.toString(), "z9hG4bK-ViaDeviceInfo-" + tm, "FromDev" + tm, null, callIdHeader); | ||
| 925 | 988 | ||
| 926 | transmitRequest(device, request); | 989 | transmitRequest(device, request); |
| 927 | 990 | ||
| @@ -951,7 +1014,11 @@ public class SIPCommander implements ISIPCommander { | @@ -951,7 +1014,11 @@ public class SIPCommander implements ISIPCommander { | ||
| 951 | catalogXml.append("</Query>\r\n"); | 1014 | catalogXml.append("</Query>\r\n"); |
| 952 | 1015 | ||
| 953 | String tm = Long.toString(System.currentTimeMillis()); | 1016 | String tm = Long.toString(System.currentTimeMillis()); |
| 954 | - Request request = headerProvider.createMessageRequest(device, catalogXml.toString(), "z9hG4bK-ViaCatalog-" + tm, "FromCat" + tm, null); | 1017 | + |
| 1018 | + CallIdHeader callIdHeader = device.getTransport().equals("TCP") ? tcpSipProvider.getNewCallId() | ||
| 1019 | + : udpSipProvider.getNewCallId(); | ||
| 1020 | + | ||
| 1021 | + Request request = headerProvider.createMessageRequest(device, catalogXml.toString(), "z9hG4bK-ViaCatalog-" + tm, "FromCat" + tm, null, callIdHeader); | ||
| 955 | 1022 | ||
| 956 | transmitRequest(device, request, errorEvent); | 1023 | transmitRequest(device, request, errorEvent); |
| 957 | } catch (SipException | ParseException | InvalidArgumentException e) { | 1024 | } catch (SipException | ParseException | InvalidArgumentException e) { |
| @@ -986,7 +1053,12 @@ public class SIPCommander implements ISIPCommander { | @@ -986,7 +1053,12 @@ public class SIPCommander implements ISIPCommander { | ||
| 986 | recordInfoXml.append("</Query>\r\n"); | 1053 | recordInfoXml.append("</Query>\r\n"); |
| 987 | 1054 | ||
| 988 | String tm = Long.toString(System.currentTimeMillis()); | 1055 | String tm = Long.toString(System.currentTimeMillis()); |
| 989 | - Request request = headerProvider.createMessageRequest(device, recordInfoXml.toString(), "z9hG4bK-ViaRecordInfo-" + tm, "fromRec" + tm, null); | 1056 | + |
| 1057 | + CallIdHeader callIdHeader = device.getTransport().equals("TCP") ? tcpSipProvider.getNewCallId() | ||
| 1058 | + : udpSipProvider.getNewCallId(); | ||
| 1059 | + | ||
| 1060 | + Request request = headerProvider.createMessageRequest(device, recordInfoXml.toString(), | ||
| 1061 | + "z9hG4bK-ViaRecordInfo-" + tm, "fromRec" + tm, null, callIdHeader); | ||
| 990 | 1062 | ||
| 991 | transmitRequest(device, request); | 1063 | transmitRequest(device, request); |
| 992 | } catch (SipException | ParseException | InvalidArgumentException e) { | 1064 | } catch (SipException | ParseException | InvalidArgumentException e) { |
| @@ -1039,7 +1111,11 @@ public class SIPCommander implements ISIPCommander { | @@ -1039,7 +1111,11 @@ public class SIPCommander implements ISIPCommander { | ||
| 1039 | cmdXml.append("</Query>\r\n"); | 1111 | cmdXml.append("</Query>\r\n"); |
| 1040 | 1112 | ||
| 1041 | String tm = Long.toString(System.currentTimeMillis()); | 1113 | String tm = Long.toString(System.currentTimeMillis()); |
| 1042 | - Request request = headerProvider.createMessageRequest(device, cmdXml.toString(), null, "FromAlarm" + tm, null); | 1114 | + |
| 1115 | + CallIdHeader callIdHeader = device.getTransport().equals("TCP") ? tcpSipProvider.getNewCallId() | ||
| 1116 | + : udpSipProvider.getNewCallId(); | ||
| 1117 | + | ||
| 1118 | + Request request = headerProvider.createMessageRequest(device, cmdXml.toString(), null, "FromAlarm" + tm, null, callIdHeader); | ||
| 1043 | transmitRequest(device, request, errorEvent); | 1119 | transmitRequest(device, request, errorEvent); |
| 1044 | return true; | 1120 | return true; |
| 1045 | } catch (SipException | ParseException | InvalidArgumentException e) { | 1121 | } catch (SipException | ParseException | InvalidArgumentException e) { |
| @@ -1072,7 +1148,11 @@ public class SIPCommander implements ISIPCommander { | @@ -1072,7 +1148,11 @@ public class SIPCommander implements ISIPCommander { | ||
| 1072 | cmdXml.append("</Query>\r\n"); | 1148 | cmdXml.append("</Query>\r\n"); |
| 1073 | 1149 | ||
| 1074 | String tm = Long.toString(System.currentTimeMillis()); | 1150 | String tm = Long.toString(System.currentTimeMillis()); |
| 1075 | - Request request = headerProvider.createMessageRequest(device, cmdXml.toString(), null, "FromConfig" + tm, null); | 1151 | + |
| 1152 | + CallIdHeader callIdHeader = device.getTransport().equals("TCP") ? tcpSipProvider.getNewCallId() | ||
| 1153 | + : udpSipProvider.getNewCallId(); | ||
| 1154 | + | ||
| 1155 | + Request request = headerProvider.createMessageRequest(device, cmdXml.toString(), null, "FromConfig" + tm, null, callIdHeader); | ||
| 1076 | transmitRequest(device, request, errorEvent); | 1156 | transmitRequest(device, request, errorEvent); |
| 1077 | return true; | 1157 | return true; |
| 1078 | } catch (SipException | ParseException | InvalidArgumentException e) { | 1158 | } catch (SipException | ParseException | InvalidArgumentException e) { |
| @@ -1102,7 +1182,11 @@ public class SIPCommander implements ISIPCommander { | @@ -1102,7 +1182,11 @@ public class SIPCommander implements ISIPCommander { | ||
| 1102 | cmdXml.append("</Query>\r\n"); | 1182 | cmdXml.append("</Query>\r\n"); |
| 1103 | 1183 | ||
| 1104 | String tm = Long.toString(System.currentTimeMillis()); | 1184 | String tm = Long.toString(System.currentTimeMillis()); |
| 1105 | - Request request = headerProvider.createMessageRequest(device, cmdXml.toString(), null, "FromConfig" + tm, null); | 1185 | + |
| 1186 | + CallIdHeader callIdHeader = device.getTransport().equals("TCP") ? tcpSipProvider.getNewCallId() | ||
| 1187 | + : udpSipProvider.getNewCallId(); | ||
| 1188 | + | ||
| 1189 | + Request request = headerProvider.createMessageRequest(device, cmdXml.toString(), null, "FromConfig" + tm, null, callIdHeader); | ||
| 1106 | transmitRequest(device, request, errorEvent); | 1190 | transmitRequest(device, request, errorEvent); |
| 1107 | return true; | 1191 | return true; |
| 1108 | } catch (SipException | ParseException | InvalidArgumentException e) { | 1192 | } catch (SipException | ParseException | InvalidArgumentException e) { |
| @@ -1129,7 +1213,11 @@ public class SIPCommander implements ISIPCommander { | @@ -1129,7 +1213,11 @@ public class SIPCommander implements ISIPCommander { | ||
| 1129 | mobilePostitionXml.append("</Query>\r\n"); | 1213 | mobilePostitionXml.append("</Query>\r\n"); |
| 1130 | 1214 | ||
| 1131 | String tm = Long.toString(System.currentTimeMillis()); | 1215 | String tm = Long.toString(System.currentTimeMillis()); |
| 1132 | - Request request = headerProvider.createMessageRequest(device, mobilePostitionXml.toString(), "z9hG4bK-viaPos-" + tm, "fromTagPos" + tm, null); | 1216 | + |
| 1217 | + CallIdHeader callIdHeader = device.getTransport().equals("TCP") ? tcpSipProvider.getNewCallId() | ||
| 1218 | + : udpSipProvider.getNewCallId(); | ||
| 1219 | + | ||
| 1220 | + Request request = headerProvider.createMessageRequest(device, mobilePostitionXml.toString(), "z9hG4bK-viaPos-" + tm, "fromTagPos" + tm, null, callIdHeader); | ||
| 1133 | 1221 | ||
| 1134 | transmitRequest(device, request, errorEvent); | 1222 | transmitRequest(device, request, errorEvent); |
| 1135 | 1223 | ||
| @@ -1162,7 +1250,11 @@ public class SIPCommander implements ISIPCommander { | @@ -1162,7 +1250,11 @@ public class SIPCommander implements ISIPCommander { | ||
| 1162 | subscribePostitionXml.append("</Query>\r\n"); | 1250 | subscribePostitionXml.append("</Query>\r\n"); |
| 1163 | 1251 | ||
| 1164 | String tm = Long.toString(System.currentTimeMillis()); | 1252 | String tm = Long.toString(System.currentTimeMillis()); |
| 1165 | - Request request = headerProvider.createSubscribeRequest(device, subscribePostitionXml.toString(), "z9hG4bK-viaPos-" + tm, "fromTagPos" + tm, null, expires, "presence" ); //Position;id=" + tm.substring(tm.length() - 4)); | 1253 | + |
| 1254 | + CallIdHeader callIdHeader = device.getTransport().equals("TCP") ? tcpSipProvider.getNewCallId() | ||
| 1255 | + : udpSipProvider.getNewCallId(); | ||
| 1256 | + | ||
| 1257 | + Request request = headerProvider.createSubscribeRequest(device, subscribePostitionXml.toString(), "z9hG4bK-viaPos-" + tm, "fromTagPos" + tm, null, expires, "presence" ,callIdHeader); //Position;id=" + tm.substring(tm.length() - 4)); | ||
| 1166 | transmitRequest(device, request); | 1258 | transmitRequest(device, request); |
| 1167 | 1259 | ||
| 1168 | return true; | 1260 | return true; |
| @@ -1215,7 +1307,11 @@ public class SIPCommander implements ISIPCommander { | @@ -1215,7 +1307,11 @@ public class SIPCommander implements ISIPCommander { | ||
| 1215 | cmdXml.append("</Query>\r\n"); | 1307 | cmdXml.append("</Query>\r\n"); |
| 1216 | 1308 | ||
| 1217 | String tm = Long.toString(System.currentTimeMillis()); | 1309 | String tm = Long.toString(System.currentTimeMillis()); |
| 1218 | - Request request = headerProvider.createSubscribeRequest(device, cmdXml.toString(), "z9hG4bK-viaPos-" + tm, "fromTagPos" + tm, null, expires, "presence" ); | 1310 | + |
| 1311 | + CallIdHeader callIdHeader = device.getTransport().equals("TCP") ? tcpSipProvider.getNewCallId() | ||
| 1312 | + : udpSipProvider.getNewCallId(); | ||
| 1313 | + | ||
| 1314 | + Request request = headerProvider.createSubscribeRequest(device, cmdXml.toString(), "z9hG4bK-viaPos-" + tm, "fromTagPos" + tm, null, expires, "presence" , callIdHeader); | ||
| 1219 | transmitRequest(device, request); | 1315 | transmitRequest(device, request); |
| 1220 | 1316 | ||
| 1221 | return true; | 1317 | return true; |
src/main/java/com/genersoft/iot/vmp/gb28181/transmit/cmd/impl/SIPCommanderFroPlatform.java
| @@ -15,6 +15,9 @@ import com.genersoft.iot.vmp.storager.IRedisCatchStorage; | @@ -15,6 +15,9 @@ import com.genersoft.iot.vmp.storager.IRedisCatchStorage; | ||
| 15 | import org.springframework.beans.factory.annotation.Autowired; | 15 | import org.springframework.beans.factory.annotation.Autowired; |
| 16 | import org.springframework.beans.factory.annotation.Qualifier; | 16 | import org.springframework.beans.factory.annotation.Qualifier; |
| 17 | import org.springframework.beans.factory.annotation.Value; | 17 | import org.springframework.beans.factory.annotation.Value; |
| 18 | +import org.springframework.context.annotation.ComponentScan; | ||
| 19 | +import org.springframework.context.annotation.DependsOn; | ||
| 20 | +import org.springframework.context.annotation.Lazy; | ||
| 18 | import org.springframework.lang.Nullable; | 21 | import org.springframework.lang.Nullable; |
| 19 | import org.springframework.stereotype.Component; | 22 | import org.springframework.stereotype.Component; |
| 20 | 23 | ||
| @@ -26,6 +29,7 @@ import java.text.ParseException; | @@ -26,6 +29,7 @@ import java.text.ParseException; | ||
| 26 | import java.util.UUID; | 29 | import java.util.UUID; |
| 27 | 30 | ||
| 28 | @Component | 31 | @Component |
| 32 | +@DependsOn("sipLayer") | ||
| 29 | public class SIPCommanderFroPlatform implements ISIPCommanderForPlatform { | 33 | public class SIPCommanderFroPlatform implements ISIPCommanderForPlatform { |
| 30 | 34 | ||
| 31 | // @Autowired | 35 | // @Autowired |
| @@ -49,10 +53,12 @@ public class SIPCommanderFroPlatform implements ISIPCommanderForPlatform { | @@ -49,10 +53,12 @@ public class SIPCommanderFroPlatform implements ISIPCommanderForPlatform { | ||
| 49 | @Autowired | 53 | @Autowired |
| 50 | private SipSubscribe sipSubscribe; | 54 | private SipSubscribe sipSubscribe; |
| 51 | 55 | ||
| 56 | + @Lazy | ||
| 52 | @Autowired | 57 | @Autowired |
| 53 | @Qualifier(value="tcpSipProvider") | 58 | @Qualifier(value="tcpSipProvider") |
| 54 | private SipProvider tcpSipProvider; | 59 | private SipProvider tcpSipProvider; |
| 55 | 60 | ||
| 61 | + @Lazy | ||
| 56 | @Autowired | 62 | @Autowired |
| 57 | @Qualifier(value="udpSipProvider") | 63 | @Qualifier(value="udpSipProvider") |
| 58 | private SipProvider udpSipProvider; | 64 | private SipProvider udpSipProvider; |
| @@ -83,19 +89,30 @@ public class SIPCommanderFroPlatform implements ISIPCommanderForPlatform { | @@ -83,19 +89,30 @@ public class SIPCommanderFroPlatform implements ISIPCommanderForPlatform { | ||
| 83 | Request request = null; | 89 | Request request = null; |
| 84 | 90 | ||
| 85 | if (www == null ) { | 91 | if (www == null ) { |
| 86 | - request = headerProviderPlarformProvider.createRegisterRequest(parentPlatform, 1L, null, null); | 92 | + // //callid |
| 93 | + CallIdHeader callIdHeader = null; | ||
| 94 | + if(parentPlatform.getTransport().equals("TCP")) { | ||
| 95 | + callIdHeader = tcpSipProvider.getNewCallId(); | ||
| 96 | + } | ||
| 97 | + if(parentPlatform.getTransport().equals("UDP")) { | ||
| 98 | + callIdHeader = udpSipProvider.getNewCallId(); | ||
| 99 | + } | ||
| 100 | + request = headerProviderPlarformProvider.createRegisterRequest(parentPlatform, 1L, null, null, callIdHeader); | ||
| 87 | // 将 callid 写入缓存, 等注册成功可以更新状态 | 101 | // 将 callid 写入缓存, 等注册成功可以更新状态 |
| 88 | - CallIdHeader callIdHeader = (CallIdHeader)request.getHeader(CallIdHeader.NAME); | ||
| 89 | redisCatchStorage.updatePlatformRegisterInfo(callIdHeader.getCallId(), parentPlatform.getServerGBId()); | 102 | redisCatchStorage.updatePlatformRegisterInfo(callIdHeader.getCallId(), parentPlatform.getServerGBId()); |
| 90 | 103 | ||
| 104 | + CallIdHeader finalCallIdHeader = callIdHeader; | ||
| 91 | sipSubscribe.addErrorSubscribe(callIdHeader.getCallId(), (event)->{ | 105 | sipSubscribe.addErrorSubscribe(callIdHeader.getCallId(), (event)->{ |
| 92 | - redisCatchStorage.delPlatformRegisterInfo(callIdHeader.getCallId()); | 106 | + redisCatchStorage.delPlatformRegisterInfo(finalCallIdHeader.getCallId()); |
| 93 | if (errorEvent != null) { | 107 | if (errorEvent != null) { |
| 94 | errorEvent.response(event); | 108 | errorEvent.response(event); |
| 95 | } | 109 | } |
| 96 | }); | 110 | }); |
| 97 | }else { | 111 | }else { |
| 98 | - request = headerProviderPlarformProvider.createRegisterRequest(parentPlatform, null, null, callId, www); | 112 | + CallIdHeader callIdHeader = parentPlatform.getTransport().equals("TCP") ? tcpSipProvider.getNewCallId() |
| 113 | + : udpSipProvider.getNewCallId(); | ||
| 114 | + | ||
| 115 | + request = headerProviderPlarformProvider.createRegisterRequest(parentPlatform, null, null, callId, www, callIdHeader); | ||
| 99 | } | 116 | } |
| 100 | 117 | ||
| 101 | transmitRequest(parentPlatform, request, null, okEvent); | 118 | transmitRequest(parentPlatform, request, null, okEvent); |
| @@ -126,14 +143,17 @@ public class SIPCommanderFroPlatform implements ISIPCommanderForPlatform { | @@ -126,14 +143,17 @@ public class SIPCommanderFroPlatform implements ISIPCommanderForPlatform { | ||
| 126 | keepaliveXml.append("<Status>OK</Status>\r\n"); | 143 | keepaliveXml.append("<Status>OK</Status>\r\n"); |
| 127 | keepaliveXml.append("</Notify>\r\n"); | 144 | keepaliveXml.append("</Notify>\r\n"); |
| 128 | 145 | ||
| 146 | + CallIdHeader callIdHeader = parentPlatform.getTransport().equals("TCP") ? tcpSipProvider.getNewCallId() | ||
| 147 | + : udpSipProvider.getNewCallId(); | ||
| 148 | + | ||
| 129 | Request request = headerProviderPlarformProvider.createKeetpaliveMessageRequest( | 149 | Request request = headerProviderPlarformProvider.createKeetpaliveMessageRequest( |
| 130 | parentPlatform, | 150 | parentPlatform, |
| 131 | keepaliveXml.toString(), | 151 | keepaliveXml.toString(), |
| 132 | "z9hG4bK-" + UUID.randomUUID().toString().replace("-", ""), | 152 | "z9hG4bK-" + UUID.randomUUID().toString().replace("-", ""), |
| 133 | UUID.randomUUID().toString().replace("-", ""), | 153 | UUID.randomUUID().toString().replace("-", ""), |
| 134 | - null); | 154 | + null, |
| 155 | + callIdHeader); | ||
| 135 | transmitRequest(parentPlatform, request); | 156 | transmitRequest(parentPlatform, request); |
| 136 | - CallIdHeader callIdHeader = (CallIdHeader)request.getHeader(CallIdHeader.NAME); | ||
| 137 | callId = callIdHeader.getCallId(); | 157 | callId = callIdHeader.getCallId(); |
| 138 | } catch (ParseException | InvalidArgumentException | SipException e) { | 158 | } catch (ParseException | InvalidArgumentException | SipException e) { |
| 139 | e.printStackTrace(); | 159 | e.printStackTrace(); |
| @@ -208,7 +228,12 @@ public class SIPCommanderFroPlatform implements ISIPCommanderForPlatform { | @@ -208,7 +228,12 @@ public class SIPCommanderFroPlatform implements ISIPCommanderForPlatform { | ||
| 208 | catalogXml.append("</Item>\r\n"); | 228 | catalogXml.append("</Item>\r\n"); |
| 209 | catalogXml.append("</DeviceList>\r\n"); | 229 | catalogXml.append("</DeviceList>\r\n"); |
| 210 | catalogXml.append("</Response>\r\n"); | 230 | catalogXml.append("</Response>\r\n"); |
| 211 | - Request request = headerProviderPlarformProvider.createMessageRequest(parentPlatform, catalogXml.toString(), fromTag); | 231 | + |
| 232 | + // callid | ||
| 233 | + CallIdHeader callIdHeader = parentPlatform.getTransport().equals("TCP") ? tcpSipProvider.getNewCallId() | ||
| 234 | + : udpSipProvider.getNewCallId(); | ||
| 235 | + | ||
| 236 | + Request request = headerProviderPlarformProvider.createMessageRequest(parentPlatform, catalogXml.toString(), fromTag, callIdHeader); | ||
| 212 | transmitRequest(parentPlatform, request); | 237 | transmitRequest(parentPlatform, request); |
| 213 | 238 | ||
| 214 | } catch (SipException | ParseException | InvalidArgumentException e) { | 239 | } catch (SipException | ParseException | InvalidArgumentException e) { |
| @@ -243,7 +268,11 @@ public class SIPCommanderFroPlatform implements ISIPCommanderForPlatform { | @@ -243,7 +268,11 @@ public class SIPCommanderFroPlatform implements ISIPCommanderForPlatform { | ||
| 243 | deviceInfoXml.append("<Firmware>2.0.202103</Firmware>\r\n"); | 268 | deviceInfoXml.append("<Firmware>2.0.202103</Firmware>\r\n"); |
| 244 | deviceInfoXml.append("<Result>OK</Result>\r\n"); | 269 | deviceInfoXml.append("<Result>OK</Result>\r\n"); |
| 245 | deviceInfoXml.append("</Response>\r\n"); | 270 | deviceInfoXml.append("</Response>\r\n"); |
| 246 | - Request request = headerProviderPlarformProvider.createMessageRequest(parentPlatform, deviceInfoXml.toString(), fromTag); | 271 | + |
| 272 | + CallIdHeader callIdHeader = parentPlatform.getTransport().equals("TCP") ? tcpSipProvider.getNewCallId() | ||
| 273 | + : udpSipProvider.getNewCallId(); | ||
| 274 | + | ||
| 275 | + Request request = headerProviderPlarformProvider.createMessageRequest(parentPlatform, deviceInfoXml.toString(), fromTag, callIdHeader); | ||
| 247 | transmitRequest(parentPlatform, request); | 276 | transmitRequest(parentPlatform, request); |
| 248 | 277 | ||
| 249 | } catch (SipException | ParseException | InvalidArgumentException e) { | 278 | } catch (SipException | ParseException | InvalidArgumentException e) { |
| @@ -276,7 +305,11 @@ public class SIPCommanderFroPlatform implements ISIPCommanderForPlatform { | @@ -276,7 +305,11 @@ public class SIPCommanderFroPlatform implements ISIPCommanderForPlatform { | ||
| 276 | deviceStatusXml.append("<Online>ONLINE</Online>\r\n"); | 305 | deviceStatusXml.append("<Online>ONLINE</Online>\r\n"); |
| 277 | deviceStatusXml.append("<Status>OK</Status>\r\n"); | 306 | deviceStatusXml.append("<Status>OK</Status>\r\n"); |
| 278 | deviceStatusXml.append("</Response>\r\n"); | 307 | deviceStatusXml.append("</Response>\r\n"); |
| 279 | - Request request = headerProviderPlarformProvider.createMessageRequest(parentPlatform, deviceStatusXml.toString(), fromTag); | 308 | + |
| 309 | + CallIdHeader callIdHeader = parentPlatform.getTransport().equals("TCP") ? tcpSipProvider.getNewCallId() | ||
| 310 | + : udpSipProvider.getNewCallId(); | ||
| 311 | + | ||
| 312 | + Request request = headerProviderPlarformProvider.createMessageRequest(parentPlatform, deviceStatusXml.toString(), fromTag, callIdHeader); | ||
| 280 | transmitRequest(parentPlatform, request); | 313 | transmitRequest(parentPlatform, request); |
| 281 | 314 | ||
| 282 | } catch (SipException | ParseException | InvalidArgumentException e) { | 315 | } catch (SipException | ParseException | InvalidArgumentException e) { |
src/main/java/com/genersoft/iot/vmp/gb28181/transmit/request/impl/AckRequestProcessor.java
| @@ -37,7 +37,7 @@ public class AckRequestProcessor extends SIPRequestAbstractProcessor { | @@ -37,7 +37,7 @@ public class AckRequestProcessor extends SIPRequestAbstractProcessor { | ||
| 37 | Dialog dialog = evt.getDialog(); | 37 | Dialog dialog = evt.getDialog(); |
| 38 | if (dialog == null) return; | 38 | if (dialog == null) return; |
| 39 | //DialogState state = dialog.getState(); | 39 | //DialogState state = dialog.getState(); |
| 40 | - if (/*request.getMethod().equals(Request.INVITE) &&*/ dialog.getState()== DialogState.CONFIRMED) { | 40 | + if (/*request.getMecodewwthod().equals(Request.INVITE) &&*/ dialog.getState()== DialogState.CONFIRMED) { |
| 41 | String platformGbId = ((SipURI) ((HeaderAddress) evt.getRequest().getHeader(FromHeader.NAME)).getAddress().getURI()).getUser(); | 41 | String platformGbId = ((SipURI) ((HeaderAddress) evt.getRequest().getHeader(FromHeader.NAME)).getAddress().getURI()).getUser(); |
| 42 | String channelId = ((SipURI) ((HeaderAddress) evt.getRequest().getHeader(ToHeader.NAME)).getAddress().getURI()).getUser(); | 42 | String channelId = ((SipURI) ((HeaderAddress) evt.getRequest().getHeader(ToHeader.NAME)).getAddress().getURI()).getUser(); |
| 43 | SendRtpItem sendRtpItem = redisCatchStorage.querySendRTPServer(platformGbId, channelId); | 43 | SendRtpItem sendRtpItem = redisCatchStorage.querySendRTPServer(platformGbId, channelId); |
src/main/java/com/genersoft/iot/vmp/gb28181/transmit/request/impl/InviteRequestProcessor.java
| @@ -237,7 +237,7 @@ public class InviteRequestProcessor extends SIPRequestAbstractProcessor { | @@ -237,7 +237,7 @@ public class InviteRequestProcessor extends SIPRequestAbstractProcessor { | ||
| 237 | * @throws ParseException | 237 | * @throws ParseException |
| 238 | */ | 238 | */ |
| 239 | private void responseAck(RequestEvent evt, int statusCode) throws SipException, InvalidArgumentException, ParseException { | 239 | private void responseAck(RequestEvent evt, int statusCode) throws SipException, InvalidArgumentException, ParseException { |
| 240 | - Response response = getMessageFactory().createResponse(Response.TRYING, evt.getRequest()); | 240 | + Response response = getMessageFactory().createResponse(statusCode, evt.getRequest()); |
| 241 | getServerTransaction(evt).sendResponse(response); | 241 | getServerTransaction(evt).sendResponse(response); |
| 242 | } | 242 | } |
| 243 | 243 |
src/main/resources/application-dev.yml
| @@ -11,7 +11,7 @@ spring: | @@ -11,7 +11,7 @@ spring: | ||
| 11 | password: | 11 | password: |
| 12 | # [可选] 超时时间 | 12 | # [可选] 超时时间 |
| 13 | timeout: 10000 | 13 | timeout: 10000 |
| 14 | - # [不可用] jdbc数据库配置, 暂不支持 | 14 | + # [可选] jdbc数据库配置, 项目使用sqlite作为数据库,一般不需要配置 |
| 15 | datasource: | 15 | datasource: |
| 16 | # name: eiot | 16 | # name: eiot |
| 17 | # url: jdbc:mysql://127.0.0.1:3306/eiot?useUnicode=true&characterEncoding=UTF8&rewriteBatchedStatements=true | 17 | # url: jdbc:mysql://127.0.0.1:3306/eiot?useUnicode=true&characterEncoding=UTF8&rewriteBatchedStatements=true |
web_src/package-lock.json
| @@ -124,7 +124,6 @@ | @@ -124,7 +124,6 @@ | ||
| 124 | "version": "1.0.10", | 124 | "version": "1.0.10", |
| 125 | "resolved": "https://registry.npm.taobao.org/argparse/download/argparse-1.0.10.tgz", | 125 | "resolved": "https://registry.npm.taobao.org/argparse/download/argparse-1.0.10.tgz", |
| 126 | "integrity": "sha1-vNZ5HqWuCXJeF+WtmIE0zUCz2RE=", | 126 | "integrity": "sha1-vNZ5HqWuCXJeF+WtmIE0zUCz2RE=", |
| 127 | - "dev": true, | ||
| 128 | "requires": { | 127 | "requires": { |
| 129 | "sprintf-js": "~1.0.2" | 128 | "sprintf-js": "~1.0.2" |
| 130 | } | 129 | } |