From: Andrey Volk Date: Thu, 6 Dec 2018 14:51:40 +0000 (+0400) Subject: FS-11553: [core] do not discard the file if we are appending X-Git-Tag: v1.10.0~217 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=554519f0e4028f25c8d249a94061f1f1197e5fba;p=thirdparty%2Ffreeswitch.git FS-11553: [core] do not discard the file if we are appending --- diff --git a/src/switch_ivr_async.c b/src/switch_ivr_async.c index d90984c948..ca7b21daac 100644 --- a/src/switch_ivr_async.c +++ b/src/switch_ivr_async.c @@ -1499,12 +1499,12 @@ static switch_bool_t record_callback(switch_media_bug_t *bug, void *user_data, s if (file_trimmed) switch_channel_set_variable(channel, "record_trimmed", file_trimmed); switch_core_file_close(rh->fh); - if (!rh->writes && !rh->vwrites) { + if (!rh->writes && !rh->vwrites && !switch_test_flag(rh->fh, SWITCH_FILE_WRITE_APPEND)) { switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(session), SWITCH_LOG_DEBUG, "Discarding empty file %s\n", rh->file); switch_channel_set_variable(channel, "RECORD_DISCARDED", "true"); switch_file_remove(rh->file, switch_core_session_get_pool(session)); set_completion_cause(rh, "empty-file"); - } else if (rh->fh->samples_out < rh->fh->samplerate * rh->min_sec) { + } else if ((rh->fh->samples_out < rh->fh->samplerate * rh->min_sec) && !switch_test_flag(rh->fh, SWITCH_FILE_WRITE_APPEND)) { switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(session), SWITCH_LOG_DEBUG, "Discarding short file %s\n", rh->file); switch_channel_set_variable(channel, "RECORD_DISCARDED", "true"); switch_file_remove(rh->file, switch_core_session_get_pool(session));