临时提交
This commit is contained in:
@@ -141,22 +141,22 @@ public interface ISIPCommander {
|
||||
/**
|
||||
* 回放暂停
|
||||
*/
|
||||
void playPauseCmd(Device device, StreamInfo streamInfo) throws InvalidArgumentException, ParseException, SipException;
|
||||
void playPauseCmd(Device device, DeviceChannel channel, StreamInfo streamInfo) throws InvalidArgumentException, ParseException, SipException;
|
||||
|
||||
/**
|
||||
* 回放恢复
|
||||
*/
|
||||
void playResumeCmd(Device device, StreamInfo streamInfo) throws InvalidArgumentException, ParseException, SipException;
|
||||
void playResumeCmd(Device device, DeviceChannel channel, StreamInfo streamInfo) throws InvalidArgumentException, ParseException, SipException;
|
||||
|
||||
/**
|
||||
* 回放拖动播放
|
||||
*/
|
||||
void playSeekCmd(Device device, StreamInfo streamInfo, long seekTime) throws InvalidArgumentException, ParseException, SipException;
|
||||
void playSeekCmd(Device device, DeviceChannel channel, StreamInfo streamInfo, long seekTime) throws InvalidArgumentException, ParseException, SipException;
|
||||
|
||||
/**
|
||||
* 回放倍速播放
|
||||
*/
|
||||
void playSpeedCmd(Device device, StreamInfo streamInfo, Double speed) throws InvalidArgumentException, ParseException, SipException;
|
||||
void playSpeedCmd(Device device, DeviceChannel channel, StreamInfo streamInfo, Double speed) throws InvalidArgumentException, ParseException, SipException;
|
||||
|
||||
/**
|
||||
* 回放控制
|
||||
@@ -164,7 +164,7 @@ public interface ISIPCommander {
|
||||
* @param streamInfo
|
||||
* @param content
|
||||
*/
|
||||
void playbackControlCmd(Device device, StreamInfo streamInfo, String content,SipSubscribe.Event errorEvent, SipSubscribe.Event okEvent) throws SipException, InvalidArgumentException, ParseException;
|
||||
void playbackControlCmd(Device device, DeviceChannel channel, StreamInfo streamInfo, String content,SipSubscribe.Event errorEvent, SipSubscribe.Event okEvent) throws SipException, InvalidArgumentException, ParseException;
|
||||
|
||||
|
||||
void streamByeCmdForDeviceInvite(Device device, String channelId, SipTransactionInfo sipTransactionInfo, SipSubscribe.Event okEvent) throws InvalidArgumentException, SipException, ParseException, SsrcTransactionNotFoundException;
|
||||
|
||||
@@ -142,14 +142,6 @@ public interface ISIPCommanderForPlatform {
|
||||
*/
|
||||
void sendMediaStatusNotify(Platform platform, SendRtpInfo sendRtpItem) throws SipException, InvalidArgumentException, ParseException;
|
||||
|
||||
/**
|
||||
* 向发起点播的上级回复bye
|
||||
*
|
||||
* @param platform 平台信息
|
||||
* @param callId callId
|
||||
*/
|
||||
void streamByeCmd(Platform platform, String callId) throws SipException, InvalidArgumentException, ParseException;
|
||||
|
||||
void streamByeCmd(Platform platform, SendRtpInfo sendRtpItem, CommonGBChannel channel) throws SipException, InvalidArgumentException, ParseException;
|
||||
|
||||
void streamByeCmd(Platform platform, CommonGBChannel channel, String stream, String callId, SipSubscribe.Event okEvent) throws InvalidArgumentException, SipException, ParseException, SsrcTransactionNotFoundException;
|
||||
|
||||
@@ -1349,13 +1349,13 @@ public class SIPCommander implements ISIPCommander {
|
||||
* 回放暂停
|
||||
*/
|
||||
@Override
|
||||
public void playPauseCmd(Device device, StreamInfo streamInfo) throws InvalidArgumentException, ParseException, SipException {
|
||||
public void playPauseCmd(Device device, DeviceChannel channel, StreamInfo streamInfo) throws InvalidArgumentException, ParseException, SipException {
|
||||
StringBuffer content = new StringBuffer(200);
|
||||
content.append("PAUSE RTSP/1.0\r\n");
|
||||
content.append("CSeq: " + getInfoCseq() + "\r\n");
|
||||
content.append("PauseTime: now\r\n");
|
||||
|
||||
playbackControlCmd(device, streamInfo, content.toString(), null, null);
|
||||
playbackControlCmd(device, channel, streamInfo, content.toString(), null, null);
|
||||
}
|
||||
|
||||
|
||||
@@ -1363,39 +1363,39 @@ public class SIPCommander implements ISIPCommander {
|
||||
* 回放恢复
|
||||
*/
|
||||
@Override
|
||||
public void playResumeCmd(Device device, StreamInfo streamInfo) throws InvalidArgumentException, ParseException, SipException {
|
||||
public void playResumeCmd(Device device, DeviceChannel channel, StreamInfo streamInfo) throws InvalidArgumentException, ParseException, SipException {
|
||||
StringBuffer content = new StringBuffer(200);
|
||||
content.append("PLAY RTSP/1.0\r\n");
|
||||
content.append("CSeq: " + getInfoCseq() + "\r\n");
|
||||
content.append("Range: npt=now-\r\n");
|
||||
|
||||
playbackControlCmd(device, streamInfo, content.toString(), null, null);
|
||||
playbackControlCmd(device, channel, streamInfo, content.toString(), null, null);
|
||||
}
|
||||
|
||||
/**
|
||||
* 回放拖动播放
|
||||
*/
|
||||
@Override
|
||||
public void playSeekCmd(Device device, StreamInfo streamInfo, long seekTime) throws InvalidArgumentException, ParseException, SipException {
|
||||
public void playSeekCmd(Device device, DeviceChannel channel, StreamInfo streamInfo, long seekTime) throws InvalidArgumentException, ParseException, SipException {
|
||||
StringBuffer content = new StringBuffer(200);
|
||||
content.append("PLAY RTSP/1.0\r\n");
|
||||
content.append("CSeq: " + getInfoCseq() + "\r\n");
|
||||
content.append("Range: npt=" + Math.abs(seekTime) + "-\r\n");
|
||||
|
||||
playbackControlCmd(device, streamInfo, content.toString(), null, null);
|
||||
playbackControlCmd(device, channel, streamInfo, content.toString(), null, null);
|
||||
}
|
||||
|
||||
/**
|
||||
* 回放倍速播放
|
||||
*/
|
||||
@Override
|
||||
public void playSpeedCmd(Device device, StreamInfo streamInfo, Double speed) throws InvalidArgumentException, ParseException, SipException {
|
||||
public void playSpeedCmd(Device device, DeviceChannel channel, StreamInfo streamInfo, Double speed) throws InvalidArgumentException, ParseException, SipException {
|
||||
StringBuffer content = new StringBuffer(200);
|
||||
content.append("PLAY RTSP/1.0\r\n");
|
||||
content.append("CSeq: " + getInfoCseq() + "\r\n");
|
||||
content.append("Scale: " + String.format("%.6f", speed) + "\r\n");
|
||||
|
||||
playbackControlCmd(device, streamInfo, content.toString(), null, null);
|
||||
playbackControlCmd(device, channel, streamInfo, content.toString(), null, null);
|
||||
}
|
||||
|
||||
private int getInfoCseq() {
|
||||
@@ -1403,7 +1403,7 @@ public class SIPCommander implements ISIPCommander {
|
||||
}
|
||||
|
||||
@Override
|
||||
public void playbackControlCmd(Device device, StreamInfo streamInfo, String content, SipSubscribe.Event errorEvent, SipSubscribe.Event okEvent) throws SipException, InvalidArgumentException, ParseException {
|
||||
public void playbackControlCmd(Device device, DeviceChannel channel, StreamInfo streamInfo, String content, SipSubscribe.Event errorEvent, SipSubscribe.Event okEvent) throws SipException, InvalidArgumentException, ParseException {
|
||||
|
||||
SsrcTransaction ssrcTransaction = sessionManager.getSsrcTransactionByStream(streamInfo.getStream());
|
||||
if (ssrcTransaction == null) {
|
||||
@@ -1411,7 +1411,7 @@ public class SIPCommander implements ISIPCommander {
|
||||
return;
|
||||
}
|
||||
|
||||
SIPRequest request = headerProvider.createInfoRequest(device, streamInfo.getChannelId(), content.toString(), ssrcTransaction.getSipTransactionInfo());
|
||||
SIPRequest request = headerProvider.createInfoRequest(device, channel.getDeviceId(), content, ssrcTransaction.getSipTransactionInfo());
|
||||
if (request == null) {
|
||||
log.info("[回放控制]构建Request信息失败,设备:{}, 流ID: {}", device.getDeviceId(), streamInfo.getStream());
|
||||
return;
|
||||
|
||||
@@ -620,17 +620,6 @@ public class SIPCommanderFroPlatform implements ISIPCommanderForPlatform {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void streamByeCmd(Platform platform, String callId) throws SipException, InvalidArgumentException, ParseException {
|
||||
if (platform == null) {
|
||||
return;
|
||||
}
|
||||
SendRtpInfo sendRtpItem = redisCatchStorage.querySendRTPServer(platform.getServerGBId(), null, null, callId);
|
||||
if (sendRtpItem != null) {
|
||||
streamByeCmd(platform, sendRtpItem, );
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public synchronized void streamByeCmd(Platform platform, SendRtpInfo sendRtpItem, CommonGBChannel channel) throws SipException, InvalidArgumentException, ParseException {
|
||||
if (sendRtpItem == null ) {
|
||||
|
||||
@@ -152,7 +152,7 @@ public class ByeRequestProcessor extends SIPRequestProcessorParent implements In
|
||||
}
|
||||
MediaServer mediaServer = mediaServerService.getOne(sendRtpItem.getMediaServerId());
|
||||
if (mediaServer != null) {
|
||||
AudioBroadcastCatch audioBroadcastCatch = audioBroadcastManager.getByDeviceId(sendRtpItem.getDeviceId(), sendRtpItem.getChannelId());
|
||||
AudioBroadcastCatch audioBroadcastCatch = audioBroadcastManager.get(sendRtpItem.getChannelId());
|
||||
if (audioBroadcastCatch != null && audioBroadcastCatch.getSipTransactionInfo().getCallId().equals(callIdHeader.getCallId())) {
|
||||
// 来自上级平台的停止对讲
|
||||
log.info("[停止对讲] 来自上级,平台:{}, 通道:{}", sendRtpItem.getDeviceId(), sendRtpItem.getChannelId());
|
||||
@@ -167,10 +167,16 @@ public class ByeRequestProcessor extends SIPRequestProcessorParent implements In
|
||||
Device device = deviceService.getDeviceByDeviceId(sendRtpItem.getDeviceId());
|
||||
if (device == null) {
|
||||
log.info("[收到bye] {} 通知设备停止推流时未找到设备信息", streamId);
|
||||
return;
|
||||
}
|
||||
DeviceChannel deviceChannel = deviceChannelService.getOneById(sendRtpItem.getChannelId());
|
||||
if (deviceChannel == null) {
|
||||
log.info("[收到bye] {} 通知设备停止推流时未找到通道信息", streamId);
|
||||
return;
|
||||
}
|
||||
try {
|
||||
log.info("[停止点播] {}/{}", sendRtpItem.getDeviceId(), sendRtpItem.getChannelId());
|
||||
cmder.streamByeCmd(device, sendRtpItem.getChannelId(), streamId, null);
|
||||
cmder.streamByeCmd(device, deviceChannel.getDeviceId(), streamId, null);
|
||||
} catch (InvalidArgumentException | ParseException | SipException |
|
||||
SsrcTransactionNotFoundException e) {
|
||||
log.error("[收到bye] {} 无其它观看者,通知设备停止推流, 发送BYE失败 {}",streamId, e.getMessage());
|
||||
@@ -190,7 +196,7 @@ public class ByeRequestProcessor extends SIPRequestProcessorParent implements In
|
||||
if (platform != null ) {
|
||||
if (ssrcTransaction.getType().equals(InviteSessionType.BROADCAST)) {
|
||||
log.info("[收到bye] 上级停止语音对讲,来自:{}, 通道已停止推流: {}", ssrcTransaction.getDeviceId(), ssrcTransaction.getChannelId());
|
||||
CommonGBChannel channel = channelService.queryOneWithPlatform(platform.getId(), ssrcTransaction.getChannelId());
|
||||
CommonGBChannel channel = channelService.getOne(ssrcTransaction.getChannelId());
|
||||
if (channel == null) {
|
||||
log.info("[收到bye] 未找到通道,设备:{}, 通道:{}", ssrcTransaction.getDeviceId(), ssrcTransaction.getChannelId());
|
||||
return;
|
||||
@@ -198,8 +204,9 @@ public class ByeRequestProcessor extends SIPRequestProcessorParent implements In
|
||||
String mediaServerId = ssrcTransaction.getMediaServerId();
|
||||
platformService.stopBroadcast(platform, channel, ssrcTransaction.getStream(), false,
|
||||
mediaServerService.getOne(mediaServerId));
|
||||
|
||||
playService.stopAudioBroadcast(ssrcTransaction.getDeviceId(), channel.getGbDeviceId());
|
||||
Device device = deviceService.getDeviceByDeviceId(ssrcTransaction.getDeviceId());
|
||||
DeviceChannel deviceChannel = deviceChannelService.getOneById(ssrcTransaction.getChannelId());
|
||||
playService.stopAudioBroadcast(device, deviceChannel);
|
||||
}
|
||||
|
||||
}else {
|
||||
@@ -208,7 +215,7 @@ public class ByeRequestProcessor extends SIPRequestProcessorParent implements In
|
||||
log.info("[收到bye] 未找到设备:{} ", ssrcTransaction.getDeviceId());
|
||||
return;
|
||||
}
|
||||
DeviceChannel channel = deviceChannelService.getOne(ssrcTransaction.getDeviceId(), ssrcTransaction.getChannelId());
|
||||
DeviceChannel channel = deviceChannelService.getOneById(ssrcTransaction.getChannelId());
|
||||
if (channel == null) {
|
||||
log.info("[收到bye] 未找到通道,设备:{}, 通道:{}", ssrcTransaction.getDeviceId(), ssrcTransaction.getChannelId());
|
||||
return;
|
||||
@@ -229,15 +236,15 @@ public class ByeRequestProcessor extends SIPRequestProcessorParent implements In
|
||||
case BROADCAST:
|
||||
case TALK:
|
||||
// 查找来源的对讲设备,发送停止
|
||||
Device sourceDevice = storager.queryVideoDeviceByPlatformIdAndChannelId(ssrcTransaction.getDeviceId(), ssrcTransaction.getChannelId());
|
||||
AudioBroadcastCatch audioBroadcastCatch = audioBroadcastManager.getByDeviceId(ssrcTransaction.getDeviceId(), channel.getDeviceId());
|
||||
Device sourceDevice = deviceService.getDeviceByChannelId(ssrcTransaction.getChannelId());
|
||||
AudioBroadcastCatch audioBroadcastCatch = audioBroadcastManager.get(channel.getId());
|
||||
if (sourceDevice != null) {
|
||||
playService.stopAudioBroadcast(sourceDevice.getDeviceId(), channel.getDeviceId());
|
||||
playService.stopAudioBroadcast(sourceDevice, channel);
|
||||
}
|
||||
if (audioBroadcastCatch != null) {
|
||||
// 来自上级平台的停止对讲
|
||||
log.info("[停止对讲] 来自上级,平台:{}, 通道:{}", ssrcTransaction.getDeviceId(), channel.getDeviceId());
|
||||
audioBroadcastManager.del(ssrcTransaction.getDeviceId(), channel.getDeviceId());
|
||||
audioBroadcastManager.del(channel.getId());
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -730,7 +730,15 @@ public class InviteRequestProcessor extends SIPRequestProcessorParent implements
|
||||
|
||||
private void sendBye(Platform platform, String callId) {
|
||||
try {
|
||||
cmderFroPlatform.streamByeCmd(platform, callId);
|
||||
SendRtpInfo sendRtpItem = redisCatchStorage.querySendRTPServer(platform.getServerGBId(), null, null, callId);
|
||||
if (sendRtpItem == null) {
|
||||
return;
|
||||
}
|
||||
CommonGBChannel channel = channelService.getOne(sendRtpItem.getChannelId());
|
||||
if (channel == null) {
|
||||
return;
|
||||
}
|
||||
cmderFroPlatform.streamByeCmd(platform, sendRtpItem, channel);
|
||||
} catch (SipException | InvalidArgumentException | ParseException e) {
|
||||
log.error("[命令发送失败] 上级Invite 发送BYE: {}", e.getMessage());
|
||||
}
|
||||
@@ -798,7 +806,7 @@ public class InviteRequestProcessor extends SIPRequestProcessorParent implements
|
||||
responseAck(request, Response.TRYING);
|
||||
} catch (SipException | InvalidArgumentException | ParseException e) {
|
||||
log.error("[命令发送失败] invite BAD_REQUEST: {}", e.getMessage());
|
||||
playService.stopAudioBroadcast(device.getDeviceId(), deviceChannel.getDeviceId());
|
||||
playService.stopAudioBroadcast(device, deviceChannel);
|
||||
return;
|
||||
}
|
||||
String contentString = new String(request.getRawContent());
|
||||
@@ -843,7 +851,7 @@ public class InviteRequestProcessor extends SIPRequestProcessorParent implements
|
||||
responseAck(request, Response.UNSUPPORTED_MEDIA_TYPE); // 不支持的格式,发415
|
||||
} catch (SipException | InvalidArgumentException | ParseException e) {
|
||||
log.error("[命令发送失败] invite 不支持的媒体格式: {}", e.getMessage());
|
||||
playService.stopAudioBroadcast(device.getDeviceId(), deviceChannel.getDeviceId());
|
||||
playService.stopAudioBroadcast(device, deviceChannel);
|
||||
return;
|
||||
}
|
||||
return;
|
||||
@@ -859,7 +867,7 @@ public class InviteRequestProcessor extends SIPRequestProcessorParent implements
|
||||
responseAck(request, Response.BUSY_HERE);
|
||||
} catch (SipException | InvalidArgumentException | ParseException e) {
|
||||
log.error("[命令发送失败] invite 未找到可用的zlm: {}", e.getMessage());
|
||||
playService.stopAudioBroadcast(device.getDeviceId(), deviceChannel.getDeviceId());
|
||||
playService.stopAudioBroadcast(device, deviceChannel);
|
||||
}
|
||||
return;
|
||||
}
|
||||
@@ -877,7 +885,7 @@ public class InviteRequestProcessor extends SIPRequestProcessorParent implements
|
||||
responseAck(request, Response.BUSY_HERE);
|
||||
} catch (SipException | InvalidArgumentException | ParseException e) {
|
||||
log.error("[命令发送失败] invite 服务器端口资源不足: {}", e.getMessage());
|
||||
playService.stopAudioBroadcast(device.getDeviceId(), deviceChannel.getDeviceId());
|
||||
playService.stopAudioBroadcast(device, deviceChannel);
|
||||
return;
|
||||
}
|
||||
return;
|
||||
@@ -912,11 +920,11 @@ public class InviteRequestProcessor extends SIPRequestProcessorParent implements
|
||||
log.error("[命令发送失败] 语音通话 回复410失败, {}", e.getMessage());
|
||||
return;
|
||||
}
|
||||
playService.stopAudioBroadcast(device.getDeviceId(), deviceChannel.getDeviceId());
|
||||
playService.stopAudioBroadcast(device, deviceChannel);
|
||||
}
|
||||
} catch (SdpException e) {
|
||||
log.error("[SDP解析异常]", e);
|
||||
playService.stopAudioBroadcast(device.getDeviceId(), deviceChannel.getDeviceId());
|
||||
playService.stopAudioBroadcast(device, deviceChannel);
|
||||
}
|
||||
} else {
|
||||
log.warn("来自无效设备/平台的请求");
|
||||
|
||||
@@ -4,6 +4,7 @@ import com.genersoft.iot.vmp.common.InviteInfo;
|
||||
import com.genersoft.iot.vmp.common.InviteSessionType;
|
||||
import com.genersoft.iot.vmp.gb28181.bean.*;
|
||||
import com.genersoft.iot.vmp.gb28181.event.SipSubscribe;
|
||||
import com.genersoft.iot.vmp.gb28181.service.IDeviceChannelService;
|
||||
import com.genersoft.iot.vmp.gb28181.service.IDeviceService;
|
||||
import com.genersoft.iot.vmp.gb28181.service.IInviteStreamService;
|
||||
import com.genersoft.iot.vmp.gb28181.service.IPlatformService;
|
||||
@@ -54,6 +55,9 @@ public class InfoRequestProcessor extends SIPRequestProcessorParent implements I
|
||||
@Autowired
|
||||
private IDeviceService deviceService;
|
||||
|
||||
@Autowired
|
||||
private IDeviceChannelService deviceChannelService;
|
||||
|
||||
@Autowired
|
||||
private SIPCommander cmder;
|
||||
|
||||
@@ -112,9 +116,10 @@ public class InfoRequestProcessor extends SIPRequestProcessorParent implements I
|
||||
return;
|
||||
}
|
||||
Device device1 = deviceService.getDeviceByDeviceId(inviteInfo.getDeviceId());
|
||||
if (inviteInfo.getStreamInfo() != null) {
|
||||
DeviceChannel deviceChannel = deviceChannelService.getOneById(inviteInfo.getChannelId());
|
||||
if (device1 != null && deviceChannel != null && inviteInfo.getStreamInfo() != null) {
|
||||
// 不解析协议, 直接转发给对应的设备
|
||||
cmder.playbackControlCmd(device1,inviteInfo.getStreamInfo(),new String(evt.getRequest().getRawContent()),eventResult -> {
|
||||
cmder.playbackControlCmd(device1, deviceChannel, inviteInfo.getStreamInfo(),new String(evt.getRequest().getRawContent()), eventResult -> {
|
||||
// 失败的回复
|
||||
try {
|
||||
responseAck(request, eventResult.statusCode, eventResult.msg);
|
||||
@@ -129,6 +134,8 @@ public class InfoRequestProcessor extends SIPRequestProcessorParent implements I
|
||||
log.error("[命令发送失败] 国标级联 录像控制: {}", e.getMessage());
|
||||
}
|
||||
});
|
||||
}else {
|
||||
responseAck(request, Response.NOT_FOUND, "not found");
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -3,10 +3,8 @@ package com.genersoft.iot.vmp.gb28181.transmit.event.request.impl.message.notify
|
||||
import com.genersoft.iot.vmp.common.InviteInfo;
|
||||
import com.genersoft.iot.vmp.common.InviteSessionType;
|
||||
import com.genersoft.iot.vmp.conf.exception.SsrcTransactionNotFoundException;
|
||||
import com.genersoft.iot.vmp.gb28181.bean.Device;
|
||||
import com.genersoft.iot.vmp.gb28181.bean.Platform;
|
||||
import com.genersoft.iot.vmp.gb28181.bean.SendRtpInfo;
|
||||
import com.genersoft.iot.vmp.gb28181.bean.SsrcTransaction;
|
||||
import com.genersoft.iot.vmp.gb28181.bean.*;
|
||||
import com.genersoft.iot.vmp.gb28181.service.IDeviceChannelService;
|
||||
import com.genersoft.iot.vmp.gb28181.service.IInviteStreamService;
|
||||
import com.genersoft.iot.vmp.gb28181.service.IPlatformService;
|
||||
import com.genersoft.iot.vmp.gb28181.session.SipInviteSessionManager;
|
||||
@@ -68,6 +66,9 @@ public class MediaStatusNotifyMessageHandler extends SIPRequestProcessorParent i
|
||||
@Autowired
|
||||
private SipInviteSessionManager sessionManager;
|
||||
|
||||
@Autowired
|
||||
private IDeviceChannelService deviceChannelService;
|
||||
|
||||
@Override
|
||||
public void afterPropertiesSet() throws Exception {
|
||||
notifyMessageHandler.addHandler(cmdType, this);
|
||||
@@ -95,9 +96,13 @@ public class MediaStatusNotifyMessageHandler extends SIPRequestProcessorParent i
|
||||
inviteInfo.getStreamInfo().setProgress(1);
|
||||
inviteStreamService.updateInviteInfo(inviteInfo);
|
||||
}
|
||||
|
||||
DeviceChannel deviceChannel = deviceChannelService.getOneById(ssrcTransaction.getChannelId());
|
||||
if (deviceChannel == null) {
|
||||
log.warn("[级联消息发送]:未找到国标设备通道: {}", ssrcTransaction.getChannelId());
|
||||
return;
|
||||
}
|
||||
try {
|
||||
cmder.streamByeCmd(device, ssrcTransaction.getChannelId(), null, callIdHeader.getCallId());
|
||||
cmder.streamByeCmd(device, deviceChannel.getDeviceId(), null, callIdHeader.getCallId());
|
||||
} catch (InvalidArgumentException | ParseException | SipException | SsrcTransactionNotFoundException e) {
|
||||
log.error("[录像流]推送完毕,收到关流通知, 发送BYE失败 {}", e.getMessage());
|
||||
}
|
||||
|
||||
@@ -84,7 +84,7 @@ public class BroadcastResponseMessageHandler extends SIPRequestProcessorParent i
|
||||
audioBroadcastCatch.setStatus(AudioBroadcastCatchStatus.WaiteInvite);
|
||||
audioBroadcastManager.update(audioBroadcastCatch);
|
||||
}else {
|
||||
playService.stopAudioBroadcast(device.getDeviceId(), channelId);
|
||||
playService.stopAudioBroadcast(device, channel);
|
||||
}
|
||||
} catch (ParseException | SipException | InvalidArgumentException e) {
|
||||
log.error("[命令发送失败] 国标级联 语音喊话: {}", e.getMessage());
|
||||
|
||||
Reference in New Issue
Block a user