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.4@304005 65c4cc65-6c06-0410-ace0-fbb531ad65f3
1.4
Richard Mudgett 16 years ago
parent 9f262f2772
commit e7a20eecb2

@ -1956,9 +1956,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;

Loading…
Cancel
Save