diff options
author | Mark Spencer <markster@digium.com> | 2003-10-09 14:12:26 +0000 |
---|---|---|
committer | Mark Spencer <markster@digium.com> | 2003-10-09 14:12:26 +0000 |
commit | 7198e00097a1ef9d111979e1bcc20bd1dc76219b (patch) | |
tree | 32a1c972076270c81e0d95e0da45712ccc291bcf /channel.c | |
parent | 1b19a2b1dec0faad8741aeb42c6b3ed86426bc87 (diff) |
Fix helper app
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@1622 65c4cc65-6c06-0410-ace0-fbb531ad65f3
Diffstat (limited to 'channel.c')
-rwxr-xr-x | channel.c | 19 |
1 files changed, 12 insertions, 7 deletions
@@ -1509,15 +1509,10 @@ struct ast_channel *__ast_request_and_dial(char *type, int format, void *data, i while( (var = strtok_r(NULL, "|", &tmp)) ) { pbx_builtin_setvar( chan, var ); } /* /JDG */ - if (oh->context && *oh->context) - strncpy(chan->context, oh->context, sizeof(chan->context) - 1); - if (oh->exten && *oh->exten) - strncpy(chan->exten, oh->exten, sizeof(chan->exten) - 1); if (oh->callerid && *oh->callerid) ast_set_callerid(chan, oh->callerid, 1); if (oh->account && *oh->account) ast_cdr_setaccount(chan, oh->account); - chan->priority = oh->priority; } if (callerid && strlen(callerid)) ast_set_callerid(chan, callerid, 1); @@ -1561,8 +1556,18 @@ struct ast_channel *__ast_request_and_dial(char *type, int format, void *data, i ast_log(LOG_NOTICE, "Unable to request channel %s/%s\n", type, (char *)data); } else ast_log(LOG_NOTICE, "Unable to request channel %s/%s\n", type, (char *)data); - if (chan && (chan->_state == AST_STATE_UP)) - state = AST_CONTROL_ANSWER; + if (chan) { + /* Final fixups */ + if (oh) { + if (oh->context && *oh->context) + strncpy(chan->context, oh->context, sizeof(chan->context) - 1); + if (oh->exten && *oh->exten) + strncpy(chan->exten, oh->exten, sizeof(chan->exten) - 1); + chan->priority = oh->priority; + } + if (chan->_state == AST_STATE_UP) + state = AST_CONTROL_ANSWER; + } if (outstate) *outstate = state; if (chan && res <= 0) { |