]> git.ipfire.org Git - thirdparty/freeswitch.git/commitdiff
set bracket vars before firing the CHANNEL_ORIGINATE event
authorAnthony Minessale <anthony.minessale@gmail.com>
Mon, 14 Apr 2008 17:30:45 +0000 (17:30 +0000)
committerAnthony Minessale <anthony.minessale@gmail.com>
Mon, 14 Apr 2008 17:30:45 +0000 (17:30 +0000)
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@8110 d0543943-73ff-0310-b7d9-9358b9ac24b2

src/switch_ivr_originate.c

index 0042f5b472ff5dcd1d309a566af07f8d6630c361..12cebbbf9b977130a2b29713ba4d244c3a29bb5e 100644 (file)
@@ -826,19 +826,6 @@ SWITCH_DECLARE(switch_status_t) switch_ivr_originate(switch_core_session_t *sess
                                peer_channels[i] = switch_core_session_get_channel(new_session);
                                switch_channel_set_flag(peer_channels[i], CF_ORIGINATING);
                                
-                               if (var_event) {
-                                       switch_event_t *event;
-                                       switch_event_header_t *header;
-                                       /* install the vars from the {} params */
-                                       for (header = var_event->headers; header; header = header->next) {
-                                               switch_channel_set_variable(peer_channels[i], header->name, header->value);
-                                       }
-                                       switch_event_create(&event, SWITCH_EVENT_CHANNEL_ORIGINATE);
-                                       switch_assert(event);
-                                       switch_channel_event_set_data(peer_channels[i], event);
-                                       switch_event_fire(&event);
-                               }
-
                                if (vdata) {
                                        char *var_array[1024] = { 0 };
                                        int var_count = 0;
@@ -857,6 +844,19 @@ SWITCH_DECLARE(switch_status_t) switch_ivr_originate(switch_core_session_t *sess
                                        }
                                }
                                
+                               if (var_event) {
+                                       switch_event_t *event;
+                                       switch_event_header_t *header;
+                                       /* install the vars from the {} params */
+                                       for (header = var_event->headers; header; header = header->next) {
+                                               switch_channel_set_variable(peer_channels[i], header->name, header->value);
+                                       }
+                                       switch_event_create(&event, SWITCH_EVENT_CHANNEL_ORIGINATE);
+                                       switch_assert(event);
+                                       switch_channel_event_set_data(peer_channels[i], event);
+                                       switch_event_fire(&event);
+                               }
+
                                if (!table) {
                                        table = &originate_state_handlers;
                                }