aboutsummaryrefslogtreecommitdiffstats
path: root/manager.c
diff options
context:
space:
mode:
authorroot <root@f38db490-d61c-443f-a65b-d21fe96a405b>2006-02-11 19:03:03 +0000
committerroot <root@f38db490-d61c-443f-a65b-d21fe96a405b>2006-02-11 19:03:03 +0000
commitab0d6f99d8f35462645d7e4b3521d9061535663e (patch)
treea92efd77b8211b3d73698bdaba9a5f9cfb5c7428 /manager.c
parent53df4a7ba9cd7fd91ca42f02d90661ec5e5e0d29 (diff)
automerge commit
git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.2-netsec@9606 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'manager.c')
-rw-r--r--manager.c36
1 files changed, 16 insertions, 20 deletions
diff --git a/manager.c b/manager.c
index fe8d03726..5254f7749 100644
--- a/manager.c
+++ b/manager.c
@@ -64,16 +64,17 @@ ASTERISK_FILE_VERSION(__FILE__, "$Revision$")
#include "asterisk/utils.h"
struct fast_originate_helper {
- char tech[256];
- char data[256];
+ char tech[AST_MAX_MANHEADER_LEN];
+ char data[AST_MAX_MANHEADER_LEN];
int timeout;
- char app[256];
- char appdata[256];
- char cid_name[256];
- char cid_num[256];
- char context[256];
- char exten[256];
- char idtext[256];
+ char app[AST_MAX_APP];
+ char appdata[AST_MAX_MANHEADER_LEN];
+ char cid_name[AST_MAX_MANHEADER_LEN];
+ char cid_num[AST_MAX_MANHEADER_LEN];
+ char context[AST_MAX_CONTEXT];
+ char exten[AST_MAX_EXTENSION];
+ char idtext[AST_MAX_MANHEADER_LEN];
+ char account[AST_MAX_ACCOUNT_CODE];
int priority;
struct ast_variable *vars;
};
@@ -939,12 +940,12 @@ static void *fast_originate(void *data)
res = ast_pbx_outgoing_app(in->tech, AST_FORMAT_SLINEAR, in->data, in->timeout, in->app, in->appdata, &reason, 1,
!ast_strlen_zero(in->cid_num) ? in->cid_num : NULL,
!ast_strlen_zero(in->cid_name) ? in->cid_name : NULL,
- in->vars, &chan);
+ in->vars, in->account, &chan);
} else {
res = ast_pbx_outgoing_exten(in->tech, AST_FORMAT_SLINEAR, in->data, in->timeout, in->context, in->exten, in->priority, &reason, 1,
!ast_strlen_zero(in->cid_num) ? in->cid_num : NULL,
!ast_strlen_zero(in->cid_name) ? in->cid_name : NULL,
- in->vars, &chan);
+ in->vars, in->account, &chan);
}
if (!res)
manager_event(EVENT_FLAG_CALL,
@@ -1047,12 +1048,6 @@ static int action_originate(struct mansession *s, struct message *m)
if (ast_strlen_zero(l))
l = NULL;
}
- if (account) {
- struct ast_variable *newvar;
- newvar = ast_variable_new("CDR(accountcode|r)", account);
- newvar->next = vars;
- vars = newvar;
- }
if (ast_true(async)) {
struct fast_originate_helper *fast = malloc(sizeof(struct fast_originate_helper));
if (!fast) {
@@ -1072,6 +1067,7 @@ static int action_originate(struct mansession *s, struct message *m)
fast->vars = vars;
ast_copy_string(fast->context, context, sizeof(fast->context));
ast_copy_string(fast->exten, exten, sizeof(fast->exten));
+ ast_copy_string(fast->account, account, sizeof(fast->account));
fast->timeout = to;
fast->priority = pi;
pthread_attr_init(&attr);
@@ -1083,10 +1079,10 @@ static int action_originate(struct mansession *s, struct message *m)
}
}
} else if (!ast_strlen_zero(app)) {
- res = ast_pbx_outgoing_app(tech, AST_FORMAT_SLINEAR, data, to, app, appdata, &reason, 1, l, n, vars, NULL);
+ res = ast_pbx_outgoing_app(tech, AST_FORMAT_SLINEAR, data, to, app, appdata, &reason, 1, l, n, vars, account, NULL);
} else {
if (exten && context && pi)
- res = ast_pbx_outgoing_exten(tech, AST_FORMAT_SLINEAR, data, to, context, exten, pi, &reason, 1, l, n, vars, NULL);
+ res = ast_pbx_outgoing_exten(tech, AST_FORMAT_SLINEAR, data, to, context, exten, pi, &reason, 1, l, n, vars, account, NULL);
else {
astman_send_error(s, m, "Originate with 'Exten' requires 'Context' and 'Priority'");
return 0;
@@ -1405,7 +1401,7 @@ static void *session_do(void *data)
if (process_message(s, &m))
break;
memset(&m, 0, sizeof(m));
- } else if (m.hdrcount < MAX_HEADERS - 1)
+ } else if (m.hdrcount < AST_MAX_MANHEADERS - 1)
m.hdrcount++;
} else if (res < 0)
break;