old mode 100644
new mode 100755
 |  |  | 
 |  |  | import com.genersoft.iot.vmp.gb28181.bean.ParentPlatform; | 
 |  |  | import com.genersoft.iot.vmp.gb28181.bean.SendRtpItem; | 
 |  |  | import com.genersoft.iot.vmp.gb28181.transmit.cmd.ISIPCommanderForPlatform; | 
 |  |  | import com.genersoft.iot.vmp.media.zlm.ZLMRTPServerFactory; | 
 |  |  | import com.genersoft.iot.vmp.media.zlm.ZLMServerFactory; | 
 |  |  | import com.genersoft.iot.vmp.media.zlm.dto.MediaServerItem; | 
 |  |  | import com.genersoft.iot.vmp.media.zlm.dto.StreamPushItem; | 
 |  |  | import com.genersoft.iot.vmp.service.IMediaServerService; | 
 |  |  | 
 |  |  |     private IMediaServerService mediaServerService; | 
 |  |  |  | 
 |  |  |     @Autowired | 
 |  |  |     private ZLMRTPServerFactory zlmrtpServerFactory; | 
 |  |  |     private ZLMServerFactory zlmServerFactory; | 
 |  |  |  | 
 |  |  |  | 
 |  |  |     private Map<String, PushStreamResponseEvent> responseEvents = new ConcurrentHashMap<>(); | 
 |  |  | 
 |  |  |         MessageForPushChannel pushChannel = JSON.parseObject(message.getBody(), MessageForPushChannel.class); | 
 |  |  |         StreamPushItem push = streamPushService.getPush(pushChannel.getApp(), pushChannel.getStream()); | 
 |  |  |         if (push != null) { | 
 |  |  |             if (redisCatchStorage.isChannelSendingRTP(push.getGbId())) { | 
 |  |  |                 List<SendRtpItem> sendRtpItems = redisCatchStorage.querySendRTPServerByChnnelId( | 
 |  |  |                         push.getGbId()); | 
 |  |  |                 if (sendRtpItems.size() > 0) { | 
 |  |  |                     for (SendRtpItem sendRtpItem : sendRtpItems) { | 
 |  |  |                         ParentPlatform parentPlatform = storager.queryParentPlatByServerGBId(sendRtpItem.getPlatformId()); | 
 |  |  |             List<SendRtpItem> sendRtpItems = redisCatchStorage.querySendRTPServerByChnnelId( | 
 |  |  |                     push.getGbId()); | 
 |  |  |             if (!sendRtpItems.isEmpty()) { | 
 |  |  |                 for (SendRtpItem sendRtpItem : sendRtpItems) { | 
 |  |  |                     ParentPlatform parentPlatform = storager.queryParentPlatByServerGBId(sendRtpItem.getPlatformId()); | 
 |  |  |                     if (parentPlatform != null) { | 
 |  |  |                         redisCatchStorage.deleteSendRTPServer(sendRtpItem.getPlatformId(), sendRtpItem.getChannelId(), sendRtpItem.getCallId(), sendRtpItem.getStreamId()); | 
 |  |  |                         try { | 
 |  |  |                             commanderFroPlatform.streamByeCmd(parentPlatform, sendRtpItem); | 
 |  |  |                         } catch (SipException | InvalidArgumentException | ParseException e) { | 
 |  |  |                             logger.error("[命令发送失败] 国标级联 发送BYE: {}", e.getMessage()); | 
 |  |  |                         } | 
 |  |  |                     } | 
 |  |  |                     if (push.isSelf()) { | 
 |  |  |                         // 停止向上级推流 | 
 |  |  |                         String streamId = sendRtpItem.getStreamId(); | 
 |  |  |                         Map<String, Object> param = new HashMap<>(); | 
 |  |  | 
 |  |  |                         logger.info("[REDIS消息-推流结束] 停止向上级推流:{}", streamId); | 
 |  |  |                         MediaServerItem mediaInfo = mediaServerService.getOne(sendRtpItem.getMediaServerId()); | 
 |  |  |                         redisCatchStorage.deleteSendRTPServer(sendRtpItem.getPlatformId(), sendRtpItem.getChannelId(), sendRtpItem.getCallId(), sendRtpItem.getStreamId()); | 
 |  |  |                         zlmrtpServerFactory.stopSendRtpStream(mediaInfo, param); | 
 |  |  |  | 
 |  |  |                         try { | 
 |  |  |                             commanderFroPlatform.streamByeCmd(parentPlatform, sendRtpItem); | 
 |  |  |                         } catch (SipException | InvalidArgumentException | ParseException e) { | 
 |  |  |                             logger.error("[命令发送失败] 国标级联 发送BYE: {}", e.getMessage()); | 
 |  |  |                         } | 
 |  |  |                         zlmServerFactory.stopSendRtpStream(mediaInfo, param); | 
 |  |  |                         if (InviteStreamType.PUSH == sendRtpItem.getPlayType()) { | 
 |  |  |                             MessageForPushChannel messageForPushChannel = MessageForPushChannel.getInstance(0, | 
 |  |  |                                     sendRtpItem.getApp(), sendRtpItem.getStreamId(), sendRtpItem.getChannelId(), |