Commit 86b56ccc6de86648b00f796334e6ffa3bd291ddc

Authored by 648540858
1 parent 74714711

去除国标级联中ServerTransaction的使用

src/main/java/com/genersoft/iot/vmp/gb28181/transmit/cmd/impl/SIPCommanderFroPlatform.java
@@ -3,6 +3,7 @@ package com.genersoft.iot.vmp.gb28181.transmit.cmd.impl; @@ -3,6 +3,7 @@ package com.genersoft.iot.vmp.gb28181.transmit.cmd.impl;
3 import com.alibaba.fastjson.JSONObject; 3 import com.alibaba.fastjson.JSONObject;
4 import com.genersoft.iot.vmp.gb28181.bean.*; 4 import com.genersoft.iot.vmp.gb28181.bean.*;
5 import com.genersoft.iot.vmp.gb28181.event.SipSubscribe; 5 import com.genersoft.iot.vmp.gb28181.event.SipSubscribe;
  6 +import com.genersoft.iot.vmp.gb28181.transmit.SIPSender;
6 import com.genersoft.iot.vmp.gb28181.transmit.cmd.ISIPCommanderForPlatform; 7 import com.genersoft.iot.vmp.gb28181.transmit.cmd.ISIPCommanderForPlatform;
7 import com.genersoft.iot.vmp.gb28181.transmit.cmd.SIPRequestHeaderPlarformProvider; 8 import com.genersoft.iot.vmp.gb28181.transmit.cmd.SIPRequestHeaderPlarformProvider;
8 import com.genersoft.iot.vmp.gb28181.utils.SipUtils; 9 import com.genersoft.iot.vmp.gb28181.utils.SipUtils;
@@ -54,21 +55,11 @@ public class SIPCommanderFroPlatform implements ISIPCommanderForPlatform { @@ -54,21 +55,11 @@ public class SIPCommanderFroPlatform implements ISIPCommanderForPlatform {
54 @Autowired 55 @Autowired
55 private ZLMRTPServerFactory zlmrtpServerFactory; 56 private ZLMRTPServerFactory zlmrtpServerFactory;
56 57
57 - @Lazy  
58 - @Autowired  
59 - @Qualifier(value="tcpSipProvider")  
60 - private SipProviderImpl tcpSipProvider;  
61 -  
62 - @Lazy  
63 - @Autowired  
64 - @Qualifier(value="udpSipProvider")  
65 - private SipProviderImpl udpSipProvider;  
66 -  
67 @Autowired 58 @Autowired
68 private SipFactory sipFactory; 59 private SipFactory sipFactory;
69 60
70 @Autowired 61 @Autowired
71 - private SubscribeHolder subscribeHolder; 62 + private SIPSender sipSender;
72 63
73 @Override 64 @Override
74 public void register(ParentPlatform parentPlatform, SipSubscribe.Event errorEvent , SipSubscribe.Event okEvent) throws InvalidArgumentException, ParseException, SipException { 65 public void register(ParentPlatform parentPlatform, SipSubscribe.Event errorEvent , SipSubscribe.Event okEvent) throws InvalidArgumentException, ParseException, SipException {
@@ -85,13 +76,7 @@ public class SIPCommanderFroPlatform implements ISIPCommanderForPlatform { @@ -85,13 +76,7 @@ public class SIPCommanderFroPlatform implements ISIPCommanderForPlatform {
85 SipSubscribe.Event errorEvent , SipSubscribe.Event okEvent, boolean registerAgain, boolean isRegister) throws SipException, InvalidArgumentException, ParseException { 76 SipSubscribe.Event errorEvent , SipSubscribe.Event okEvent, boolean registerAgain, boolean isRegister) throws SipException, InvalidArgumentException, ParseException {
86 Request request; 77 Request request;
87 if (!registerAgain ) { 78 if (!registerAgain ) {
88 - CallIdHeader callIdHeader = null;  
89 - if(parentPlatform.getTransport().equalsIgnoreCase("TCP")) {  
90 - callIdHeader = tcpSipProvider.getNewCallId();  
91 - }  
92 - if(parentPlatform.getTransport().equalsIgnoreCase("UDP")) {  
93 - callIdHeader = udpSipProvider.getNewCallId();  
94 - } 79 + CallIdHeader callIdHeader = sipSender.getNewCallIdHeader(parentPlatform.getTransport());
95 80
96 request = headerProviderPlatformProvider.createRegisterRequest(parentPlatform, 81 request = headerProviderPlatformProvider.createRegisterRequest(parentPlatform,
97 redisCatchStorage.getCSEQ(), SipUtils.getNewFromTag(), 82 redisCatchStorage.getCSEQ(), SipUtils.getNewFromTag(),
@@ -113,12 +98,11 @@ public class SIPCommanderFroPlatform implements ISIPCommanderForPlatform { @@ -113,12 +98,11 @@ public class SIPCommanderFroPlatform implements ISIPCommanderForPlatform {
113 }); 98 });
114 99
115 }else { 100 }else {
116 - CallIdHeader callIdHeader = parentPlatform.getTransport().equalsIgnoreCase("TCP") ? tcpSipProvider.getNewCallId()  
117 - : udpSipProvider.getNewCallId(); 101 + CallIdHeader callIdHeader = sipSender.getNewCallIdHeader(parentPlatform.getTransport());
118 request = headerProviderPlatformProvider.createRegisterRequest(parentPlatform, SipUtils.getNewFromTag(), null, callId, www, callIdHeader, isRegister); 102 request = headerProviderPlatformProvider.createRegisterRequest(parentPlatform, SipUtils.getNewFromTag(), null, callId, www, callIdHeader, isRegister);
119 } 103 }
120 104
121 - transmitRequest(parentPlatform, request, null, okEvent); 105 + sipSender.transmitRequest( request, null, okEvent);
122 } 106 }
123 107
124 @Override 108 @Override
@@ -133,8 +117,7 @@ public class SIPCommanderFroPlatform implements ISIPCommanderForPlatform { @@ -133,8 +117,7 @@ public class SIPCommanderFroPlatform implements ISIPCommanderForPlatform {
133 keepaliveXml.append("<Status>OK</Status>\r\n"); 117 keepaliveXml.append("<Status>OK</Status>\r\n");
134 keepaliveXml.append("</Notify>\r\n"); 118 keepaliveXml.append("</Notify>\r\n");
135 119
136 - CallIdHeader callIdHeader = parentPlatform.getTransport().equalsIgnoreCase("TCP") ? tcpSipProvider.getNewCallId()  
137 - : udpSipProvider.getNewCallId(); 120 + CallIdHeader callIdHeader = sipSender.getNewCallIdHeader(parentPlatform.getTransport());
138 121
139 Request request = headerProviderPlatformProvider.createMessageRequest( 122 Request request = headerProviderPlatformProvider.createMessageRequest(
140 parentPlatform, 123 parentPlatform,
@@ -142,39 +125,10 @@ public class SIPCommanderFroPlatform implements ISIPCommanderForPlatform { @@ -142,39 +125,10 @@ public class SIPCommanderFroPlatform implements ISIPCommanderForPlatform {
142 SipUtils.getNewFromTag(), 125 SipUtils.getNewFromTag(),
143 SipUtils.getNewViaTag(), 126 SipUtils.getNewViaTag(),
144 callIdHeader); 127 callIdHeader);
145 - transmitRequest(parentPlatform, request, errorEvent, okEvent); 128 + sipSender.transmitRequest( request, errorEvent, okEvent);
146 return callIdHeader.getCallId(); 129 return callIdHeader.getCallId();
147 } 130 }
148 131
149 - private void transmitRequest(ParentPlatform parentPlatform, Request request) throws SipException {  
150 - transmitRequest(parentPlatform, request, null, null);  
151 - }  
152 -  
153 - private void transmitRequest(ParentPlatform parentPlatform, Request request, SipSubscribe.Event errorEvent) throws SipException {  
154 - transmitRequest(parentPlatform, request, errorEvent, null);  
155 - }  
156 -  
157 - private void transmitRequest(ParentPlatform parentPlatform, Request request, SipSubscribe.Event errorEvent , SipSubscribe.Event okEvent) throws SipException {  
158 - logger.debug("\n发送消息:\n{}", request);  
159 - if("TCP".equalsIgnoreCase(parentPlatform.getTransport())) {  
160 - tcpSipProvider.sendRequest(request);  
161 -  
162 - } else if("UDP".equalsIgnoreCase(parentPlatform.getTransport())) {  
163 - udpSipProvider.sendRequest(request);  
164 - }  
165 -  
166 - CallIdHeader callIdHeader = (CallIdHeader)request.getHeader(CallIdHeader.NAME);  
167 - // 添加错误订阅  
168 - if (errorEvent != null) {  
169 - sipSubscribe.addErrorSubscribe(callIdHeader.getCallId(), errorEvent);  
170 - }  
171 - // 添加订阅  
172 - if (okEvent != null) {  
173 - sipSubscribe.addOkSubscribe(callIdHeader.getCallId(), okEvent);  
174 - }  
175 -  
176 - }  
177 -  
178 /** 132 /**
179 * 向上级回复通道信息 133 * 向上级回复通道信息
180 * @param channel 通道信息 134 * @param channel 通道信息
@@ -194,11 +148,10 @@ public class SIPCommanderFroPlatform implements ISIPCommanderForPlatform { @@ -194,11 +148,10 @@ public class SIPCommanderFroPlatform implements ISIPCommanderForPlatform {
194 String catalogXml = getCatalogXml(channels, sn, parentPlatform, size); 148 String catalogXml = getCatalogXml(channels, sn, parentPlatform, size);
195 149
196 // callid 150 // callid
197 - CallIdHeader callIdHeader = parentPlatform.getTransport().equalsIgnoreCase("TCP") ? tcpSipProvider.getNewCallId()  
198 - : udpSipProvider.getNewCallId(); 151 + CallIdHeader callIdHeader = sipSender.getNewCallIdHeader(parentPlatform.getTransport());
199 152
200 Request request = headerProviderPlatformProvider.createMessageRequest(parentPlatform, catalogXml.toString(), fromTag, SipUtils.getNewViaTag(), callIdHeader); 153 Request request = headerProviderPlatformProvider.createMessageRequest(parentPlatform, catalogXml.toString(), fromTag, SipUtils.getNewViaTag(), callIdHeader);
201 - transmitRequest(parentPlatform, request); 154 + sipSender.transmitRequest( request);
202 155
203 } 156 }
204 157
@@ -281,11 +234,10 @@ public class SIPCommanderFroPlatform implements ISIPCommanderForPlatform { @@ -281,11 +234,10 @@ public class SIPCommanderFroPlatform implements ISIPCommanderForPlatform {
281 } 234 }
282 String catalogXml = getCatalogXml(deviceChannels, sn, parentPlatform, channels.size()); 235 String catalogXml = getCatalogXml(deviceChannels, sn, parentPlatform, channels.size());
283 // callid 236 // callid
284 - CallIdHeader callIdHeader = parentPlatform.getTransport().equalsIgnoreCase("TCP") ? tcpSipProvider.getNewCallId()  
285 - : udpSipProvider.getNewCallId(); 237 + CallIdHeader callIdHeader = sipSender.getNewCallIdHeader(parentPlatform.getTransport());
286 238
287 Request request = headerProviderPlatformProvider.createMessageRequest(parentPlatform, catalogXml, fromTag, SipUtils.getNewViaTag(), callIdHeader); 239 Request request = headerProviderPlatformProvider.createMessageRequest(parentPlatform, catalogXml, fromTag, SipUtils.getNewViaTag(), callIdHeader);
288 - transmitRequest(parentPlatform, request, null, eventResult -> { 240 + sipSender.transmitRequest( request, null, eventResult -> {
289 int indexNext = index + parentPlatform.getCatalogGroup(); 241 int indexNext = index + parentPlatform.getCatalogGroup();
290 try { 242 try {
291 sendCatalogResponse(channels, parentPlatform, sn, fromTag, indexNext); 243 sendCatalogResponse(channels, parentPlatform, sn, fromTag, indexNext);
@@ -321,11 +273,10 @@ public class SIPCommanderFroPlatform implements ISIPCommanderForPlatform { @@ -321,11 +273,10 @@ public class SIPCommanderFroPlatform implements ISIPCommanderForPlatform {
321 deviceInfoXml.append("<Result>OK</Result>\r\n"); 273 deviceInfoXml.append("<Result>OK</Result>\r\n");
322 deviceInfoXml.append("</Response>\r\n"); 274 deviceInfoXml.append("</Response>\r\n");
323 275
324 - CallIdHeader callIdHeader = parentPlatform.getTransport().equalsIgnoreCase("TCP") ? tcpSipProvider.getNewCallId()  
325 - : udpSipProvider.getNewCallId(); 276 + CallIdHeader callIdHeader = sipSender.getNewCallIdHeader(parentPlatform.getTransport());
326 277
327 Request request = headerProviderPlatformProvider.createMessageRequest(parentPlatform, deviceInfoXml.toString(), fromTag, SipUtils.getNewViaTag(), callIdHeader); 278 Request request = headerProviderPlatformProvider.createMessageRequest(parentPlatform, deviceInfoXml.toString(), fromTag, SipUtils.getNewViaTag(), callIdHeader);
328 - transmitRequest(parentPlatform, request); 279 + sipSender.transmitRequest( request);
329 } 280 }
330 281
331 /** 282 /**
@@ -352,11 +303,10 @@ public class SIPCommanderFroPlatform implements ISIPCommanderForPlatform { @@ -352,11 +303,10 @@ public class SIPCommanderFroPlatform implements ISIPCommanderForPlatform {
352 deviceStatusXml.append("<Status>OK</Status>\r\n"); 303 deviceStatusXml.append("<Status>OK</Status>\r\n");
353 deviceStatusXml.append("</Response>\r\n"); 304 deviceStatusXml.append("</Response>\r\n");
354 305
355 - CallIdHeader callIdHeader = parentPlatform.getTransport().equalsIgnoreCase("TCP") ? tcpSipProvider.getNewCallId()  
356 - : udpSipProvider.getNewCallId(); 306 + CallIdHeader callIdHeader = sipSender.getNewCallIdHeader(parentPlatform.getTransport());
357 307
358 Request request = headerProviderPlatformProvider.createMessageRequest(parentPlatform, deviceStatusXml.toString(), fromTag, SipUtils.getNewViaTag(), callIdHeader); 308 Request request = headerProviderPlatformProvider.createMessageRequest(parentPlatform, deviceStatusXml.toString(), fromTag, SipUtils.getNewViaTag(), callIdHeader);
359 - transmitRequest(parentPlatform, request); 309 + sipSender.transmitRequest( request);
360 310
361 } 311 }
362 312
@@ -415,11 +365,10 @@ public class SIPCommanderFroPlatform implements ISIPCommanderForPlatform { @@ -415,11 +365,10 @@ public class SIPCommanderFroPlatform implements ISIPCommanderForPlatform {
415 deviceStatusXml.append("</info>\r\n"); 365 deviceStatusXml.append("</info>\r\n");
416 deviceStatusXml.append("</Notify>\r\n"); 366 deviceStatusXml.append("</Notify>\r\n");
417 367
418 - CallIdHeader callIdHeader = parentPlatform.getTransport().equalsIgnoreCase("TCP") ? tcpSipProvider.getNewCallId()  
419 - : udpSipProvider.getNewCallId(); 368 + CallIdHeader callIdHeader = sipSender.getNewCallIdHeader(parentPlatform.getTransport());
420 369
421 Request request = headerProviderPlatformProvider.createMessageRequest(parentPlatform, deviceStatusXml.toString(), SipUtils.getNewFromTag(), SipUtils.getNewViaTag(), callIdHeader); 370 Request request = headerProviderPlatformProvider.createMessageRequest(parentPlatform, deviceStatusXml.toString(), SipUtils.getNewFromTag(), SipUtils.getNewViaTag(), callIdHeader);
422 - transmitRequest(parentPlatform, request); 371 + sipSender.transmitRequest( request);
423 372
424 } 373 }
425 374
@@ -466,7 +415,7 @@ public class SIPCommanderFroPlatform implements ISIPCommanderForPlatform { @@ -466,7 +415,7 @@ public class SIPCommanderFroPlatform implements ISIPCommanderForPlatform {
466 415
467 SIPRequest notifyRequest = headerProviderPlatformProvider.createNotifyRequest(parentPlatform, catalogXmlContent, subscribeInfo); 416 SIPRequest notifyRequest = headerProviderPlatformProvider.createNotifyRequest(parentPlatform, catalogXmlContent, subscribeInfo);
468 417
469 - transmitRequest(parentPlatform, notifyRequest); 418 + sipSender.transmitRequest( notifyRequest);
470 } 419 }
471 420
472 private String getCatalogXmlContentForCatalogAddOrUpdate(ParentPlatform parentPlatform, List<DeviceChannel> channels, int sumNum, String type, SubscribeInfo subscribeInfo) { 421 private String getCatalogXmlContentForCatalogAddOrUpdate(ParentPlatform parentPlatform, List<DeviceChannel> channels, int sumNum, String type, SubscribeInfo subscribeInfo) {
@@ -631,10 +580,10 @@ public class SIPCommanderFroPlatform implements ISIPCommanderForPlatform { @@ -631,10 +580,10 @@ public class SIPCommanderFroPlatform implements ISIPCommanderForPlatform {
631 recordXml.append("</Response>\r\n"); 580 recordXml.append("</Response>\r\n");
632 581
633 // callid 582 // callid
634 - CallIdHeader callIdHeader = parentPlatform.getTransport().equals("TCP") ? tcpSipProvider.getNewCallId()  
635 - : udpSipProvider.getNewCallId(); 583 + CallIdHeader callIdHeader = sipSender.getNewCallIdHeader(parentPlatform.getTransport());
  584 +
636 Request request = headerProviderPlatformProvider.createMessageRequest(parentPlatform, recordXml.toString(), fromTag, SipUtils.getNewViaTag(), callIdHeader); 585 Request request = headerProviderPlatformProvider.createMessageRequest(parentPlatform, recordXml.toString(), fromTag, SipUtils.getNewViaTag(), callIdHeader);
637 - transmitRequest(parentPlatform, request); 586 + sipSender.transmitRequest( request);
638 587
639 } 588 }
640 589
@@ -658,7 +607,7 @@ public class SIPCommanderFroPlatform implements ISIPCommanderForPlatform { @@ -658,7 +607,7 @@ public class SIPCommanderFroPlatform implements ISIPCommanderForPlatform {
658 SIPRequest messageRequest = (SIPRequest)headerProviderPlatformProvider.createMessageRequest(platform, mediaStatusXml.toString(), 607 SIPRequest messageRequest = (SIPRequest)headerProviderPlatformProvider.createMessageRequest(platform, mediaStatusXml.toString(),
659 sendRtpItem); 608 sendRtpItem);
660 609
661 - transmitRequest(platform, messageRequest); 610 + sipSender.transmitRequest(messageRequest);
662 611
663 } 612 }
664 613
@@ -694,6 +643,6 @@ public class SIPCommanderFroPlatform implements ISIPCommanderForPlatform { @@ -694,6 +643,6 @@ public class SIPCommanderFroPlatform implements ISIPCommanderForPlatform {
694 if (byeRequest == null) { 643 if (byeRequest == null) {
695 logger.warn("[向上级发送bye]:无法创建 byeRequest"); 644 logger.warn("[向上级发送bye]:无法创建 byeRequest");
696 } 645 }
697 - transmitRequest(platform,byeRequest); 646 + sipSender.transmitRequest(byeRequest);
698 } 647 }
699 } 648 }