mirror of
https://github.com/asterisk/asterisk.git
synced 2025-09-06 04:30:28 +00:00
Place the delay in __ast_answer prior to the channel-specific answer
callback. This change differs from commit 127113 in that now the channel is not set to AST_STATE_UP until after the answer callback. (closes issue #12924) Reported by: snyfer git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@127157 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
@@ -1699,7 +1699,6 @@ int __ast_answer(struct ast_channel *chan, unsigned int delay)
|
|||||||
if (delay) {
|
if (delay) {
|
||||||
int needanswer = (chan->tech->answer != NULL);
|
int needanswer = (chan->tech->answer != NULL);
|
||||||
|
|
||||||
ast_setstate(chan, AST_STATE_UP);
|
|
||||||
ast_cdr_answer(chan->cdr);
|
ast_cdr_answer(chan->cdr);
|
||||||
ast_channel_unlock(chan);
|
ast_channel_unlock(chan);
|
||||||
ast_safe_sleep(chan, delay);
|
ast_safe_sleep(chan, delay);
|
||||||
@@ -1712,6 +1711,7 @@ int __ast_answer(struct ast_channel *chan, unsigned int delay)
|
|||||||
res = chan->tech->answer(chan);
|
res = chan->tech->answer(chan);
|
||||||
ast_channel_unlock(chan);
|
ast_channel_unlock(chan);
|
||||||
}
|
}
|
||||||
|
ast_setstate(chan, AST_STATE_UP);
|
||||||
} else {
|
} else {
|
||||||
if (chan->tech->answer) {
|
if (chan->tech->answer) {
|
||||||
res = chan->tech->answer(chan);
|
res = chan->tech->answer(chan);
|
||||||
|
Reference in New Issue
Block a user