]> git.ipfire.org Git - thirdparty/freeswitch.git/commitdiff
FS-8633 #resolve [ first verto to join a conference does not get "conference-livearra...
authorAnthony Minessale <anthm@freeswitch.org>
Wed, 9 Dec 2015 22:16:16 +0000 (16:16 -0600)
committerKen Rice <krice@freeswitch.org>
Wed, 9 Dec 2015 22:16:26 +0000 (16:16 -0600)
src/mod/applications/mod_conference/mod_conference.c

index 6a4df4a6a19c91f323f5efb6f7c0703929443359..4ba5a23f5140b8dbb35dcaa65483c44017a6b7be 100644 (file)
@@ -230,37 +230,6 @@ void *SWITCH_THREAD_FUNC conference_thread_run(switch_thread_t *thread, void *ob
        conference->auto_recording = 0;
        conference->record_count = 0;
 
-
-
-       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-create");
-       switch_event_fire(&event);
-
-       if (conference_utils_test_flag(conference, CFLAG_LIVEARRAY_SYNC)) {
-               char *p;
-
-               if (strchr(conference->name, '@')) {
-                       conference->la_event_channel = switch_core_sprintf(conference->pool, "conference-liveArray.%s", conference->name);
-                       conference->chat_event_channel = switch_core_sprintf(conference->pool, "conference-chat.%s", conference->name);
-                       conference->mod_event_channel = switch_core_sprintf(conference->pool, "conference-mod.%s", conference->name);
-               } else {
-                       conference->la_event_channel = switch_core_sprintf(conference->pool, "conference-liveArray.%s@%s", conference->name, conference->domain);
-                       conference->chat_event_channel = switch_core_sprintf(conference->pool, "conference-chat.%s@%s", conference->name, conference->domain);
-                       conference->mod_event_channel = switch_core_sprintf(conference->pool, "conference-mod.%s@%s", conference->name, conference->domain);
-               }
-
-               conference->la_name = switch_core_strdup(conference->pool, conference->name);
-               if ((p = strchr(conference->la_name, '@'))) {
-                       *p = '\0';
-               }
-
-               switch_live_array_create(conference->la_event_channel, conference->la_name, conference_globals.event_channel_id, &conference->la);
-               switch_live_array_set_user_data(conference->la, conference);
-               switch_live_array_set_command_handler(conference->la, conference_event_la_command_handler);
-       }
-
-
        while (conference_globals.running && !conference_utils_test_flag(conference, CFLAG_DESTRUCT)) {
                switch_size_t file_sample_len = samples;
                switch_size_t file_data_len = samples * 2 * conference->channels;
@@ -2440,7 +2409,8 @@ conference_obj_t *conference_new(char *name, conference_xml_cfg_t cfg, switch_co
        switch_channel_t *channel = NULL;
        const char *force_rate = NULL, *force_interval = NULL, *force_channels = NULL, *presence_id = NULL;
        uint32_t force_rate_i = 0, force_interval_i = 0, force_channels_i = 0, video_auto_floor_msec = 0;
-
+       switch_event_t *event;
+       
        /* Validate the conference name */
        if (zstr(name)) {
                switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "Invalid Record! no name.\n");
@@ -3195,6 +3165,36 @@ conference_obj_t *conference_new(char *name, conference_xml_cfg_t cfg, switch_co
                }
        }
 
+
+       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-create");
+       switch_event_fire(&event);
+
+       if (conference_utils_test_flag(conference, CFLAG_LIVEARRAY_SYNC)) {
+               char *p;
+
+               if (strchr(conference->name, '@')) {
+                       conference->la_event_channel = switch_core_sprintf(conference->pool, "conference-liveArray.%s", conference->name);
+                       conference->chat_event_channel = switch_core_sprintf(conference->pool, "conference-chat.%s", conference->name);
+                       conference->mod_event_channel = switch_core_sprintf(conference->pool, "conference-mod.%s", conference->name);
+               } else {
+                       conference->la_event_channel = switch_core_sprintf(conference->pool, "conference-liveArray.%s@%s", conference->name, conference->domain);
+                       conference->chat_event_channel = switch_core_sprintf(conference->pool, "conference-chat.%s@%s", conference->name, conference->domain);
+                       conference->mod_event_channel = switch_core_sprintf(conference->pool, "conference-mod.%s@%s", conference->name, conference->domain);
+               }
+
+               conference->la_name = switch_core_strdup(conference->pool, conference->name);
+               if ((p = strchr(conference->la_name, '@'))) {
+                       *p = '\0';
+               }
+
+               switch_live_array_create(conference->la_event_channel, conference->la_name, conference_globals.event_channel_id, &conference->la);
+               switch_live_array_set_user_data(conference->la, conference);
+               switch_live_array_set_command_handler(conference->la, conference_event_la_command_handler);
+       }
+
+       
  end:
 
        switch_mutex_unlock(conference_globals.hash_mutex);