aboutsummaryrefslogtreecommitdiffstats
path: root/main
diff options
context:
space:
mode:
authorrmudgett <rmudgett@f38db490-d61c-443f-a65b-d21fe96a405b>2011-01-25 23:25:32 +0000
committerrmudgett <rmudgett@f38db490-d61c-443f-a65b-d21fe96a405b>2011-01-25 23:25:32 +0000
commitd0b639da78824e618323d34e60f255ca87f5b1f1 (patch)
tree7505c3b51d9455f8ee0ae2f525ae45bbdf4b3b86 /main
parentb86ca489dc8d906223c39dce60e53fabb3255e83 (diff)
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.6.2@304006 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'main')
-rw-r--r--main/features.c5
1 files changed, 2 insertions, 3 deletions
diff --git a/main/features.c b/main/features.c
index 6e90b5ee7..8710f248c 100644
--- a/main/features.c
+++ b/main/features.c
@@ -2663,9 +2663,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;