diff options
Diffstat (limited to 'res/res_agi.c')
-rw-r--r-- | res/res_agi.c | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/res/res_agi.c b/res/res_agi.c index efd8549b3..1018bf4eb 100644 --- a/res/res_agi.c +++ b/res/res_agi.c @@ -78,6 +78,19 @@ ASTERISK_FILE_VERSION(__FILE__, "$Revision$") <ref type="agi">hangup</ref> </see-also> </agi> + <agi name="asyncagi break" language="en_US"> + <synopsis> + Interrupts Async AGI + </synopsis> + <syntax /> + <description> + <para>Interrupts expected flow of Async AGI commands and returns control to previous source + (typically, the PBX dialplan).</para> + </description> + <see-also> + <ref type="agi">hangup</ref> + </see-also> + </agi> <agi name="channel status" language="en_US"> <synopsis> Returns status of the connected channel. @@ -1018,6 +1031,12 @@ static int handle_answer(struct ast_channel *chan, AGI *agi, int argc, char *arg return (res >= 0) ? RESULT_SUCCESS : RESULT_FAILURE; } +static int handle_asyncagi_break(struct ast_channel *chan, AGI *agi, int argc, char *argv[]) +{ + ast_agi_send(agi->fd, chan, "200 result=0\n"); + return RESULT_FAILURE; +} + static int handle_waitfordigit(struct ast_channel *chan, AGI *agi, int argc, char *argv[]) { int res, to; @@ -2449,6 +2468,7 @@ static char usage_speechrecognize[] = */ static struct agi_command commands[] = { { { "answer", NULL }, handle_answer, NULL, NULL, 0 }, + { { "asyncagi", "break", NULL }, handle_asyncagi_break, NULL, NULL, 1 }, { { "channel", "status", NULL }, handle_channelstatus, NULL, NULL, 0 }, { { "database", "del", NULL }, handle_dbdel, NULL, NULL, 1 }, { { "database", "deltree", NULL }, handle_dbdeltree, NULL, NULL, 1 }, |