aboutsummaryrefslogtreecommitdiffstats
path: root/manager.c
diff options
context:
space:
mode:
authormarkster <markster@f38db490-d61c-443f-a65b-d21fe96a405b>2003-06-26 20:32:52 +0000
committermarkster <markster@f38db490-d61c-443f-a65b-d21fe96a405b>2003-06-26 20:32:52 +0000
commitbc12b3a7d31aca35b3eb83e14a7f7f238c88bbfb (patch)
tree0e104ecdc598eb151d361467ce4f5a38793f3109 /manager.c
parent61f9833f34202ceb330d48a96ad7001b0cf6e29c (diff)
Extend manager originate functionality
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@1125 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'manager.c')
-rwxr-xr-xmanager.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/manager.c b/manager.c
index 19cc3451d..f7761d63b 100755
--- a/manager.c
+++ b/manager.c
@@ -405,6 +405,8 @@ static int action_originate(struct mansession *s, struct message *m)
char *priority = astman_get_header(m, "Priority");
char *timeout = astman_get_header(m, "Timeout");
char *callerid = astman_get_header(m, "CallerID");
+ char *app = astman_get_header(m, "Application");
+ char *appdata = astman_get_header(m, "Data");
char *tech, *data;
int pi = 0;
int res;
@@ -432,7 +434,11 @@ static int action_originate(struct mansession *s, struct message *m)
}
*data = '\0';
data++;
- res = ast_pbx_outgoing_exten(tech, AST_FORMAT_SLINEAR, data, to, context, exten, pi, &reason, 0, strlen(callerid) ? callerid : NULL, NULL );
+ if (strlen(app)) {
+ res = ast_pbx_outgoing_app(tech, AST_FORMAT_SLINEAR, data, to, app, appdata, &reason, 0, strlen(callerid) ? callerid : NULL );
+ } else {
+ res = ast_pbx_outgoing_exten(tech, AST_FORMAT_SLINEAR, data, to, context, exten, pi, &reason, 0, strlen(callerid) ? callerid : NULL, NULL );
+ }
if (!res)
astman_send_ack(s, "Originate successfully queued");
else