|  |  |  | 
|---|
|  |  |  | import com.genersoft.iot.vmp.gb28181.transmit.event.request.SIPRequestProcessorParent; | 
|---|
|  |  |  | import com.genersoft.iot.vmp.gb28181.utils.SipUtils; | 
|---|
|  |  |  | import com.genersoft.iot.vmp.media.zlm.ZLMMediaListManager; | 
|---|
|  |  |  | import com.genersoft.iot.vmp.media.zlm.ZLMRTPServerFactory; | 
|---|
|  |  |  | import com.genersoft.iot.vmp.media.zlm.ZLMServerFactory; | 
|---|
|  |  |  | import com.genersoft.iot.vmp.media.zlm.ZlmHttpHookSubscribe; | 
|---|
|  |  |  | import com.genersoft.iot.vmp.media.zlm.dto.*; | 
|---|
|  |  |  | import com.genersoft.iot.vmp.media.zlm.dto.hook.OnStreamChangedHookParam; | 
|---|
|  |  |  | 
|---|
|  |  |  | private SIPSender sipSender; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Autowired | 
|---|
|  |  |  | private ZLMRTPServerFactory zlmrtpServerFactory; | 
|---|
|  |  |  | private ZLMServerFactory ZLMServerFactory; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Autowired | 
|---|
|  |  |  | private IMediaServerService mediaServerService; | 
|---|
|  |  |  | 
|---|
|  |  |  | streamTypeStr = "UDP"; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | logger.info("[上级Invite] {}, 平台:{}, 通道:{}, 收流地址:{}:{},收流方式:{}, ssrc:{}", sessionName, username, channelId, addressStr, port, streamTypeStr, ssrc); | 
|---|
|  |  |  | SendRtpItem sendRtpItem = zlmrtpServerFactory.createSendRtpItem(mediaServerItem, addressStr, port, ssrc, requesterId, | 
|---|
|  |  |  | SendRtpItem sendRtpItem = ZLMServerFactory.createSendRtpItem(mediaServerItem, addressStr, port, ssrc, requesterId, | 
|---|
|  |  |  | device.getDeviceId(), channelId, mediaTransmissionTCP, platform.isRtcp()); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | if (tcpActive != null) { | 
|---|
|  |  |  | 
|---|
|  |  |  | CallIdHeader callIdHeader, MediaServerItem mediaServerItem, | 
|---|
|  |  |  | int port, Boolean tcpActive, boolean mediaTransmissionTCP, | 
|---|
|  |  |  | String channelId, String addressStr, String ssrc, String requesterId) { | 
|---|
|  |  |  | Boolean streamReady = zlmrtpServerFactory.isStreamReady(mediaServerItem, gbStream.getApp(), gbStream.getStream()); | 
|---|
|  |  |  | Boolean streamReady = ZLMServerFactory.isStreamReady(mediaServerItem, gbStream.getApp(), gbStream.getStream()); | 
|---|
|  |  |  | if (streamReady != null && streamReady) { | 
|---|
|  |  |  | // 自平台内容 | 
|---|
|  |  |  | SendRtpItem sendRtpItem = zlmrtpServerFactory.createSendRtpItem(mediaServerItem, addressStr, port, ssrc, requesterId, | 
|---|
|  |  |  | SendRtpItem sendRtpItem = ZLMServerFactory.createSendRtpItem(mediaServerItem, addressStr, port, ssrc, requesterId, | 
|---|
|  |  |  | gbStream.getApp(), gbStream.getStream(), channelId, mediaTransmissionTCP, platform.isRtcp()); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | if (sendRtpItem == null) { | 
|---|
|  |  |  | 
|---|
|  |  |  | String channelId, String addressStr, String ssrc, String requesterId) { | 
|---|
|  |  |  | // 推流 | 
|---|
|  |  |  | if (streamPushItem.isSelf()) { | 
|---|
|  |  |  | Boolean streamReady = zlmrtpServerFactory.isStreamReady(mediaServerItem, gbStream.getApp(), gbStream.getStream()); | 
|---|
|  |  |  | Boolean streamReady = ZLMServerFactory.isStreamReady(mediaServerItem, gbStream.getApp(), gbStream.getStream()); | 
|---|
|  |  |  | if (streamReady != null && streamReady) { | 
|---|
|  |  |  | // 自平台内容 | 
|---|
|  |  |  | SendRtpItem sendRtpItem = zlmrtpServerFactory.createSendRtpItem(mediaServerItem, addressStr, port, ssrc, requesterId, | 
|---|
|  |  |  | SendRtpItem sendRtpItem = ZLMServerFactory.createSendRtpItem(mediaServerItem, addressStr, port, ssrc, requesterId, | 
|---|
|  |  |  | gbStream.getApp(), gbStream.getStream(), channelId, mediaTransmissionTCP, platform.isRtcp()); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | if (sendRtpItem == null) { | 
|---|
|  |  |  | 
|---|
|  |  |  | mediaListManager.addChannelOnlineEventLister(gbStream.getApp(), gbStream.getStream(), (app, stream, serverId) -> { | 
|---|
|  |  |  | dynamicTask.stop(callIdHeader.getCallId()); | 
|---|
|  |  |  | if (serverId.equals(userSetting.getServerId())) { | 
|---|
|  |  |  | SendRtpItem sendRtpItem = zlmrtpServerFactory.createSendRtpItem(mediaServerItem, addressStr, finalPort, ssrc, requesterId, | 
|---|
|  |  |  | SendRtpItem sendRtpItem = ZLMServerFactory.createSendRtpItem(mediaServerItem, addressStr, finalPort, ssrc, requesterId, | 
|---|
|  |  |  | app, stream, channelId, mediaTransmissionTCP, platform.isRtcp()); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | if (sendRtpItem == null) { | 
|---|