]> git.ipfire.org Git - thirdparty/freeswitch.git/commitdiff
treat app::arg syntax in execute_on_answer as a broadcast request
authorAnthony Minessale <anthony.minessale@gmail.com>
Wed, 20 May 2009 13:02:41 +0000 (13:02 +0000)
committerAnthony Minessale <anthony.minessale@gmail.com>
Wed, 20 May 2009 13:02:41 +0000 (13:02 +0000)
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@13400 d0543943-73ff-0310-b7d9-9358b9ac24b2

src/switch_channel.c

index 09b5fe64dbc541c1d4378b085f92e06ac2eac675..880d7a4b495fc4846a394389208241586ff752a5 100644 (file)
@@ -1893,12 +1893,17 @@ SWITCH_DECLARE(switch_status_t) switch_channel_perform_mark_answered(switch_chan
                char *arg = NULL;
 
                app = switch_core_session_strdup(channel->session, var);
-
-               if ((arg = strchr(app, ' '))) {
-                       *arg++ = '\0';
+               
+               if ((arg = strchr(app, ':')) && *(arg+1) == ':') {
+                       switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "%s execute on answer: %s (BROADCAST)\n", channel->name, app);
+                       switch_ivr_broadcast(switch_core_session_get_uuid(channel->session), app, SMF_NONE);
+               } else {
+                       if ((arg = strchr(app, ' '))) {
+                               *arg++ = '\0';
+                       }
+                       switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "%s execute on answer: %s(%s)\n", channel->name, app, switch_str_nil(arg));
+                       switch_core_session_execute_application(channel->session, app, arg);
                }
-               switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "%s execute on answer: %s(%s)", channel->name, app, switch_str_nil(arg));
-               switch_core_session_execute_application(channel->session, app, arg);
        }
 
        switch_channel_audio_sync(channel);