private async Task DestroyBridge(string bridgeId) { Logger.Information($"DestroyBridge: {bridgeId}"); var allChannelsInBridge = await ChannelRepository.GetByBridgeId(bridgeId); if (allChannelsInBridge.Count > 1) { Logger.Debug("Bridge contains more than 1 channel"); return; } if (allChannelsInBridge.Count == 1) { var lastChannelInBridge = allChannelsInBridge.First(); if (lastChannelInBridge.Interrupted) { Logger.Information($"Канал {lastChannelInBridge.ChannelId} {lastChannelInBridge.Role} ожидает ответа."); return; } await AriClient.HangupChannel(lastChannelInBridge.ChannelId); return; } AriClient.DestroyBridge(bridgeId); await DestroyRecordingBridge(bridgeId); }
private async Task DestroyRecordingBridge(string bridgeId) { var commonRecordsBridgeId = GetCommonRecordingBridgeId(bridgeId); var audioRecordCommon = await AudioRecordRepository.GetRecordByName(commonRecordsBridgeId); if (audioRecordCommon == null) { return; } var recordingBridgeId = GetCommonRecordingBridgeId(bridgeId); AriClient.DestroyBridge(recordingBridgeId); }