From 27285f321c3255b919829a95b0a09f18758f696a Mon Sep 17 00:00:00 2001 From: lin <648540858@qq.com> Date: Fri, 5 Jun 2026 09:49:11 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E5=9B=BD=E6=A0=87=E7=BA=A7?= =?UTF-8?q?=E8=81=94=E4=B8=8A=E7=BA=A7tcp=E4=B8=BB=E5=8A=A8=E7=82=B9?= =?UTF-8?q?=E6=92=AD=E6=A6=82=E7=8E=87=E4=B8=8B=E5=A4=B1=E8=B4=A5=E7=9A=84?= =?UTF-8?q?BUG?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../request/impl/InviteRequestProcessor.java | 31 ++++++++++--------- 1 file changed, 17 insertions(+), 14 deletions(-) diff --git a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/InviteRequestProcessor.java b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/InviteRequestProcessor.java index b95bef8d9..a0529b820 100755 --- a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/InviteRequestProcessor.java +++ b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/InviteRequestProcessor.java @@ -196,6 +196,22 @@ public class InviteRequestProcessor extends SIPRequestProcessorParent implements sdpIp = platform.getSendStreamIp(); } String content = createSendSdp(sendRtpItem, finalInviteInfo, sdpIp); + + // tcp主动模式,回复sdp后开启监听 + if (sendRtpItem.isTcpActive()) { + MediaServer mediaServer = mediaServerService.getOne(sendRtpItem.getMediaServerId()); + try { + mediaServerService.startSendRtpPassive(mediaServer, sendRtpItem, 10000); + DeviceChannel deviceChannel = deviceChannelService.getOneForSourceById(sendRtpItem.getChannelId()); + if (deviceChannel != null) { + redisCatchStorage.sendPlatformStartPlayMsg(sendRtpItem, deviceChannel, platform); + } + } catch (ControllerException e) { + log.warn("[上级INVITE] tcp主动模式 发流失败", e); + sendBye(platform, finalInviteInfo.getCallId()); + } + } + // 超时未收到Ack应该回复bye,当前等待时间为10秒 dynamicTask.startDelay(finalInviteInfo.getCallId(), () -> { log.info("[Ack ] 等待超时, {}/{}", finalInviteInfo.getCallId(), channel.getGbDeviceId()); @@ -208,20 +224,7 @@ public class InviteRequestProcessor extends SIPRequestProcessorParent implements log.error("[命令发送失败] 上级INVITE 发送 200(SDP): {}", e.getMessage()); } - // tcp主动模式,回复sdp后开启监听 - if (sendRtpItem.isTcpActive()) { - MediaServer mediaServer = mediaServerService.getOne(sendRtpItem.getMediaServerId()); - try { - mediaServerService.startSendRtpPassive(mediaServer, sendRtpItem, 5); - DeviceChannel deviceChannel = deviceChannelService.getOneForSourceById(sendRtpItem.getChannelId()); - if (deviceChannel != null) { - redisCatchStorage.sendPlatformStartPlayMsg(sendRtpItem, deviceChannel, platform); - } - } catch (ControllerException e) { - log.warn("[上级INVITE] tcp主动模式 发流失败", e); - sendBye(platform, finalInviteInfo.getCallId()); - } - } + } })); }