]> git.ipfire.org Git - thirdparty/freeswitch.git/commitdiff
FS-11553: [core] do not discard the file if we are appending
authorAndrey Volk <andrey@signalwire.com>
Thu, 6 Dec 2018 14:51:40 +0000 (18:51 +0400)
committerAndrey Volk <andywolk@gmail.com>
Tue, 16 Jul 2019 19:21:32 +0000 (23:21 +0400)
src/switch_ivr_async.c

index d90984c948d79237b6b842d95b0ca14c0bb4625a..ca7b21daac8834bc3de3d5eab13c705c9644692e 100644 (file)
@@ -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));