Commit e1c8183adf076901275b2e4e9ec93b97aaacc957

Authored by 648540858
1 parent da4ac962

调整语音对讲超时任务位置

src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/message/response/cmd/BroadcastResponseMessageHandler.java
1 package com.genersoft.iot.vmp.gb28181.transmit.event.request.impl.message.response.cmd; 1 package com.genersoft.iot.vmp.gb28181.transmit.event.request.impl.message.response.cmd;
2 2
3 -import com.genersoft.iot.vmp.common.VideoManagerConstants;  
4 import com.genersoft.iot.vmp.conf.DynamicTask; 3 import com.genersoft.iot.vmp.conf.DynamicTask;
5 import com.genersoft.iot.vmp.gb28181.bean.AudioBroadcastCatch; 4 import com.genersoft.iot.vmp.gb28181.bean.AudioBroadcastCatch;
6 import com.genersoft.iot.vmp.gb28181.bean.AudioBroadcastCatchStatus; 5 import com.genersoft.iot.vmp.gb28181.bean.AudioBroadcastCatchStatus;
7 import com.genersoft.iot.vmp.gb28181.bean.Device; 6 import com.genersoft.iot.vmp.gb28181.bean.Device;
8 import com.genersoft.iot.vmp.gb28181.bean.ParentPlatform; 7 import com.genersoft.iot.vmp.gb28181.bean.ParentPlatform;
9 import com.genersoft.iot.vmp.gb28181.session.AudioBroadcastManager; 8 import com.genersoft.iot.vmp.gb28181.session.AudioBroadcastManager;
10 -import com.genersoft.iot.vmp.gb28181.transmit.callback.DeferredResultHolder;  
11 import com.genersoft.iot.vmp.gb28181.transmit.event.request.SIPRequestProcessorParent; 9 import com.genersoft.iot.vmp.gb28181.transmit.event.request.SIPRequestProcessorParent;
12 import com.genersoft.iot.vmp.gb28181.transmit.event.request.impl.message.IMessageHandler; 10 import com.genersoft.iot.vmp.gb28181.transmit.event.request.impl.message.IMessageHandler;
13 import com.genersoft.iot.vmp.gb28181.transmit.event.request.impl.message.response.ResponseMessageHandler; 11 import com.genersoft.iot.vmp.gb28181.transmit.event.request.impl.message.response.ResponseMessageHandler;
14 -import com.genersoft.iot.vmp.gb28181.utils.SipUtils;  
15 import com.genersoft.iot.vmp.service.IPlayService; 12 import com.genersoft.iot.vmp.service.IPlayService;
16 import gov.nist.javax.sip.message.SIPRequest; 13 import gov.nist.javax.sip.message.SIPRequest;
17 import org.dom4j.Element; 14 import org.dom4j.Element;
@@ -77,15 +74,6 @@ public class BroadcastResponseMessageHandler extends SIPRequestProcessorParent i @@ -77,15 +74,6 @@ public class BroadcastResponseMessageHandler extends SIPRequestProcessorParent i
77 AudioBroadcastCatch audioBroadcastCatch = audioBroadcastManager.get(device.getDeviceId(), channelId); 74 AudioBroadcastCatch audioBroadcastCatch = audioBroadcastManager.get(device.getDeviceId(), channelId);
78 audioBroadcastCatch.setStatus(AudioBroadcastCatchStatus.WaiteInvite); 75 audioBroadcastCatch.setStatus(AudioBroadcastCatchStatus.WaiteInvite);
79 audioBroadcastManager.update(audioBroadcastCatch); 76 audioBroadcastManager.update(audioBroadcastCatch);
80 - // 等待invite消息, 超时则结束  
81 - String key = VideoManagerConstants.BROADCAST_WAITE_INVITE + device.getDeviceId();  
82 - if (!SipUtils.isFrontEnd(device.getDeviceId())) {  
83 - key += audioBroadcastCatch.getChannelId();  
84 - }  
85 - dynamicTask.startDelay(key, ()->{  
86 - logger.info("[语音广播]等待invite消息超时:{}/{}", device.getDeviceId(), channelId);  
87 - playService.stopAudioBroadcast(device.getDeviceId(), channelId);  
88 - }, 2000);  
89 }else { 77 }else {
90 playService.stopAudioBroadcast(device.getDeviceId(), channelId); 78 playService.stopAudioBroadcast(device.getDeviceId(), channelId);
91 } 79 }
src/main/java/com/genersoft/iot/vmp/service/impl/PlayServiceImpl.java
@@ -3,10 +3,7 @@ package com.genersoft.iot.vmp.service.impl; @@ -3,10 +3,7 @@ package com.genersoft.iot.vmp.service.impl;
3 import com.alibaba.fastjson2.JSONArray; 3 import com.alibaba.fastjson2.JSONArray;
4 import com.alibaba.fastjson2.JSONObject; 4 import com.alibaba.fastjson2.JSONObject;
5 import com.baomidou.dynamic.datasource.annotation.DS; 5 import com.baomidou.dynamic.datasource.annotation.DS;
6 -import com.genersoft.iot.vmp.common.InviteInfo;  
7 -import com.genersoft.iot.vmp.common.InviteSessionStatus;  
8 -import com.genersoft.iot.vmp.common.InviteSessionType;  
9 -import com.genersoft.iot.vmp.common.StreamInfo; 6 +import com.genersoft.iot.vmp.common.*;
10 import com.genersoft.iot.vmp.conf.DynamicTask; 7 import com.genersoft.iot.vmp.conf.DynamicTask;
11 import com.genersoft.iot.vmp.conf.SipConfig; 8 import com.genersoft.iot.vmp.conf.SipConfig;
12 import com.genersoft.iot.vmp.conf.UserSetting; 9 import com.genersoft.iot.vmp.conf.UserSetting;
@@ -18,19 +15,13 @@ import com.genersoft.iot.vmp.gb28181.event.SipSubscribe; @@ -18,19 +15,13 @@ import com.genersoft.iot.vmp.gb28181.event.SipSubscribe;
18 import com.genersoft.iot.vmp.gb28181.session.AudioBroadcastManager; 15 import com.genersoft.iot.vmp.gb28181.session.AudioBroadcastManager;
19 import com.genersoft.iot.vmp.gb28181.session.SSRCFactory; 16 import com.genersoft.iot.vmp.gb28181.session.SSRCFactory;
20 import com.genersoft.iot.vmp.gb28181.session.VideoStreamSessionManager; 17 import com.genersoft.iot.vmp.gb28181.session.VideoStreamSessionManager;
21 -import com.genersoft.iot.vmp.gb28181.transmit.cmd.ISIPCommanderForPlatform;  
22 -import com.genersoft.iot.vmp.gb28181.transmit.cmd.impl.SIPCommander;  
23 import com.genersoft.iot.vmp.gb28181.transmit.cmd.ISIPCommander; 18 import com.genersoft.iot.vmp.gb28181.transmit.cmd.ISIPCommander;
24 -import com.genersoft.iot.vmp.gb28181.transmit.cmd.impl.SIPCommanderFroPlatform; 19 +import com.genersoft.iot.vmp.gb28181.transmit.cmd.ISIPCommanderForPlatform;
25 import com.genersoft.iot.vmp.gb28181.utils.SipUtils; 20 import com.genersoft.iot.vmp.gb28181.utils.SipUtils;
  21 +import com.genersoft.iot.vmp.media.zlm.SendRtpPortManager;
26 import com.genersoft.iot.vmp.media.zlm.ZLMRESTfulUtils; 22 import com.genersoft.iot.vmp.media.zlm.ZLMRESTfulUtils;
27 import com.genersoft.iot.vmp.media.zlm.ZLMServerFactory; 23 import com.genersoft.iot.vmp.media.zlm.ZLMServerFactory;
28 import com.genersoft.iot.vmp.media.zlm.ZlmHttpHookSubscribe; 24 import com.genersoft.iot.vmp.media.zlm.ZlmHttpHookSubscribe;
29 -import com.genersoft.iot.vmp.media.zlm.dto.*;  
30 -import com.genersoft.iot.vmp.media.zlm.*;  
31 -import com.genersoft.iot.vmp.media.zlm.dto.HookSubscribeFactory;  
32 -import com.genersoft.iot.vmp.media.zlm.dto.HookSubscribeForStreamChange;  
33 -import com.genersoft.iot.vmp.media.zlm.dto.MediaServerItem;  
34 import com.genersoft.iot.vmp.media.zlm.dto.HookSubscribeFactory; 25 import com.genersoft.iot.vmp.media.zlm.dto.HookSubscribeFactory;
35 import com.genersoft.iot.vmp.media.zlm.dto.HookSubscribeForRecordMp4; 26 import com.genersoft.iot.vmp.media.zlm.dto.HookSubscribeForRecordMp4;
36 import com.genersoft.iot.vmp.media.zlm.dto.HookSubscribeForStreamChange; 27 import com.genersoft.iot.vmp.media.zlm.dto.HookSubscribeForStreamChange;
@@ -40,15 +31,7 @@ import com.genersoft.iot.vmp.media.zlm.dto.hook.OnRecordMp4HookParam; @@ -40,15 +31,7 @@ import com.genersoft.iot.vmp.media.zlm.dto.hook.OnRecordMp4HookParam;
40 import com.genersoft.iot.vmp.media.zlm.dto.hook.OnStreamChangedHookParam; 31 import com.genersoft.iot.vmp.media.zlm.dto.hook.OnStreamChangedHookParam;
41 import com.genersoft.iot.vmp.service.*; 32 import com.genersoft.iot.vmp.service.*;
42 import com.genersoft.iot.vmp.service.bean.*; 33 import com.genersoft.iot.vmp.service.bean.*;
43 -import com.genersoft.iot.vmp.service.bean.ErrorCallback;  
44 -import com.genersoft.iot.vmp.service.bean.InviteErrorCode;  
45 -import com.genersoft.iot.vmp.service.bean.RequestPushStreamMsg;  
46 -import com.genersoft.iot.vmp.service.bean.SSRCInfo;  
47 import com.genersoft.iot.vmp.service.redisMsg.RedisGbPlayMsgListener; 34 import com.genersoft.iot.vmp.service.redisMsg.RedisGbPlayMsgListener;
48 -import com.genersoft.iot.vmp.service.bean.DownloadFileInfo;  
49 -import com.genersoft.iot.vmp.service.bean.ErrorCallback;  
50 -import com.genersoft.iot.vmp.service.bean.InviteErrorCode;  
51 -import com.genersoft.iot.vmp.service.bean.SSRCInfo;  
52 import com.genersoft.iot.vmp.storager.IRedisCatchStorage; 35 import com.genersoft.iot.vmp.storager.IRedisCatchStorage;
53 import com.genersoft.iot.vmp.storager.IVideoManagerStorage; 36 import com.genersoft.iot.vmp.storager.IVideoManagerStorage;
54 import com.genersoft.iot.vmp.storager.dao.CloudRecordServiceMapper; 37 import com.genersoft.iot.vmp.storager.dao.CloudRecordServiceMapper;
@@ -1179,6 +1162,15 @@ public class PlayServiceImpl implements IPlayService { @@ -1179,6 +1162,15 @@ public class PlayServiceImpl implements IPlayService {
1179 // 发送成功 1162 // 发送成功
1180 AudioBroadcastCatch audioBroadcastCatch = new AudioBroadcastCatch(device.getDeviceId(), channelId, mediaServerItem, app, stream, event, AudioBroadcastCatchStatus.Ready, isFromPlatform); 1163 AudioBroadcastCatch audioBroadcastCatch = new AudioBroadcastCatch(device.getDeviceId(), channelId, mediaServerItem, app, stream, event, AudioBroadcastCatchStatus.Ready, isFromPlatform);
1181 audioBroadcastManager.update(audioBroadcastCatch); 1164 audioBroadcastManager.update(audioBroadcastCatch);
  1165 + // 等待invite消息, 超时则结束
  1166 + String key = VideoManagerConstants.BROADCAST_WAITE_INVITE + device.getDeviceId();
  1167 + if (!SipUtils.isFrontEnd(device.getDeviceId())) {
  1168 + key += audioBroadcastCatch.getChannelId();
  1169 + }
  1170 + dynamicTask.startDelay(key, ()->{
  1171 + logger.info("[语音广播]等待invite消息超时:{}/{}", device.getDeviceId(), channelId);
  1172 + stopAudioBroadcast(device.getDeviceId(), channelId);
  1173 + }, 2000);
1182 }, eventResultForError -> { 1174 }, eventResultForError -> {
1183 // 发送失败 1175 // 发送失败
1184 logger.error("语音广播发送失败: {}:{}", channelId, eventResultForError.msg); 1176 logger.error("语音广播发送失败: {}:{}", channelId, eventResultForError.msg);