From 2f92da1e7e83f0fb9c33c2a8dc6e8b47b94745f4 Mon Sep 17 00:00:00 2001 From: "Eliel C. Sardanons" Date: Mon, 18 May 2009 15:13:34 +0000 Subject: [PATCH] Merged revisions 195162 via svnmerge from https://origsvn.digium.com/svn/asterisk/trunk ........ r195162 | eliel | 2009-05-18 10:45:23 -0400 (Mon, 18 May 2009) | 9 lines Warn about the use of the application WaitExten() within a Macro(). Update applications documentation to warn the user about the use of the WaitExten() application within a Macro(). Recommend the use of Read() instead. (closes issue #14444) Reported by: ewieling ........ git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.6.1@195167 65c4cc65-6c06-0410-ace0-fbb531ad65f3 --- apps/app_dial.c | 2 ++ apps/app_macro.c | 13 ++++++++++--- main/pbx.c | 3 +++ 3 files changed, 15 insertions(+), 3 deletions(-) diff --git a/apps/app_dial.c b/apps/app_dial.c index 9f00347a77..5658e9127e 100644 --- a/apps/app_dial.c +++ b/apps/app_dial.c @@ -168,6 +168,8 @@ static char *descrip = " You cannot use any additional action post answer options in conjunction\n" " with this option. Also, pbx services are not run on the peer (called) channel,\n" " so you will not be able to set timeouts via the TIMEOUT() function in this macro.\n" +" Be aware of the limitations that macros have, specifically with regards to use of\n" +" the WaitExten application. For more information, see the documentation for Macro()\n" " n - This option is a modifier for the screen/privacy mode. It specifies\n" " that no introductions are to be saved in the priv-callerintros\n" " directory.\n" diff --git a/apps/app_macro.c b/apps/app_macro.c index bbef7683a3..f1d87b3540 100644 --- a/apps/app_macro.c +++ b/apps/app_macro.c @@ -42,6 +42,10 @@ ASTERISK_FILE_VERSION(__FILE__, "$Revision$") /* special result value used to force macro exit */ #define MACRO_EXIT_RESULT 1024 +#define WAITEXTENWARNING "Use of the application WaitExten within a macro will not function as expected.\n" \ + "Please use the Read application in order to read DTMF from a channel currently\n" \ + "executing a macro.\n" + static char *descrip = " Macro(macroname,arg1,arg2...): Executes a macro using the context\n" "'macro-', jumping to the 's' extension of that context and\n" @@ -61,20 +65,23 @@ static char *descrip = " Asterisk to crash earlier than this limit. It is advised that if you\n" " need to deeply nest macro calls, that you use the Gosub application\n" " (now allows arguments like a Macro) with explict Return() calls\n" -" instead.\n"; +" instead.\n" +WAITEXTENWARNING; static char *if_descrip = " MacroIf(?macroname_a[,arg1][:macroname_b[,arg1]])\n" "Executes macro defined in if is true\n" "(otherwise if provided)\n" -"Arguments and return values as in application Macro()\n"; +"Arguments and return values as in application Macro()\n" +WAITEXTENWARNING; static char *exclusive_descrip = " MacroExclusive(macroname,arg1,arg2...):\n" "Executes macro defined in the context 'macro-macroname'\n" "Only one call at a time may run the macro.\n" "(we'll wait if another call is busy executing in the Macro)\n" -"Arguments and return values as in application Macro()\n"; +"Arguments and return values as in application Macro()\n" +WAITEXTENWARNING; static char *exit_descrip = " MacroExit():\n" diff --git a/main/pbx.c b/main/pbx.c index 4c9ecb368e..b4e5f1189a 100644 --- a/main/pbx.c +++ b/main/pbx.c @@ -722,6 +722,9 @@ static struct pbx_builtin { " Options:\n" " m[(x)] - Provide music on hold to the caller while waiting for an extension.\n" " Optionally, specify the class for music on hold within parenthesis.\n" + "Warning: Attempting to use this application from within a Macro will not work as\n" + "desired. The Read() application is recommended as an alternative to WaitExten when\n" + "used from a macro\n" "See Also: Playback(application), Background(application).\n" }, };