diff options
author | rmudgett <rmudgett@f38db490-d61c-443f-a65b-d21fe96a405b> | 2011-01-25 23:28:25 +0000 |
---|---|---|
committer | rmudgett <rmudgett@f38db490-d61c-443f-a65b-d21fe96a405b> | 2011-01-25 23:28:25 +0000 |
commit | 3cd924c71ea896dd28f86e03ef6f7794ea514323 (patch) | |
tree | d1e6734192b6a0fc146f32b24563505b083d7312 /main | |
parent | 75b6fe8aee0d3a065ed1e87aa3cad3118177a296 (diff) |
Merged revisions 304006 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.6.2
................
r304006 | rmudgett | 2011-01-25 17:25:32 -0600 (Tue, 25 Jan 2011) | 15 lines
Merged revisions 304005 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4
........
r304005 | rmudgett | 2011-01-25 17:21:09 -0600 (Tue, 25 Jan 2011) | 8 lines
DTMF attended transfers sometimes fail for no apparent reason.
The loop in feature_request_and_dial() can exit when Party C has answered
without processing an AST_CONTROL_ANSWER. Also sometimes an
AST_CONTROL_ANSWER never happens even though Party C has answered.
Don't hangup Party C if he is up or we receive an AST_CONTROL_ANSWER.
........
................
git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.8@304007 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'main')
-rw-r--r-- | main/features.c | 5 |
1 files changed, 2 insertions, 3 deletions
diff --git a/main/features.c b/main/features.c index efa438d3f..4492ef5d6 100644 --- a/main/features.c +++ b/main/features.c @@ -3245,9 +3245,8 @@ static struct ast_channel *feature_request_and_dial(struct ast_channel *caller, done: ast_indicate(caller, -1); - if (chan && ready) { - if (chan->_state == AST_STATE_UP) - state = AST_CONTROL_ANSWER; + if (chan && (ready || chan->_state == AST_STATE_UP)) { + state = AST_CONTROL_ANSWER; } else if (chan) { ast_hangup(chan); chan = NULL; |