diff --git a/res/res_features.c b/res/res_features.c index 349318c471..e04ac7c26e 100644 --- a/res/res_features.c +++ b/res/res_features.c @@ -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;