[asterisk-commits] tilghman: branch 1.4 r186775 - /branches/1.4/apps/app_macro.c

SVN commits to the Asterisk project asterisk-commits at lists.digium.com
Tue Apr 7 17:17:05 CDT 2009


Author: tilghman
Date: Tue Apr  7 17:16:50 2009
New Revision: 186775

URL: http://svn.digium.com/svn-view/asterisk?view=rev&rev=186775
Log:
Fix Macro documentation to match current (and intended) behavior.
(See -dev mailing list)

Modified:
    branches/1.4/apps/app_macro.c

Modified: branches/1.4/apps/app_macro.c
URL: http://svn.digium.com/svn-view/asterisk/branches/1.4/apps/app_macro.c?view=diff&rev=186775&r1=186774&r2=186775
==============================================================================
--- branches/1.4/apps/app_macro.c (original)
+++ branches/1.4/apps/app_macro.c Tue Apr  7 17:16:50 2009
@@ -61,17 +61,23 @@
 "will be returned at the location of the Goto.\n"
 "If ${MACRO_OFFSET} is set at termination, Macro will attempt to continue\n"
 "at priority MACRO_OFFSET + N + 1 if such a step exists, and N + 1 otherwise.\n"
-"Extensions: While a macro is being executed, it becomes the current context.\n"
-"            This means that if a hangup occurs, for instance, that the macro\n"
-"            will be searched for an 'h' extension, NOT the context from which\n"
-"            the macro was called. So, make sure to define all appropriate\n"
-"            extensions in your macro! (you can use 'catch' in AEL) \n"
 "WARNING: Because of the way Macro is implemented (it executes the priorities\n"
 "         contained within it via sub-engine), and a fixed per-thread\n"
 "         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";
+"         may be possible that stack-intensive applications in deeply nested\n"
+"         macros could cause asterisk to crash earlier than this limit.\n"
+"NOTE: a bug existed in earlier versions of Asterisk that caused Macro not\n"
+"to reset its context and extension correctly upon exit.  This meant that\n"
+"the 'h' extension within a Macro sometimes would execute, when the dialplan\n"
+"exited while that Macro was running.  However, since this bug has been in\n"
+"Asterisk for so long, users started to depend upon this behavior.  Therefore,\n"
+"when a channel hangs up when in the midst of executing a Macro, the macro\n"
+"context will first be checked for an 'h' extension, followed by the main\n"
+"context from which the Macro was originally called.  This behavior in 1.4\n"
+"exists only for compatibility with earlier versions.  You are strongly\n"
+"encouraged to make use of the 'h' extension only in the context from which\n"
+"Macro was originally called.\n";
 
 static char *if_descrip =
 "  MacroIf(<expr>?macroname_a[|arg1][:macroname_b[|arg1]])\n"




More information about the asterisk-commits mailing list