Skip to content
Snippets Groups Projects
Commit ed185670 authored by Mark Spencer's avatar Mark Spencer
Browse files

Allow Answer(delay) to create delay after answering (bug #3160)

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@4586 65c4cc65-6c06-0410-ace0-fbb531ad65f3
parent 8bf932bf
Branches
Tags
No related merge requests found
...@@ -210,8 +210,10 @@ static struct pbx_builtin { ...@@ -210,8 +210,10 @@ static struct pbx_builtin {
{ "Answer", pbx_builtin_answer, { "Answer", pbx_builtin_answer,
"Answer a channel if ringing", "Answer a channel if ringing",
" Answer(): If the channel is ringing, answer it, otherwise do nothing. \n" " Answer([delay]): If the channel is ringing, answer it, otherwise do nothing. \n"
"Returns 0 unless it tries to answer the channel and fails.\n" "If delay is specified, asterisk will pause execution for the specified amount\n"
"of milliseconds if an answer is required, in order to give audio a chance to\n"
"become ready. Returns 0 unless it tries to answer the channel and fails.\n"
}, },
{ "BackGround", pbx_builtin_background, { "BackGround", pbx_builtin_background,
...@@ -4705,7 +4707,16 @@ static int pbx_builtin_congestion(struct ast_channel *chan, void *data) ...@@ -4705,7 +4707,16 @@ static int pbx_builtin_congestion(struct ast_channel *chan, void *data)
static int pbx_builtin_answer(struct ast_channel *chan, void *data) static int pbx_builtin_answer(struct ast_channel *chan, void *data)
{ {
return ast_answer(chan); int delay = atoi(data);
int res;
if (chan->_state == AST_STATE_UP)
delay = 0;
res = ast_answer(chan);
if (res)
return res;
if (delay)
res = ast_safe_sleep(chan, delay);
return res;
} }
static int pbx_builtin_setlanguage(struct ast_channel *chan, void *data) static int pbx_builtin_setlanguage(struct ast_channel *chan, void *data)
... ...
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please to comment