Commit 86b56ccc6de86648b00f796334e6ffa3bd291ddc
1 parent
74714711
去除国标级联中ServerTransaction的使用
Showing
1 changed file
with
23 additions
and
74 deletions
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 | } | ... | ... |