Commit b37a77f23f995758178b6af38b89a860107d218d

Authored by panlinlin
1 parent bb22908c

解决循环依赖导致的打包失败

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 }