diff options
author | Mark Spencer <markster@digium.com> | 2005-01-27 16:33:12 +0000 |
---|---|---|
committer | Mark Spencer <markster@digium.com> | 2005-01-27 16:33:12 +0000 |
commit | 1f7c8719934eeb7f03017942cc07a6796a8f2d21 (patch) | |
tree | ad0ecbb8e5387906e1b15a86d3ed39fcc6e858dd | |
parent | 7a250ebd3495fe41f69316abb3f81a73b2a7247a (diff) |
Set dialed peer number properly when ringing multiple channels (bug #3437)
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@4898 65c4cc65-6c06-0410-ace0-fbb531ad65f3
-rwxr-xr-x | apps/app_dial.c | 8 | ||||
-rwxr-xr-x | manager.c | 14 |
2 files changed, 14 insertions, 8 deletions
diff --git a/apps/app_dial.c b/apps/app_dial.c index e62b0bb92..1e5d95f3b 100755 --- a/apps/app_dial.c +++ b/apps/app_dial.c @@ -886,6 +886,7 @@ static int dial_exec_full(struct ast_channel *chan, void *data, struct ast_flags cur = rest; continue; } + pbx_builtin_setvar_helper(tmp->chan, "DIALEDPEERNUMBER", numsubst); if (!ast_strlen_zero(tmp->chan->call_forward)) { char tmpchan[256]=""; char *stuff; @@ -1059,8 +1060,11 @@ static int dial_exec_full(struct ast_channel *chan, void *data, struct ast_flags ast_cdr_setdestchan(chan->cdr, peer->name); if (peer->name) pbx_builtin_setvar_helper(chan, "DIALEDPEERNAME", peer->name); - if (numsubst) - pbx_builtin_setvar_helper(chan, "DIALEDPEERNUMBER", numsubst); + + number = pbx_builtin_getvar_helper(peer, "DIALEDPEERNUMBER"); + if (!number) + number = numsubst; + pbx_builtin_setvar_helper(chan, "DIALEDPEERNUMBER", number); /* JDG: sendurl */ if ( url && !ast_strlen_zero(url) && ast_channel_supports_html(peer) ) { ast_log(LOG_DEBUG, "app_dial: sendurl=%s.\n", url); @@ -840,16 +840,18 @@ static void *fast_originate(void *data) "%s" "Channel: %s/%s\r\n" "Context: %s\r\n" - "Exten: %s\r\n", - in->idtext, in->tech, in->data, in->context, in->exten); + "Exten: %s\r\n" + "Reason: %i\r\n", + in->idtext, in->tech, in->data, in->context, in->exten, reason); else manager_event(EVENT_FLAG_CALL, "OriginateFailure", "%s" "Channel: %s/%s\r\n" "Context: %s\r\n" - "Exten: %s\r\n", - in->idtext, in->tech, in->data, in->context, in->exten); + "Exten: %s\r\n" + "Reason: %i\r\n", + in->idtext, in->tech, in->data, in->context, in->exten, reason); free(in); return NULL; @@ -879,8 +881,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 *variable = astman_get_header(m, "Variable"); - char *account = astman_get_header(m, "Account"); + char *variable = astman_get_header(m, "Variable"); + char *account = astman_get_header(m, "Account"); char *app = astman_get_header(m, "Application"); char *appdata = astman_get_header(m, "Data"); char *async = astman_get_header(m, "Async"); |