From 9c958df468a1ecbfd72341428eba5bdf03953cdd Mon Sep 17 00:00:00 2001 From: Tilghman Lesher Date: Mon, 4 May 2009 19:31:33 +0000 Subject: [PATCH] Merged revisions 192171 via svnmerge from https://origsvn.digium.com/svn/asterisk/trunk ........ r192171 | tilghman | 2009-05-04 14:29:13 -0500 (Mon, 04 May 2009) | 8 lines Restore 'asyncagi break' command to 1.6.1 and higher. (closes issue #14985) Reported by: nikkk Patches: 20090428__bug14985.diff.txt uploaded by tilghman (license 14) 20090429__bug14985__1.6.1.diff.txt uploaded by tilghman (license 14) Tested by: nikkk ........ git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.6.2@192173 65c4cc65-6c06-0410-ace0-fbb531ad65f3 --- configure | 32 ++++++++++++++++---------------- res/res_agi.c | 20 ++++++++++++++++++++ 2 files changed, 36 insertions(+), 16 deletions(-) diff --git a/configure b/configure index 9f6335783b..effbcddf3a 100755 --- a/configure +++ b/configure @@ -1,5 +1,5 @@ #! /bin/sh -# From configure.ac Revision: 190096 . +# From configure.ac Revision: 191370 . # Guess values for system-dependent variables and create Makefiles. # Generated by GNU Autoconf 2.61 for asterisk 1.6. # @@ -36504,8 +36504,8 @@ fi fi CPPFLAGS="${CPPFLAGS} ${LIBXML2_INCLUDE}" - saved_ldflags="${LDFLAGS}" - LDFLAGS="${LIBXML2_LIB}" + saved_libs="${LIBS}" + LIBS="${LIBXML2_LIB}" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -36560,7 +36560,7 @@ fi rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext CPPFLAGS="${saved_cppflags}" - LDFLAGS="${saved_ldflags}" + LIBS="${saved_libs}" else PBX_LIBXML2=1 @@ -38298,8 +38298,8 @@ fi fi CPPFLAGS="${CPPFLAGS} ${NETSNMP_INCLUDE}" - saved_ldflags="${LDFLAGS}" - LDFLAGS="${NETSNMP_LIB}" + saved_libs="${LIBS}" + LIBS="${NETSNMP_LIB}" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -38355,7 +38355,7 @@ fi rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext CPPFLAGS="${saved_cppflags}" - LDFLAGS="${saved_ldflags}" + LIBS="${saved_libs}" else PBX_NETSNMP=1 @@ -48714,8 +48714,8 @@ fi fi CPPFLAGS="${CPPFLAGS} ${GMIME_INCLUDE}" - saved_ldflags="${LDFLAGS}" - LDFLAGS="${GMIME_LIB}" + saved_libs="${LIBS}" + LIBS="${GMIME_LIB}" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -48769,7 +48769,7 @@ fi rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext CPPFLAGS="${saved_cppflags}" - LDFLAGS="${saved_ldflags}" + LIBS="${saved_libs}" else PBX_GMIME=1 @@ -51777,8 +51777,8 @@ fi fi CPPFLAGS="${CPPFLAGS} ${SDL_INCLUDE}" - saved_ldflags="${LDFLAGS}" - LDFLAGS="${SDL_LIB}" + saved_libs="${LIBS}" + LIBS="${SDL_LIB}" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -51832,7 +51832,7 @@ fi rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext CPPFLAGS="${saved_cppflags}" - LDFLAGS="${saved_ldflags}" + LIBS="${saved_libs}" else PBX_SDL=1 @@ -53173,8 +53173,8 @@ fi fi CPPFLAGS="${CPPFLAGS} ${GTK_INCLUDE}" - saved_ldflags="${LDFLAGS}" - LDFLAGS="${GTK_LIB}" + saved_libs="${LIBS}" + LIBS="${GTK_LIB}" cat >conftest.$ac_ext <<_ACEOF /* confdefs.h. */ @@ -53228,7 +53228,7 @@ fi rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \ conftest$ac_exeext conftest.$ac_ext CPPFLAGS="${saved_cppflags}" - LDFLAGS="${saved_ldflags}" + LIBS="${saved_libs}" else PBX_GTK=1 diff --git a/res/res_agi.c b/res/res_agi.c index efd8549b31..1018bf4ebd 100644 --- a/res/res_agi.c +++ b/res/res_agi.c @@ -78,6 +78,19 @@ ASTERISK_FILE_VERSION(__FILE__, "$Revision$") hangup + + + Interrupts Async AGI + + + + Interrupts expected flow of Async AGI commands and returns control to previous source + (typically, the PBX dialplan). + + + hangup + + 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 },