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 | 36 | List<ParentPlatform> parentPlatforms = storager.queryEnableParentPlatformList(true); |
| 37 | 37 | |
| 38 | 38 | for (ParentPlatform parentPlatform : parentPlatforms) { |
| 39 | - | |
| 40 | 39 | redisCatchStorage.updatePlatformRegister(parentPlatform); |
| 41 | 40 | |
| 42 | 41 | redisCatchStorage.updatePlatformKeepalive(parentPlatform); | ... | ... |
src/main/java/com/genersoft/iot/vmp/gb28181/SipLayer.java
| ... | ... | @@ -16,6 +16,7 @@ import org.slf4j.Logger; |
| 16 | 16 | import org.slf4j.LoggerFactory; |
| 17 | 17 | import org.springframework.beans.factory.annotation.Autowired; |
| 18 | 18 | import org.springframework.context.annotation.Bean; |
| 19 | +import org.springframework.context.annotation.ComponentScan; | |
| 19 | 20 | import org.springframework.context.annotation.DependsOn; |
| 20 | 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 | 31 | @Autowired |
| 32 | 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 | 44 | Request request = null; |
| 45 | 45 | // sipuri |
| 46 | 46 | SipURI requestURI = sipFactory.createAddressFactory().createSipURI(parentPlatform.getServerGBId(), parentPlatform.getServerIP() + ":" + parentPlatform.getServerPort()); |
| ... | ... | @@ -59,9 +59,8 @@ public class SIPRequestHeaderPlarformProvider { |
| 59 | 59 | SipURI toSipURI = sipFactory.createAddressFactory().createSipURI(parentPlatform.getServerGBId(), parentPlatform.getServerIP() + ":" + parentPlatform.getServerPort() ); |
| 60 | 60 | Address toAddress = sipFactory.createAddressFactory().createAddress(toSipURI); |
| 61 | 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 | 64 | // Forwards |
| 66 | 65 | MaxForwardsHeader maxForwards = sipFactory.createHeaderFactory().createMaxForwardsHeader(70); |
| 67 | 66 | // ceq |
| ... | ... | @@ -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 | 78 | Request request = null; |
| 80 | 79 | String sipAddress = sipConfig.getSipIp() + ":" + sipConfig.getSipPort(); |
| 81 | 80 | //请求行 |
| ... | ... | @@ -95,14 +94,7 @@ public class SIPRequestHeaderPlarformProvider { |
| 95 | 94 | Address toAddress = sipFactory.createAddressFactory().createAddress(toSipURI); |
| 96 | 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 | 99 | //Forwards |
| 108 | 100 | MaxForwardsHeader maxForwards = sipFactory.createHeaderFactory().createMaxForwardsHeader(70); |
| ... | ... | @@ -123,8 +115,10 @@ public class SIPRequestHeaderPlarformProvider { |
| 123 | 115 | } |
| 124 | 116 | |
| 125 | 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 | 123 | String realm = www.getRealm(); |
| 130 | 124 | String nonce = www.getNonce(); |
| ... | ... | @@ -134,10 +128,8 @@ public class SIPRequestHeaderPlarformProvider { |
| 134 | 128 | // qop 保护质量 包含auth(默认的)和auth-int(增加了报文完整性检测)两种策略 |
| 135 | 129 | String qop = www.getQop(); |
| 136 | 130 | |
| 137 | - CallIdHeader callIdHeader = (CallIdHeader)registerRequest.getHeader(CallIdHeader.NAME); | |
| 138 | 131 | callIdHeader.setCallId(callId); |
| 139 | 132 | |
| 140 | - | |
| 141 | 133 | SipURI requestURI = sipFactory.createAddressFactory().createSipURI(parentPlatform.getServerGBId(), parentPlatform.getServerIP() + ":" + parentPlatform.getServerPort()); |
| 142 | 134 | String cNonce = null; |
| 143 | 135 | String nc = "00000001"; |
| ... | ... | @@ -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 | 185 | Request request = null; |
| 194 | 186 | // sipuri |
| 195 | 187 | SipURI requestURI = sipFactory.createAddressFactory().createSipURI(parentPlatform.getServerGBId(), parentPlatform.getServerIP()+ ":" + parentPlatform.getServerPort()); |
| ... | ... | @@ -208,9 +200,7 @@ public class SIPRequestHeaderPlarformProvider { |
| 208 | 200 | SipURI toSipURI = sipFactory.createAddressFactory().createSipURI(parentPlatform.getDeviceGBId(), parentPlatform.getServerGBDomain()); |
| 209 | 201 | Address toAddress = sipFactory.createAddressFactory().createAddress(toSipURI); |
| 210 | 202 | ToHeader toHeader = sipFactory.createHeaderFactory().createToHeader(toAddress, null); |
| 211 | - // callid | |
| 212 | - CallIdHeader callIdHeader = parentPlatform.getTransport().equals("TCP") ? tcpSipProvider.getNewCallId() | |
| 213 | - : udpSipProvider.getNewCallId(); | |
| 203 | + | |
| 214 | 204 | // Forwards |
| 215 | 205 | MaxForwardsHeader maxForwards = sipFactory.createHeaderFactory().createMaxForwardsHeader(70); |
| 216 | 206 | // ceq | ... | ... |
src/main/java/com/genersoft/iot/vmp/gb28181/transmit/cmd/SIPRequestHeaderProvider.java
| ... | ... | @@ -33,15 +33,7 @@ public class SIPRequestHeaderProvider { |
| 33 | 33 | @Autowired |
| 34 | 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 | 37 | Request request = null; |
| 46 | 38 | // sipuri |
| 47 | 39 | SipURI requestURI = sipFactory.createAddressFactory().createSipURI(device.getDeviceId(), device.getHostAddress()); |
| ... | ... | @@ -60,9 +52,7 @@ public class SIPRequestHeaderProvider { |
| 60 | 52 | SipURI toSipURI = sipFactory.createAddressFactory().createSipURI(device.getDeviceId(), sipConfig.getSipDomain()); |
| 61 | 53 | Address toAddress = sipFactory.createAddressFactory().createAddress(toSipURI); |
| 62 | 54 | ToHeader toHeader = sipFactory.createHeaderFactory().createToHeader(toAddress, toTag); |
| 63 | - // callid | |
| 64 | - CallIdHeader callIdHeader = device.getTransport().equals("TCP") ? tcpSipProvider.getNewCallId() | |
| 65 | - : udpSipProvider.getNewCallId(); | |
| 55 | + | |
| 66 | 56 | // Forwards |
| 67 | 57 | MaxForwardsHeader maxForwards = sipFactory.createHeaderFactory().createMaxForwardsHeader(70); |
| 68 | 58 | // ceq |
| ... | ... | @@ -75,7 +65,7 @@ public class SIPRequestHeaderProvider { |
| 75 | 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 | 69 | Request request = null; |
| 80 | 70 | //请求行 |
| 81 | 71 | SipURI requestLine = sipFactory.createAddressFactory().createSipURI(channelId, device.getHostAddress()); |
| ... | ... | @@ -93,15 +83,6 @@ public class SIPRequestHeaderProvider { |
| 93 | 83 | SipURI toSipURI = sipFactory.createAddressFactory().createSipURI(channelId,sipConfig.getSipDomain()); |
| 94 | 84 | Address toAddress = sipFactory.createAddressFactory().createAddress(toSipURI); |
| 95 | 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 | 87 | //Forwards |
| 107 | 88 | MaxForwardsHeader maxForwards = sipFactory.createHeaderFactory().createMaxForwardsHeader(70); |
| ... | ... | @@ -121,7 +102,7 @@ public class SIPRequestHeaderProvider { |
| 121 | 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 | 106 | Request request = null; |
| 126 | 107 | //请求行 |
| 127 | 108 | SipURI requestLine = sipFactory.createAddressFactory().createSipURI(device.getDeviceId(), device.getHostAddress()); |
| ... | ... | @@ -138,15 +119,6 @@ public class SIPRequestHeaderProvider { |
| 138 | 119 | SipURI toSipURI = sipFactory.createAddressFactory().createSipURI(channelId,sipConfig.getSipDomain()); |
| 139 | 120 | Address toAddress = sipFactory.createAddressFactory().createAddress(toSipURI); |
| 140 | 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 | 123 | //Forwards |
| 152 | 124 | MaxForwardsHeader maxForwards = sipFactory.createHeaderFactory().createMaxForwardsHeader(70); |
| ... | ... | @@ -164,7 +136,7 @@ public class SIPRequestHeaderProvider { |
| 164 | 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 | 140 | Request request = null; |
| 169 | 141 | // sipuri |
| 170 | 142 | SipURI requestURI = sipFactory.createAddressFactory().createSipURI(device.getDeviceId(), device.getHostAddress()); |
| ... | ... | @@ -183,9 +155,7 @@ public class SIPRequestHeaderProvider { |
| 183 | 155 | SipURI toSipURI = sipFactory.createAddressFactory().createSipURI(device.getDeviceId(), sipConfig.getSipDomain()); |
| 184 | 156 | Address toAddress = sipFactory.createAddressFactory().createAddress(toSipURI); |
| 185 | 157 | ToHeader toHeader = sipFactory.createHeaderFactory().createToHeader(toAddress, toTag); |
| 186 | - // callid | |
| 187 | - CallIdHeader callIdHeader = device.getTransport().equals("TCP") ? tcpSipProvider.getNewCallId() | |
| 188 | - : udpSipProvider.getNewCallId(); | |
| 158 | + | |
| 189 | 159 | // Forwards |
| 190 | 160 | MaxForwardsHeader maxForwards = sipFactory.createHeaderFactory().createMaxForwardsHeader(70); |
| 191 | 161 | // ceq | ... | ... |
src/main/java/com/genersoft/iot/vmp/gb28181/transmit/cmd/impl/SIPCommander.java
| ... | ... | @@ -23,6 +23,9 @@ import org.slf4j.LoggerFactory; |
| 23 | 23 | import org.springframework.beans.factory.annotation.Autowired; |
| 24 | 24 | import org.springframework.beans.factory.annotation.Qualifier; |
| 25 | 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 | 29 | import org.springframework.stereotype.Component; |
| 27 | 30 | |
| 28 | 31 | import com.genersoft.iot.vmp.conf.SipConfig; |
| ... | ... | @@ -40,13 +43,25 @@ import com.genersoft.iot.vmp.gb28181.utils.XmlUtil; |
| 40 | 43 | * @date: 2020年5月3日 下午9:22:48 |
| 41 | 44 | */ |
| 42 | 45 | @Component |
| 46 | +@DependsOn("sipLayer") | |
| 43 | 47 | public class SIPCommander implements ISIPCommander { |
| 44 | 48 | |
| 45 | 49 | private final Logger logger = LoggerFactory.getLogger(SIPCommander.class); |
| 46 | - | |
| 50 | + | |
| 51 | + | |
| 47 | 52 | @Autowired |
| 48 | 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 | 65 | @Autowired |
| 51 | 66 | private SIPRequestHeaderProvider headerProvider; |
| 52 | 67 | |
| ... | ... | @@ -58,14 +73,6 @@ public class SIPCommander implements ISIPCommander { |
| 58 | 73 | |
| 59 | 74 | @Autowired |
| 60 | 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 | 77 | @Autowired |
| 71 | 78 | private ZLMRTPServerFactory zlmrtpServerFactory; |
| ... | ... | @@ -235,7 +242,11 @@ public class SIPCommander implements ISIPCommander { |
| 235 | 242 | ptzXml.append("</Control>\r\n"); |
| 236 | 243 | |
| 237 | 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 | 251 | transmitRequest(device, request); |
| 241 | 252 | return true; |
| ... | ... | @@ -272,7 +283,11 @@ public class SIPCommander implements ISIPCommander { |
| 272 | 283 | ptzXml.append("</Control>\r\n"); |
| 273 | 284 | |
| 274 | 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 | 291 | transmitRequest(device, request); |
| 277 | 292 | return true; |
| 278 | 293 | } catch (SipException | ParseException | InvalidArgumentException e) { |
| ... | ... | @@ -302,7 +317,11 @@ public class SIPCommander implements ISIPCommander { |
| 302 | 317 | ptzXml.append("</Control>\r\n"); |
| 303 | 318 | |
| 304 | 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 | 325 | transmitRequest(device, request); |
| 307 | 326 | return true; |
| 308 | 327 | } catch (SipException | ParseException | InvalidArgumentException e) { |
| ... | ... | @@ -414,7 +433,11 @@ public class SIPCommander implements ISIPCommander { |
| 414 | 433 | content.append("y="+ssrc+"\r\n");//ssrc |
| 415 | 434 | |
| 416 | 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 | 442 | ClientTransaction transaction = transmitRequest(device, request, errorEvent); |
| 420 | 443 | streamSession.put(streamId,ssrc, transaction); |
| ... | ... | @@ -512,7 +535,11 @@ public class SIPCommander implements ISIPCommander { |
| 512 | 535 | content.append("y="+ssrc+"\r\n");//ssrc |
| 513 | 536 | |
| 514 | 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 | 544 | ClientTransaction transaction = transmitRequest(device, request, errorEvent); |
| 518 | 545 | streamSession.put(streamId, ssrc, transaction); |
| ... | ... | @@ -624,7 +651,11 @@ public class SIPCommander implements ISIPCommander { |
| 624 | 651 | cmdXml.append("</Control>\r\n"); |
| 625 | 652 | |
| 626 | 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 | 659 | transmitRequest(device, request, errorEvent); |
| 629 | 660 | return true; |
| 630 | 661 | } catch (SipException | ParseException | InvalidArgumentException e) { |
| ... | ... | @@ -651,7 +682,11 @@ public class SIPCommander implements ISIPCommander { |
| 651 | 682 | cmdXml.append("</Control>\r\n"); |
| 652 | 683 | |
| 653 | 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 | 690 | transmitRequest(device, request); |
| 656 | 691 | return true; |
| 657 | 692 | } catch (SipException | ParseException | InvalidArgumentException e) { |
| ... | ... | @@ -679,7 +714,11 @@ public class SIPCommander implements ISIPCommander { |
| 679 | 714 | cmdXml.append("</Control>\r\n"); |
| 680 | 715 | |
| 681 | 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 | 722 | transmitRequest(device, request, errorEvent); |
| 684 | 723 | return true; |
| 685 | 724 | } catch (SipException | ParseException | InvalidArgumentException e) { |
| ... | ... | @@ -718,7 +757,11 @@ public class SIPCommander implements ISIPCommander { |
| 718 | 757 | cmdXml.append("</Control>\r\n"); |
| 719 | 758 | |
| 720 | 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 | 765 | transmitRequest(device, request, errorEvent); |
| 723 | 766 | return true; |
| 724 | 767 | } catch (SipException | ParseException | InvalidArgumentException e) { |
| ... | ... | @@ -750,7 +793,11 @@ public class SIPCommander implements ISIPCommander { |
| 750 | 793 | cmdXml.append("</Control>\r\n"); |
| 751 | 794 | |
| 752 | 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 | 801 | transmitRequest(device, request); |
| 755 | 802 | return true; |
| 756 | 803 | } catch (SipException | ParseException | InvalidArgumentException e) { |
| ... | ... | @@ -800,7 +847,11 @@ public class SIPCommander implements ISIPCommander { |
| 800 | 847 | cmdXml.append("</Control>\r\n"); |
| 801 | 848 | |
| 802 | 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 | 855 | transmitRequest(device, request, errorEvent); |
| 805 | 856 | return true; |
| 806 | 857 | } catch (SipException | ParseException | InvalidArgumentException e) { |
| ... | ... | @@ -867,7 +918,11 @@ public class SIPCommander implements ISIPCommander { |
| 867 | 918 | cmdXml.append("</Control>\r\n"); |
| 868 | 919 | |
| 869 | 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 | 926 | transmitRequest(device, request, errorEvent); |
| 872 | 927 | return true; |
| 873 | 928 | } catch (SipException | ParseException | InvalidArgumentException e) { |
| ... | ... | @@ -893,7 +948,11 @@ public class SIPCommander implements ISIPCommander { |
| 893 | 948 | catalogXml.append("</Query>\r\n"); |
| 894 | 949 | |
| 895 | 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 | 957 | transmitRequest(device, request, errorEvent); |
| 899 | 958 | return true; |
| ... | ... | @@ -921,7 +980,11 @@ public class SIPCommander implements ISIPCommander { |
| 921 | 980 | catalogXml.append("</Query>\r\n"); |
| 922 | 981 | |
| 923 | 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 | 989 | transmitRequest(device, request); |
| 927 | 990 | |
| ... | ... | @@ -951,7 +1014,11 @@ public class SIPCommander implements ISIPCommander { |
| 951 | 1014 | catalogXml.append("</Query>\r\n"); |
| 952 | 1015 | |
| 953 | 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 | 1023 | transmitRequest(device, request, errorEvent); |
| 957 | 1024 | } catch (SipException | ParseException | InvalidArgumentException e) { |
| ... | ... | @@ -986,7 +1053,12 @@ public class SIPCommander implements ISIPCommander { |
| 986 | 1053 | recordInfoXml.append("</Query>\r\n"); |
| 987 | 1054 | |
| 988 | 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 | 1063 | transmitRequest(device, request); |
| 992 | 1064 | } catch (SipException | ParseException | InvalidArgumentException e) { |
| ... | ... | @@ -1039,7 +1111,11 @@ public class SIPCommander implements ISIPCommander { |
| 1039 | 1111 | cmdXml.append("</Query>\r\n"); |
| 1040 | 1112 | |
| 1041 | 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 | 1119 | transmitRequest(device, request, errorEvent); |
| 1044 | 1120 | return true; |
| 1045 | 1121 | } catch (SipException | ParseException | InvalidArgumentException e) { |
| ... | ... | @@ -1072,7 +1148,11 @@ public class SIPCommander implements ISIPCommander { |
| 1072 | 1148 | cmdXml.append("</Query>\r\n"); |
| 1073 | 1149 | |
| 1074 | 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 | 1156 | transmitRequest(device, request, errorEvent); |
| 1077 | 1157 | return true; |
| 1078 | 1158 | } catch (SipException | ParseException | InvalidArgumentException e) { |
| ... | ... | @@ -1102,7 +1182,11 @@ public class SIPCommander implements ISIPCommander { |
| 1102 | 1182 | cmdXml.append("</Query>\r\n"); |
| 1103 | 1183 | |
| 1104 | 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 | 1190 | transmitRequest(device, request, errorEvent); |
| 1107 | 1191 | return true; |
| 1108 | 1192 | } catch (SipException | ParseException | InvalidArgumentException e) { |
| ... | ... | @@ -1129,7 +1213,11 @@ public class SIPCommander implements ISIPCommander { |
| 1129 | 1213 | mobilePostitionXml.append("</Query>\r\n"); |
| 1130 | 1214 | |
| 1131 | 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 | 1222 | transmitRequest(device, request, errorEvent); |
| 1135 | 1223 | |
| ... | ... | @@ -1162,7 +1250,11 @@ public class SIPCommander implements ISIPCommander { |
| 1162 | 1250 | subscribePostitionXml.append("</Query>\r\n"); |
| 1163 | 1251 | |
| 1164 | 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 | 1258 | transmitRequest(device, request); |
| 1167 | 1259 | |
| 1168 | 1260 | return true; |
| ... | ... | @@ -1215,7 +1307,11 @@ public class SIPCommander implements ISIPCommander { |
| 1215 | 1307 | cmdXml.append("</Query>\r\n"); |
| 1216 | 1308 | |
| 1217 | 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 | 1315 | transmitRequest(device, request); |
| 1220 | 1316 | |
| 1221 | 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 | 15 | import org.springframework.beans.factory.annotation.Autowired; |
| 16 | 16 | import org.springframework.beans.factory.annotation.Qualifier; |
| 17 | 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 | 21 | import org.springframework.lang.Nullable; |
| 19 | 22 | import org.springframework.stereotype.Component; |
| 20 | 23 | |
| ... | ... | @@ -26,6 +29,7 @@ import java.text.ParseException; |
| 26 | 29 | import java.util.UUID; |
| 27 | 30 | |
| 28 | 31 | @Component |
| 32 | +@DependsOn("sipLayer") | |
| 29 | 33 | public class SIPCommanderFroPlatform implements ISIPCommanderForPlatform { |
| 30 | 34 | |
| 31 | 35 | // @Autowired |
| ... | ... | @@ -49,10 +53,12 @@ public class SIPCommanderFroPlatform implements ISIPCommanderForPlatform { |
| 49 | 53 | @Autowired |
| 50 | 54 | private SipSubscribe sipSubscribe; |
| 51 | 55 | |
| 56 | + @Lazy | |
| 52 | 57 | @Autowired |
| 53 | 58 | @Qualifier(value="tcpSipProvider") |
| 54 | 59 | private SipProvider tcpSipProvider; |
| 55 | 60 | |
| 61 | + @Lazy | |
| 56 | 62 | @Autowired |
| 57 | 63 | @Qualifier(value="udpSipProvider") |
| 58 | 64 | private SipProvider udpSipProvider; |
| ... | ... | @@ -83,19 +89,30 @@ public class SIPCommanderFroPlatform implements ISIPCommanderForPlatform { |
| 83 | 89 | Request request = null; |
| 84 | 90 | |
| 85 | 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 | 101 | // 将 callid 写入缓存, 等注册成功可以更新状态 |
| 88 | - CallIdHeader callIdHeader = (CallIdHeader)request.getHeader(CallIdHeader.NAME); | |
| 89 | 102 | redisCatchStorage.updatePlatformRegisterInfo(callIdHeader.getCallId(), parentPlatform.getServerGBId()); |
| 90 | 103 | |
| 104 | + CallIdHeader finalCallIdHeader = callIdHeader; | |
| 91 | 105 | sipSubscribe.addErrorSubscribe(callIdHeader.getCallId(), (event)->{ |
| 92 | - redisCatchStorage.delPlatformRegisterInfo(callIdHeader.getCallId()); | |
| 106 | + redisCatchStorage.delPlatformRegisterInfo(finalCallIdHeader.getCallId()); | |
| 93 | 107 | if (errorEvent != null) { |
| 94 | 108 | errorEvent.response(event); |
| 95 | 109 | } |
| 96 | 110 | }); |
| 97 | 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 | 118 | transmitRequest(parentPlatform, request, null, okEvent); |
| ... | ... | @@ -126,14 +143,17 @@ public class SIPCommanderFroPlatform implements ISIPCommanderForPlatform { |
| 126 | 143 | keepaliveXml.append("<Status>OK</Status>\r\n"); |
| 127 | 144 | keepaliveXml.append("</Notify>\r\n"); |
| 128 | 145 | |
| 146 | + CallIdHeader callIdHeader = parentPlatform.getTransport().equals("TCP") ? tcpSipProvider.getNewCallId() | |
| 147 | + : udpSipProvider.getNewCallId(); | |
| 148 | + | |
| 129 | 149 | Request request = headerProviderPlarformProvider.createKeetpaliveMessageRequest( |
| 130 | 150 | parentPlatform, |
| 131 | 151 | keepaliveXml.toString(), |
| 132 | 152 | "z9hG4bK-" + UUID.randomUUID().toString().replace("-", ""), |
| 133 | 153 | UUID.randomUUID().toString().replace("-", ""), |
| 134 | - null); | |
| 154 | + null, | |
| 155 | + callIdHeader); | |
| 135 | 156 | transmitRequest(parentPlatform, request); |
| 136 | - CallIdHeader callIdHeader = (CallIdHeader)request.getHeader(CallIdHeader.NAME); | |
| 137 | 157 | callId = callIdHeader.getCallId(); |
| 138 | 158 | } catch (ParseException | InvalidArgumentException | SipException e) { |
| 139 | 159 | e.printStackTrace(); |
| ... | ... | @@ -208,7 +228,12 @@ public class SIPCommanderFroPlatform implements ISIPCommanderForPlatform { |
| 208 | 228 | catalogXml.append("</Item>\r\n"); |
| 209 | 229 | catalogXml.append("</DeviceList>\r\n"); |
| 210 | 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 | 237 | transmitRequest(parentPlatform, request); |
| 213 | 238 | |
| 214 | 239 | } catch (SipException | ParseException | InvalidArgumentException e) { |
| ... | ... | @@ -243,7 +268,11 @@ public class SIPCommanderFroPlatform implements ISIPCommanderForPlatform { |
| 243 | 268 | deviceInfoXml.append("<Firmware>2.0.202103</Firmware>\r\n"); |
| 244 | 269 | deviceInfoXml.append("<Result>OK</Result>\r\n"); |
| 245 | 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 | 276 | transmitRequest(parentPlatform, request); |
| 248 | 277 | |
| 249 | 278 | } catch (SipException | ParseException | InvalidArgumentException e) { |
| ... | ... | @@ -276,7 +305,11 @@ public class SIPCommanderFroPlatform implements ISIPCommanderForPlatform { |
| 276 | 305 | deviceStatusXml.append("<Online>ONLINE</Online>\r\n"); |
| 277 | 306 | deviceStatusXml.append("<Status>OK</Status>\r\n"); |
| 278 | 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 | 313 | transmitRequest(parentPlatform, request); |
| 281 | 314 | |
| 282 | 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 | 37 | Dialog dialog = evt.getDialog(); |
| 38 | 38 | if (dialog == null) return; |
| 39 | 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 | 41 | String platformGbId = ((SipURI) ((HeaderAddress) evt.getRequest().getHeader(FromHeader.NAME)).getAddress().getURI()).getUser(); |
| 42 | 42 | String channelId = ((SipURI) ((HeaderAddress) evt.getRequest().getHeader(ToHeader.NAME)).getAddress().getURI()).getUser(); |
| 43 | 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 | 237 | * @throws ParseException |
| 238 | 238 | */ |
| 239 | 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 | 241 | getServerTransaction(evt).sendResponse(response); |
| 242 | 242 | } |
| 243 | 243 | ... | ... |
src/main/resources/application-dev.yml
| ... | ... | @@ -11,7 +11,7 @@ spring: |
| 11 | 11 | password: |
| 12 | 12 | # [可选] 超时时间 |
| 13 | 13 | timeout: 10000 |
| 14 | - # [不可用] jdbc数据库配置, 暂不支持 | |
| 14 | + # [可选] jdbc数据库配置, 项目使用sqlite作为数据库,一般不需要配置 | |
| 15 | 15 | datasource: |
| 16 | 16 | # name: eiot |
| 17 | 17 | # url: jdbc:mysql://127.0.0.1:3306/eiot?useUnicode=true&characterEncoding=UTF8&rewriteBatchedStatements=true | ... | ... |
web_src/package-lock.json