diff --git a/src/mod/applications/mod_httapi/mod_httapi.c b/src/mod/applications/mod_httapi/mod_httapi.c index 51b82a9f79..f9deb48d65 100644 --- a/src/mod/applications/mod_httapi/mod_httapi.c +++ b/src/mod/applications/mod_httapi/mod_httapi.c @@ -259,6 +259,12 @@ static void console_clean_log(const char *level_str, const char *msg) switch_log_printf(SWITCH_CHANNEL_LOG_CLEAN, level, "%s", switch_str_nil(msg)); } +static switch_status_t parse_continue(const char *tag_name, client_t *client, switch_xml_t tag, const char *body) +{ + + return SWITCH_STATUS_SUCCESS; +} + static switch_status_t parse_log(const char *tag_name, client_t *client, switch_xml_t tag, const char *body) { const char *level = switch_xml_attr(tag, "level"); @@ -920,6 +926,16 @@ static switch_status_t parse_record(const char *tag_name, client_t *client, swit return status; } +static switch_status_t parse_common(const char *tag_name, client_t *client, switch_xml_t tag, const char *body) +{ + const char *action = switch_xml_attr(tag, "action"); + + if (action) { + switch_event_add_header_string(client->params, SWITCH_STACK_BOTTOM, "url", action); + } + + return SWITCH_STATUS_SUCCESS; +} static switch_status_t parse_xml(client_t *client) { @@ -990,6 +1006,8 @@ static switch_status_t parse_xml(client_t *client) } switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "Process Tag: [%s]\n", tag->name); + + parse_common(tag->name, client, tag, expanded); handler(tag->name, client, tag, expanded); if (expanded && expanded != tag->txt) { @@ -2423,6 +2441,7 @@ SWITCH_MODULE_LOAD_FUNCTION(mod_httapi_load) bind_parser("conference", parse_conference); bind_parser("break", parse_break); bind_parser("log", parse_log); + bind_parser("continue", parse_continue); if (do_config() != SWITCH_STATUS_SUCCESS) { return SWITCH_STATUS_FALSE; diff --git a/src/mod/applications/mod_httapi/mod_httapi_doc.txt b/src/mod/applications/mod_httapi/mod_httapi_doc.txt index f6c94e6fd4..8d6e8a6746 100644 --- a/src/mod/applications/mod_httapi/mod_httapi_doc.txt +++ b/src/mod/applications/mod_httapi/mod_httapi_doc.txt @@ -150,25 +150,28 @@ gender : gender (fs param) -*DATA* +*DATA* : Execute a FreeSWITCH app. ATTRS: application : The app to run +action : Change url to submit to +data : Alternate source for app data *DATA* : The app data -DATA +DATA : Send a SMS message. ATTRS: to : The dest number +action : Change url to submit to *DATA* : The message data -*DATA* +*DATA* : Place an outbound call or transfer. ATTRS: @@ -176,6 +179,7 @@ context : Dialplan context. dialplan : Dialplan dialplan. caller-id-name : Caller ID Name. caller-id-number : Caller ID Number. +action : Change url to submit to *DATA* : Number to dial or originate string @@ -194,22 +198,22 @@ action : URL action to use. - + : Start a conference call. ATTRS: profile : Conference profile to use. +action : Change url to submit to - - + : Hangup the call ATTRS: cause : Hangup cause - +action : Change url to submit to @@ -221,11 +225,19 @@ cause : Hangup cause - + : Exit the httapi application and continue in the dialplan. ATTRS: level : The log level to use. clean : If true do not pring log prefix. +action : Change url to submit to + + + : Just continue (no-op) + +ATTRS: +action : Change url to submit to +