|  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | import com.genersoft.iot.vmp.conf.MediaServerConfig; | 
|---|
|  |  |  | import com.genersoft.iot.vmp.gb28181.bean.*; | 
|---|
|  |  |  | import com.genersoft.iot.vmp.gb28181.event.SipSubscribe; | 
|---|
|  |  |  | import com.genersoft.iot.vmp.gb28181.transmit.cmd.impl.SIPCommander; | 
|---|
|  |  |  | import com.genersoft.iot.vmp.gb28181.transmit.cmd.impl.SIPCommanderFroPlatform; | 
|---|
|  |  |  | import com.genersoft.iot.vmp.gb28181.transmit.request.SIPRequestAbstractProcessor; | 
|---|
|  |  |  | import com.genersoft.iot.vmp.media.zlm.ZLMHttpHookSubscribe; | 
|---|
|  |  |  | import com.genersoft.iot.vmp.media.zlm.ZLMRTPServerFactory; | 
|---|
|  |  |  | import com.genersoft.iot.vmp.storager.IRedisCatchStorage; | 
|---|
|  |  |  | import com.genersoft.iot.vmp.storager.IVideoManagerStorager; | 
|---|
|  |  |  | import com.genersoft.iot.vmp.vmanager.play.bean.PlayResult; | 
|---|
|  |  |  | import com.genersoft.iot.vmp.vmanager.service.IPlayService; | 
|---|
|  |  |  | import com.genersoft.iot.vmp.vmanager.gb28181.play.bean.PlayResult; | 
|---|
|  |  |  | import com.genersoft.iot.vmp.service.IPlayService; | 
|---|
|  |  |  | import gov.nist.javax.sip.address.AddressImpl; | 
|---|
|  |  |  | import gov.nist.javax.sip.address.SipUri; | 
|---|
|  |  |  | import org.slf4j.Logger; | 
|---|
|  |  |  | import org.slf4j.LoggerFactory; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | import java.text.ParseException; | 
|---|
|  |  |  | import java.util.HashMap; | 
|---|
|  |  |  | import java.util.Map; | 
|---|
|  |  |  | import java.util.Vector; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | // 查询请求方是否上级平台 | 
|---|
|  |  |  | ParentPlatform platform = storager.queryParentPlatById(requesterId); | 
|---|
|  |  |  | ParentPlatform platform = storager.queryParentPlatByServerGBId(requesterId); | 
|---|
|  |  |  | if (platform != null) { | 
|---|
|  |  |  | // 查询平台下是否有该通道 | 
|---|
|  |  |  | DeviceChannel channel = storager.queryChannelInParentPlatform(requesterId, channelId); | 
|---|
|  |  |  | 
|---|
|  |  |  | // 通知下级推流, | 
|---|
|  |  |  | PlayResult playResult = playService.play(device.getDeviceId(), channelId, (responseJSON)->{ | 
|---|
|  |  |  | // 收到推流, 回复200OK, 等待ack | 
|---|
|  |  |  | if (sendRtpItem == null) return; | 
|---|
|  |  |  | // if (sendRtpItem == null) return; | 
|---|
|  |  |  | sendRtpItem.setStatus(1); | 
|---|
|  |  |  | redisCatchStorage.updateSendRTPSever(sendRtpItem); | 
|---|
|  |  |  | // TODO 添加对tcp的支持 | 
|---|