|  |  |  | 
|---|
|  |  |  | Dialog dialog = evt.getDialog(); | 
|---|
|  |  |  | if (dialog == null) return; | 
|---|
|  |  |  | //DialogState state = dialog.getState(); | 
|---|
|  |  |  | if (/*request.getMethod().equals(Request.INVITE) &&*/ dialog.getState()== DialogState.CONFIRMED) { | 
|---|
|  |  |  | if (/*request.getMecodewwthod().equals(Request.INVITE) &&*/ dialog.getState()== DialogState.CONFIRMED) { | 
|---|
|  |  |  | String platformGbId = ((SipURI) ((HeaderAddress) evt.getRequest().getHeader(FromHeader.NAME)).getAddress().getURI()).getUser(); | 
|---|
|  |  |  | String channelId = ((SipURI) ((HeaderAddress) evt.getRequest().getHeader(ToHeader.NAME)).getAddress().getURI()).getUser(); | 
|---|
|  |  |  | SendRtpItem sendRtpItem =  redisCatchStorage.querySendRTPServer(platformGbId, channelId); | 
|---|
|  |  |  | String is_Udp = sendRtpItem.isTcp() ? "0" : "1"; | 
|---|
|  |  |  | String deviceId = sendRtpItem.getDeviceId(); | 
|---|
|  |  |  | StreamInfo streamInfo = redisCatchStorage.queryPlayByDevice(deviceId, channelId); | 
|---|
|  |  |  | sendRtpItem.setStreamId(streamInfo.getStreamId()); | 
|---|
|  |  |  | StreamInfo streamInfo = null; | 
|---|
|  |  |  | if (deviceId == null) { | 
|---|
|  |  |  | streamInfo = new StreamInfo(); | 
|---|
|  |  |  | streamInfo.setApp(sendRtpItem.getApp()); | 
|---|
|  |  |  | streamInfo.setStreamId(sendRtpItem.getStreamId()); | 
|---|
|  |  |  | }else { | 
|---|
|  |  |  | streamInfo = redisCatchStorage.queryPlayByDevice(deviceId, channelId); | 
|---|
|  |  |  | sendRtpItem.setStreamId(streamInfo.getStreamId()); | 
|---|
|  |  |  | streamInfo.setApp("rtp"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | redisCatchStorage.updateSendRTPSever(sendRtpItem); | 
|---|
|  |  |  | System.out.println(platformGbId); | 
|---|
|  |  |  | System.out.println(channelId); | 
|---|
|  |  |  | Map<String, Object> param = new HashMap<>(); | 
|---|
|  |  |  | param.put("vhost","__defaultVhost__"); | 
|---|
|  |  |  | param.put("app","rtp"); | 
|---|
|  |  |  | param.put("app",streamInfo.getApp()); | 
|---|
|  |  |  | param.put("stream",streamInfo.getStreamId()); | 
|---|
|  |  |  | param.put("ssrc", sendRtpItem.getSsrc()); | 
|---|
|  |  |  | param.put("dst_url",sendRtpItem.getIp()); | 
|---|
|  |  |  | 
|---|
|  |  |  | while (!rtpPushed) { | 
|---|
|  |  |  | try { | 
|---|
|  |  |  | if (System.currentTimeMillis() - startTime < 30 * 1000) { | 
|---|
|  |  |  | if (zlmrtpServerFactory.isRtpReady(streamInfo.getStreamId())) { | 
|---|
|  |  |  | if (zlmrtpServerFactory.isStreamReady(streamInfo.getApp(), streamInfo.getStreamId())) { | 
|---|
|  |  |  | rtpPushed = true; | 
|---|
|  |  |  | System.out.println("已获取设备推流,开始向上级推流"); | 
|---|
|  |  |  | zlmrtpServerFactory.startSendRtpStream(param); | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  | System.out.println("等待设备推流......."); | 
|---|
|  |  |  | Thread.sleep(2000); | 
|---|
|  |  |  | Thread.sleep(1000); | 
|---|
|  |  |  | continue; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } else { | 
|---|