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: https://origsvn.digium.com/svn/asterisk/branches/1.6.2@304006
65c4cc65-6c06-0410-ace0-
fbb531ad65f3
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;