コード例 #1
0
        /// <summary>
        /// Начать запись канала
        /// </summary>
        protected async Task <Result> StartRecordingChannel(string snoopChannelId, Guid callId, Guid?lineId)
        {
            if (!_asteriskOptions.RecordingEnabled)
            {
                return(Result.Failure(ErrorCodes.RecordingError));
            }

            var audioRecord = new AudioRecord
            {
                CallId   = callId,
                LineId   = lineId,
                FileName = snoopChannelId
            };
            await AudioRecordRepository.AddAudioRecord(audioRecord);

            var result = await AriClient.StartRecordingChannel(snoopChannelId);

            if (result.IsFailure)
            {
                Logger.Warning($"StartRecordingChannel. Could not start recording channel. CallId: {callId}");
                return(result);
            }

            Logger.Information($"StartRecordingChannel. Channel recording started. {snoopChannelId}");

            return(Result.Success());
        }