| | |
| | | import javax.sip.message.Response; |
| | | import java.text.ParseException; |
| | | import java.time.Instant; |
| | | import java.util.HashMap; |
| | | import java.util.Map; |
| | | import java.util.Random; |
| | | import java.util.Vector; |
| | | import java.util.*; |
| | | |
| | | /** |
| | | * SIP命令类型: INVITE请求 |
| | |
| | | sendRtpItem.setOnlyAudio(false); |
| | | sendRtpItem.setStatus(0); |
| | | sendRtpItem.setSessionName(sessionName); |
| | | |
| | | // 清理可能存在的缓存避免用到旧的数据 |
| | | List<SendRtpItem> sendRtpItemList = redisCatchStorage.querySendRTPServer(platform.getServerGBId(), channelId, gbStream.getStream()); |
| | | if (!sendRtpItemList.isEmpty()) { |
| | | for (SendRtpItem rtpItem : sendRtpItemList) { |
| | | redisCatchStorage.deleteSendRTPServer(rtpItem); |
| | | } |
| | | } |
| | | if ("push".equals(gbStream.getStreamType())) { |
| | | sendRtpItem.setPlayType(InviteStreamType.PUSH); |
| | | if (streamPushItem != null) { |
| | |
| | | |
| | | void updateSendRTPSever(SendRtpItem sendRtpItem); |
| | | |
| | | List<SendRtpItem> querySendRTPServer(String platformGbId, String channelId, String streamId); |
| | | |
| | | /** |
| | | * 查询RTP推送信息缓存 |
| | | * @param platformGbId |
| | |
| | | |
| | | void addDiskInfo(List<Map<String, Object>> diskInfo); |
| | | |
| | | void deleteSendRTPServer(SendRtpItem sendRtpItem); |
| | | |
| | | List<SendRtpItem> queryAllSendRTPServer(); |
| | | |
| | | List<Device> getAllDevices(); |
| | |
| | | } |
| | | |
| | | @Override |
| | | public List<SendRtpItem> querySendRTPServer(String platformGbId, String channelId, String streamId) { |
| | | String scanKey = VideoManagerConstants.PLATFORM_SEND_RTP_INFO_PREFIX |
| | | + userSetting.getServerId() + "_*_" |
| | | + platformGbId + "_" |
| | | + channelId + "_" |
| | | + streamId + "_" |
| | | + "*"; |
| | | List<SendRtpItem> result = new ArrayList<>(); |
| | | List<Object> scan = RedisUtil.scan(redisTemplate, scanKey); |
| | | if (!scan.isEmpty()) { |
| | | for (Object o : scan) { |
| | | String key = (String) o; |
| | | result.add(JsonUtil.redisJsonToObject(redisTemplate, key, SendRtpItem.class)); |
| | | } |
| | | } |
| | | return result; |
| | | } |
| | | |
| | | @Override |
| | | public SendRtpItem querySendRTPServer(String platformGbId, String channelId, String streamId, String callId) { |
| | | if (platformGbId == null) { |
| | | platformGbId = "*"; |
| | |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * 删除RTP推送信息缓存 |
| | | */ |
| | | @Override |
| | | public void deleteSendRTPServer(SendRtpItem sendRtpItem) { |
| | | deleteSendRTPServer(sendRtpItem.getPlatformId(), sendRtpItem.getChannelId(),sendRtpItem.getCallId(), sendRtpItem.getServerId()); |
| | | } |
| | | |
| | | @Override |
| | | public List<SendRtpItem> queryAllSendRTPServer() { |
| | | String key = VideoManagerConstants.PLATFORM_SEND_RTP_INFO_PREFIX |