]> git.ipfire.org Git - thirdparty/freeswitch.git/commitdiff
FS-10261: Fire conference-destroy event later
authorChad Phillips <chad@apartmentlines.com>
Mon, 24 Apr 2017 13:33:38 +0000 (08:33 -0500)
committerChad Phillips <chad@apartmentlines.com>
Mon, 24 Apr 2017 13:33:38 +0000 (08:33 -0500)
The conference-destroy event can fire later, after more conference shutdown
operations are complete, such as closing open recording files.

src/mod/applications/mod_conference/mod_conference.c

index a15a5fc34d3fe2b58893d4e012511f6fe418ef38..89a35b38dc48a054ab255f1855431652985b72bb 100644 (file)
@@ -789,11 +789,6 @@ void *SWITCH_THREAD_FUNC conference_thread_run(switch_thread_t *thread, void *ob
                switch_cond_next();
        }
 
-       switch_event_create_subclass(&event, SWITCH_EVENT_CUSTOM, CONF_EVENT_MAINT);
-       conference_event_add_data(conference, event);
-       switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Action", "conference-destroy");
-       switch_event_fire(&event);
-
        switch_core_timer_destroy(&timer);
        switch_mutex_lock(conference_globals.hash_mutex);
        if (conference_utils_test_flag(conference, CFLAG_INHASH)) {
@@ -831,6 +826,12 @@ void *SWITCH_THREAD_FUNC conference_thread_run(switch_thread_t *thread, void *ob
        }
 
        conference->end_time = switch_epoch_time_now(NULL);
+
+       switch_event_create_subclass(&event, SWITCH_EVENT_CUSTOM, CONF_EVENT_MAINT);
+       conference_event_add_data(conference, event);
+       switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "Action", "conference-destroy");
+       switch_event_fire(&event);
+
        conference_cdr_render(conference);
 
        switch_mutex_lock(conference_globals.setup_mutex);