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
+