]> git.ipfire.org Git - thirdparty/freeswitch.git/commitdiff
add loops var durning looped execution
authorAnthony Minessale <anthm@freeswitch.org>
Tue, 17 Dec 2013 22:19:33 +0000 (03:19 +0500)
committerAnthony Minessale <anthm@freeswitch.org>
Tue, 17 Dec 2013 22:19:33 +0000 (03:19 +0500)
src/switch_ivr.c

index daba288c7e0f39ece36b9c2151dcff6d40a86234..d3124ca5ce18d6902af8a4d4b74d0009c3fa9ab9 100644 (file)
@@ -620,6 +620,8 @@ SWITCH_DECLARE(switch_status_t) switch_ivr_parse_event(switch_core_session_t *se
                                        switch_channel_set_variable(channel, "app_uuid", event_uuid);
                                }
 
+                               switch_channel_set_variable_printf(channel, "current_loop", "%d", x + 1);
+                               switch_channel_set_variable_printf(channel, "total_loops", "%d", loops);
 
                                if (switch_core_session_execute_application(session, app_name, app_arg) != SWITCH_STATUS_SUCCESS) {
                                        if (!inner || switch_channel_test_flag(channel, CF_STOP_BROADCAST)) switch_channel_clear_flag(channel, CF_BROADCAST);
@@ -632,6 +634,9 @@ SWITCH_DECLARE(switch_status_t) switch_ivr_parse_event(switch_core_session_t *se
                                }
                        }
 
+                       switch_channel_set_variable(channel, "current_loop", NULL);
+                       switch_channel_set_variable(channel, "total_loops", NULL);
+
                        if (b_uuid) {
                                if ((b_session = switch_core_session_locate(b_uuid))) {
                                        switch_channel_t *b_channel = switch_core_session_get_channel(b_session);