修复播放中zlm离线导致的bye发送失败

This commit is contained in:
648540858
2022-06-15 14:55:33 +08:00
parent f760134b39
commit f7006e4881
3 changed files with 5 additions and 4 deletions

View File

@@ -717,8 +717,7 @@ public class SIPCommander implements ISIPCommander {
}
dialog = streamSession.getDialogByStream(ssrcTransaction.getDeviceId(), ssrcTransaction.getChannelId(), ssrcTransaction.getStream());
}
MediaServerItem mediaServerItem = mediaServerService.getOne(ssrcTransaction.getMediaServerId());
mediaServerService.releaseSsrc(mediaServerItem.getId(), ssrcTransaction.getSsrc());
mediaServerService.releaseSsrc(ssrcTransaction.getMediaServerId(), ssrcTransaction.getSsrc());
mediaServerService.closeRTPServer(ssrcTransaction.getDeviceId(), ssrcTransaction.getChannelId(), ssrcTransaction.getStream());
streamSession.remove(ssrcTransaction.getDeviceId(), ssrcTransaction.getChannelId(), ssrcTransaction.getStream());

View File

@@ -61,7 +61,7 @@ public class ZLMKeepliveTimeoutListener extends RedisKeyExpirationEventMessageLi
// 发起http请求验证zlm是否确实无法连接如果确实无法连接则发送离线事件否则不作处理
MediaServerItem mediaServerItem = mediaServerService.getOne(mediaServerId);
JSONObject mediaServerConfig = zlmresTfulUtils.getMediaServerConfig(mediaServerItem);
if (mediaServerConfig == null) {
if (mediaServerConfig == null || mediaServerConfig.getInteger("code") == -2) {
publisher.zlmOfflineEventPublish(mediaServerId);
}else {
logger.info("[zlm心跳到期]{}验证后zlm仍在线恢复心跳信息", mediaServerId);