From: Anthony Minessale Date: Fri, 4 Feb 2011 01:32:14 +0000 (-0600) Subject: fix regression from d72cde9b76a856cf002366300bea02c26db44ffb X-Git-Tag: v1.2-rc1~187^2~13^2~3^2~16 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=e79174cacf6abb943fe34840a5261b940b281c91;p=thirdparty%2Ffreeswitch.git fix regression from d72cde9b76a856cf002366300bea02c26db44ffb --- diff --git a/src/switch_core_session.c b/src/switch_core_session.c index 4836aae73f..d2e28de523 100644 --- a/src/switch_core_session.c +++ b/src/switch_core_session.c @@ -1865,6 +1865,17 @@ SWITCH_DECLARE(switch_status_t) switch_core_session_get_app_flags(const char *ap SWITCH_DECLARE(switch_status_t) switch_core_session_execute_application_async(switch_core_session_t *session, const char *app, const char *arg) { switch_event_t *execute_event; + char *ap, *arp; + + if (!arg && strstr(app, "::")) { + ap = switch_core_session_strdup(session, app); + app = ap; + + if ((arp = strstr(ap, "::"))) { + *arp = '\0'; + arg = arp + 2; + } + } if (switch_event_create(&execute_event, SWITCH_EVENT_COMMAND) == SWITCH_STATUS_SUCCESS) { switch_event_add_header_string(execute_event, SWITCH_STACK_BOTTOM, "call-command", "execute"); @@ -1894,6 +1905,10 @@ SWITCH_DECLARE(switch_status_t) switch_core_session_execute_application_get_flag switch_application_interface_t *application_interface; switch_status_t status = SWITCH_STATUS_SUCCESS; + if (!arg && strstr(app, "::")) { + return switch_core_session_execute_application_async(session, app, arg); + } + if (switch_channel_down(session->channel)) { switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(session), SWITCH_LOG_DEBUG, "Channel is hungup, aborting execution of application: %s\n", app); return SWITCH_STATUS_FALSE;