Index: apps/app_macro.c =================================================================== --- apps/app_macro.c (revision 176259) +++ apps/app_macro.c (working copy) @@ -50,6 +50,10 @@ /* 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" @@ -71,20 +75,23 @@ " memory stack allowance, macros are limited to 7 levels\n" " of nesting (macro calling macro calling macro, etc.); It\n" " may be possible that stack-intensive applications in deeply nested macros\n" -" could cause asterisk to crash earlier than this limit.\n"; +" could cause asterisk to crash earlier than this limit.\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" Index: apps/app_dial.c =================================================================== --- apps/app_dial.c (revision 176259) +++ apps/app_dial.c (working copy) @@ -171,6 +171,8 @@ " 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" Index: main/pbx.c =================================================================== --- main/pbx.c (revision 176259) +++ main/pbx.c (working copy) @@ -487,6 +487,9 @@ " 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" },