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 3 import com.alibaba.fastjson.JSONObject;
4 4 import com.genersoft.iot.vmp.gb28181.bean.*;
5 5 import com.genersoft.iot.vmp.gb28181.event.SipSubscribe;
  6 +import com.genersoft.iot.vmp.gb28181.transmit.SIPSender;
6 7 import com.genersoft.iot.vmp.gb28181.transmit.cmd.ISIPCommanderForPlatform;
7 8 import com.genersoft.iot.vmp.gb28181.transmit.cmd.SIPRequestHeaderPlarformProvider;
8 9 import com.genersoft.iot.vmp.gb28181.utils.SipUtils;
... ... @@ -54,21 +55,11 @@ public class SIPCommanderFroPlatform implements ISIPCommanderForPlatform {
54 55 @Autowired
55 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 58 @Autowired
68 59 private SipFactory sipFactory;
69 60  
70 61 @Autowired
71   - private SubscribeHolder subscribeHolder;
  62 + private SIPSender sipSender;
72 63  
73 64 @Override
74 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 76 SipSubscribe.Event errorEvent , SipSubscribe.Event okEvent, boolean registerAgain, boolean isRegister) throws SipException, InvalidArgumentException, ParseException {
86 77 Request request;
87 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 81 request = headerProviderPlatformProvider.createRegisterRequest(parentPlatform,
97 82 redisCatchStorage.getCSEQ(), SipUtils.getNewFromTag(),
... ... @@ -113,12 +98,11 @@ public class SIPCommanderFroPlatform implements ISIPCommanderForPlatform {
113 98 });
114 99  
115 100 }else {
116   - CallIdHeader callIdHeader = parentPlatform.getTransport().equalsIgnoreCase("TCP") ? tcpSipProvider.getNewCallId()
117   - : udpSipProvider.getNewCallId();
  101 + CallIdHeader callIdHeader = sipSender.getNewCallIdHeader(parentPlatform.getTransport());
118 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 108 @Override
... ... @@ -133,8 +117,7 @@ public class SIPCommanderFroPlatform implements ISIPCommanderForPlatform {
133 117 keepaliveXml.append("<Status>OK</Status>\r\n");
134 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 122 Request request = headerProviderPlatformProvider.createMessageRequest(
140 123 parentPlatform,
... ... @@ -142,39 +125,10 @@ public class SIPCommanderFroPlatform implements ISIPCommanderForPlatform {
142 125 SipUtils.getNewFromTag(),
143 126 SipUtils.getNewViaTag(),
144 127 callIdHeader);
145   - transmitRequest(parentPlatform, request, errorEvent, okEvent);
  128 + sipSender.transmitRequest( request, errorEvent, okEvent);
146 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 134 * @param channel 通道信息
... ... @@ -194,11 +148,10 @@ public class SIPCommanderFroPlatform implements ISIPCommanderForPlatform {
194 148 String catalogXml = getCatalogXml(channels, sn, parentPlatform, size);
195 149  
196 150 // callid
197   - CallIdHeader callIdHeader = parentPlatform.getTransport().equalsIgnoreCase("TCP") ? tcpSipProvider.getNewCallId()
198   - : udpSipProvider.getNewCallId();
  151 + CallIdHeader callIdHeader = sipSender.getNewCallIdHeader(parentPlatform.getTransport());
199 152  
200 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 234 }
282 235 String catalogXml = getCatalogXml(deviceChannels, sn, parentPlatform, channels.size());
283 236 // callid
284   - CallIdHeader callIdHeader = parentPlatform.getTransport().equalsIgnoreCase("TCP") ? tcpSipProvider.getNewCallId()
285   - : udpSipProvider.getNewCallId();
  237 + CallIdHeader callIdHeader = sipSender.getNewCallIdHeader(parentPlatform.getTransport());
286 238  
287 239 Request request = headerProviderPlatformProvider.createMessageRequest(parentPlatform, catalogXml, fromTag, SipUtils.getNewViaTag(), callIdHeader);
288   - transmitRequest(parentPlatform, request, null, eventResult -> {
  240 + sipSender.transmitRequest( request, null, eventResult -> {
289 241 int indexNext = index + parentPlatform.getCatalogGroup();
290 242 try {
291 243 sendCatalogResponse(channels, parentPlatform, sn, fromTag, indexNext);
... ... @@ -321,11 +273,10 @@ public class SIPCommanderFroPlatform implements ISIPCommanderForPlatform {
321 273 deviceInfoXml.append("<Result>OK</Result>\r\n");
322 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 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 303 deviceStatusXml.append("<Status>OK</Status>\r\n");
353 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 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 365 deviceStatusXml.append("</info>\r\n");
416 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 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 415  
467 416 SIPRequest notifyRequest = headerProviderPlatformProvider.createNotifyRequest(parentPlatform, catalogXmlContent, subscribeInfo);
468 417  
469   - transmitRequest(parentPlatform, notifyRequest);
  418 + sipSender.transmitRequest( notifyRequest);
470 419 }
471 420  
472 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 580 recordXml.append("</Response>\r\n");
632 581  
633 582 // callid
634   - CallIdHeader callIdHeader = parentPlatform.getTransport().equals("TCP") ? tcpSipProvider.getNewCallId()
635   - : udpSipProvider.getNewCallId();
  583 + CallIdHeader callIdHeader = sipSender.getNewCallIdHeader(parentPlatform.getTransport());
  584 +
636 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 607 SIPRequest messageRequest = (SIPRequest)headerProviderPlatformProvider.createMessageRequest(platform, mediaStatusXml.toString(),
659 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 643 if (byeRequest == null) {
695 644 logger.warn("[向上级发送bye]:无法创建 byeRequest");
696 645 }
697   - transmitRequest(platform,byeRequest);
  646 + sipSender.transmitRequest(byeRequest);
698 647 }
699 648 }
... ...