]> git.ipfire.org Git - thirdparty/freeswitch.git/commitdiff
FS-3311 fire SWITCH_EVENT_RECORD_STOP after closing file
authorChristopher Rienzo <chris@rienzo.net>
Tue, 24 May 2011 17:58:17 +0000 (17:58 +0000)
committerChristopher Rienzo <chris@rienzo.net>
Fri, 3 Jun 2011 18:48:02 +0000 (18:48 +0000)
src/switch_ivr_async.c

index 7f0b37905acd61cf7f205290fe7db041fa3a80a8..f9cf24ef830946d618417ecb14482ea4116e02dd 100644 (file)
@@ -936,12 +936,6 @@ static switch_bool_t record_callback(switch_media_bug_t *bug, void *user_data, s
                        switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(session), SWITCH_LOG_DEBUG, "Stop recording file %s\n", rh->file);
                        switch_channel_set_private(channel, rh->file, NULL);
 
-                       if (switch_event_create(&event, SWITCH_EVENT_RECORD_STOP) == SWITCH_STATUS_SUCCESS) {
-                               switch_channel_event_set_data(channel, event);
-                               switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Record-File-Path", rh->file);
-                               switch_event_fire(&event);
-                       }
-
                        if (rh->fh) {
                                switch_size_t len;
                                uint8_t data[SWITCH_RECOMMENDED_BUFFER_SIZE];
@@ -970,6 +964,12 @@ static switch_bool_t record_callback(switch_media_bug_t *bug, void *user_data, s
                                }
                        }
 
+                       if (switch_event_create(&event, SWITCH_EVENT_RECORD_STOP) == SWITCH_STATUS_SUCCESS) {
+                               switch_channel_event_set_data(channel, event);
+                               switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Record-File-Path", rh->file);
+                               switch_event_fire(&event);
+                       }
+
                        if ((var = switch_channel_get_variable(channel, "record_post_process_exec_app"))) {
                                char *app = switch_core_session_strdup(session, var);
                                char *data;