| | |
| | | if ( parentPlatform ==null) { |
| | | return ; |
| | | } |
| | | logger.info("[国标级联] 发送录像数据通道: {}", recordInfo.getChannelId()); |
| | | String characterSet = parentPlatform.getCharacterSet(); |
| | | StringBuffer recordXml = new StringBuffer(600); |
| | | recordXml.append("<?xml version=\"1.0\" encoding=\"" + characterSet + "\"?>\r\n") |
| | |
| | | |
| | | recordXml.append("</RecordList>\r\n") |
| | | .append("</Response>\r\n"); |
| | | |
| | | logger.info("[国标级联] 发送录像数据通道:{}, 内容: {}", recordInfo.getChannelId(), recordXml); |
| | | // callid |
| | | CallIdHeader callIdHeader = sipSender.getNewCallIdHeader(parentPlatform.getDeviceIp(),parentPlatform.getTransport()); |
| | | |
| | | Request request = headerProviderPlatformProvider.createMessageRequest(parentPlatform, recordXml.toString(), fromTag, SipUtils.getNewViaTag(), callIdHeader); |
| | | sipSender.transmitRequest(parentPlatform.getDeviceIp(), request); |
| | | sipSender.transmitRequest(parentPlatform.getDeviceIp(), request, null, eventResult -> { |
| | | logger.info("[国标级联] 发送录像数据通道:{}, 发送成功", recordInfo.getChannelId()); |
| | | }); |
| | | |
| | | } |
| | | |
| | |
| | | // 非严格模式端口不统一, 增加兼容性,修改为一个不为0的端口 |
| | | localPort = new Random().nextInt(65535) + 1; |
| | | } |
| | | content.append("m=video " + localPort + " RTP/AVP 96\r\n"); |
| | | if (sendRtpItem.isTcp()) { |
| | | content.append("m=video " + localPort + " TCP/RTP/AVP 96\r\n"); |
| | | if (!sendRtpItem.isTcpActive()) { |
| | | content.append("a=setup:active\r\n"); |
| | | } else { |
| | | content.append("a=setup:passive\r\n"); |
| | | } |
| | | }else { |
| | | content.append("m=video " + localPort + " RTP/AVP 96\r\n"); |
| | | } |
| | | content.append("a=sendonly\r\n"); |
| | | content.append("a=rtpmap:96 PS/90000\r\n"); |
| | | content.append("y=" + sendRtpItem.getSsrc() + "\r\n"); |
| | |
| | | // 接收录像数据 |
| | | recordEndEventListener.addEndEventHandler(deviceChannel.getDeviceId(), channelId, (recordInfo)->{ |
| | | try { |
| | | logger.info("[国标级联] 录像查询收到数据, 通道: {},准备转发===", channelId); |
| | | cmderFroPlatform.recordInfo(deviceChannel, parentPlatform, request.getFromTag(), recordInfo); |
| | | } catch (SipException | InvalidArgumentException | ParseException e) { |
| | | logger.error("[命令发送失败] 国标级联 回复录像数据: {}", e.getMessage()); |