This commits the changes to AEL to use the gosub-with-args from Tilghman to perform...
authorSteve Murphy <murf@digium.com>
Wed, 27 Sep 2006 03:45:22 +0000 (03:45 +0000)
committerSteve Murphy <murf@digium.com>
Wed, 27 Sep 2006 03:45:22 +0000 (03:45 +0000)
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@43747 65c4cc65-6c06-0410-ace0-fbb531ad65f3

14 files changed:
CHANGES
pbx/ael/ael-test/ael-test11/extensions.ael
pbx/ael/ael-test/ael-test3/extensions.ael
pbx/ael/ael-test/ael-test5/extensions.ael
pbx/ael/ael-test/ref.ael-ntest10
pbx/ael/ael-test/ref.ael-test1
pbx/ael/ael-test/ref.ael-test2
pbx/ael/ael-test/ref.ael-test3
pbx/ael/ael-test/ref.ael-test4
pbx/ael/ael-test/ref.ael-test5
pbx/ael/ael-test/ref.ael-test6
pbx/ael/ael-test/ref.ael-test7
pbx/ael/ael-test/ref.ael-vtest13
pbx/pbx_ael.c

diff --git a/CHANGES b/CHANGES
index 04d0294..db9c175 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -5,3 +5,11 @@ Changes since Asterisk 1.4-beta was branched:
   * Ability to set process limits without restarting Asterisk
   * SS7 support in chan_zap (via libss7 library)
   * Proper codec support in chan_skinny.
+  * AEL upgraded to use the Gosub with Arguments instead
+     of Macro application, to hopefully reduce the problems
+     seen with the artificially low stack ceiling that 
+     Macro bumps into. Macros can only call other Macros
+     to a depth of 7. Tests run using gosub, show depths
+     limited only by virtual memory. A small test demonstrated
+     recursive call depths of 100,000 without problems.
+
index 886a51e..a6b2226 100644 (file)
@@ -53,4 +53,5 @@ ptr1: // <-- duplicate label (macros are about the equiv of an extension)
          Noop(esac) ;
          }
    }
+       return;
 }
index dd77c05..14b24ce 100755 (executable)
@@ -14,6 +14,7 @@ globals
 macro std-exten( ext , dev ) 
 {
         Dial(${dev}/${ext},20);
+       goto privacyManagerFailed|s|begin;
         switch(${DIALSTATUS}) 
                {
         case BUSY:
index 304275a..00a91fd 100644 (file)
@@ -10,7 +10,7 @@ context hd-queue {
 
        0 => goto default|0|1;
        1 => {
-               Dial(u41950@svm1.shsu.edu);
+               Dial(u41950@ixtlchochitl.zvbwu.edu);
                Congestion(10);
                Hangup;
        };
@@ -116,12 +116,13 @@ context huntsville-calling {
 macro dialout( number ) {
        Realtime(call_info,exten,${CALLERIDNUM:5},mon_);
        if ("${mon_monitor}" = "YES") {
-               Dial(SIP/${number}@sgw1.shsu.edu,,wW);
-               Dial(SIP/${number}@sgw2.shsu.edu,,wW);
+               Dial(SIP/${number}@zgw1.zvbwu.edu,,wW);
+               Dial(SIP/${number}@zgw2.zvbwu.edu,,wW);
        } else {
-               Dial(SIP/${number}@sgw1.shsu.edu);
-               Dial(SIP/${number}@sgw2.shsu.edu);
+               Dial(SIP/${number}@zgw1.zvbwu.edu);
+               Dial(SIP/${number}@zgw2.zvbwu.edu);
        };
+       return;
 };
 
 // Standard extension macro:
@@ -151,7 +152,7 @@ macro stdexten( ext ) {
                        &checkcfb(${ext});
                        break;
                case "CHANUNAVAIL":
-                       Dial(IAX2/asterisk:password@scm2.shsu.edu/${info_forwardto},25,wW);
+                       Dial(IAX2/asterisk:password@ixtlchochitl.zvbwu.edu/${info_forwardto},25,wW);
                        MailboxExists(${ext});
 //                     if ("${VMBOXEXISTSSTATUS}" = "FAILED") {
 //                             Congestion(10);
@@ -182,7 +183,7 @@ macro stdexten( ext ) {
 };
 
 macro uvm( ext ) {
-       Dial(SIP/u${ext}@svm1.shsu.edu);
+       Dial(SIP/u${ext}@ixtlchochitl.zvbwu.edu);
        Playback(im-sorry);
        Playback(voice-mail-system);
        Playback(down);
@@ -191,7 +192,7 @@ macro uvm( ext ) {
 };
 
 macro bvm( ext ) {
-       Dial(SIP/b${ext}@svm1.shsu.edu);
+       Dial(SIP/b${ext}@ixtlchochitl.zvbwu.edu);
        Playback(im-sorry);
        Playback(voice-mail-system);
        Playback(down);
@@ -204,6 +205,7 @@ macro checkdnd( ext ) {
                NoOp(Do Not Disturb is not active);
        } else
                &uvm(${ext});
+       return;
 };
 
 macro checkcf( ext ) {
@@ -213,6 +215,7 @@ macro checkcf( ext ) {
                } else {
                        Set(info_forwardto=${ext}&SIP/${ext}w);
                };
+       return;
 };
 
 macro checkcfb( ext ) {
@@ -227,6 +230,7 @@ macro checkcfb( ext ) {
                Hangup;
        };
        &stdexten(${info_forwardbusy});
+       return;
 };
 
 ///////////////////////////////////////////////////////////////////////////////
@@ -691,6 +695,7 @@ macro check-psd-exists ( ext ) {
                System(/usr/local/bin/create_psd.sh ${ext});
        } else
                NoOp(PSD set for ${ext});
+       return;
 };
 
 context app-psd {
@@ -798,7 +803,7 @@ context vm-include {
 
 context vm-direct {
        s => {
-               Dial(SIP/5555@svm1.shsu.edu,20);
+               Dial(SIP/5555@ixtlchochitl.zvbwu.edu,20);
                Playback(im-sorry);
                Playback(voice-mail-system);
                Playback(down);
@@ -810,7 +815,7 @@ context vm-direct {
 
 context vm-extension {
        s => {
-               Dial(SIP/62100@svm1.shsu.edu,20);
+               Dial(SIP/62100@ixtlchochitl.zvbwu.edu,20);
                Playback(im-sorry);
                Playback(voice-mail-system);
                Playback(down);
@@ -822,7 +827,7 @@ context vm-extension {
 
 context vm-directory {
        5556 => {
-               Dial(SIP/5556@svm1.shsu.edu);
+               Dial(SIP/5556@ixtlchochitl.zvbwu.edu);
                Playback(im-sorry);
                Playback(voice-mail-system);
                Playback(down);
index e7eaa5b..c26e393 100644 (file)
 
 
 (You can use the -w option to dump extensions.conf format to extensions.conf.aeldump)
-Executed ast_cli_register_multiple();
-LOG: lev:2 file:../pbx/pbx_ael.c  line:3747 func: pbx_load_module  Starting AEL load process.
-LOG: lev:2 file:../pbx/pbx_ael.c  line:3754 func: pbx_load_module  AEL load process: calculated config file name './extensions.ael'.
-LOG: lev:2 file:../pbx/pbx_ael.c  line:3757 func: pbx_load_module  AEL load process: parsed config file name './extensions.ael'.
-LOG: lev:2 file:../pbx/pbx_ael.c  line:3760 func: pbx_load_module  AEL load process: checked config file name './extensions.ael'.
-Executed ast_context_create(conts, name=macro-endsess, registrar=pbx_ael);
-Executed ast_context_create(conts, name=macro-nullchk, registrar=pbx_ael);
-Executed ast_context_create(conts, name=macro-endcall, registrar=pbx_ael);
-Executed ast_context_create(conts, name=macro-endcall2, registrar=pbx_ael);
-Executed ast_context_create(conts, name=macro-endcall3, registrar=pbx_ael);
-Executed ast_context_create(conts, name=macro-endcall4, registrar=pbx_ael);
-Executed ast_context_create(conts, name=macro-endcall5, registrar=pbx_ael);
-Executed ast_add_extension2(context=macro-endsess, rep=0, exten=s, priority=1, label=(null), callerid=(null), appl=NoOp, data=hithere, FREE, registrar=pbx_ael);
-Executed ast_add_extension2(context=macro-nullchk, rep=0, exten=s, priority=1, label=(null), callerid=(null), appl=Set, data=type=${ARG1}, FREE, registrar=pbx_ael);
-Executed ast_add_extension2(context=macro-nullchk, rep=0, exten=s, priority=2, label=(null), callerid=(null), appl=NoOp, data=${type} is this, FREE, registrar=pbx_ael);
-Executed ast_add_extension2(context=macro-endcall, rep=0, exten=s, priority=1, label=(null), callerid=(null), appl=Set, data=type=${ARG1}, FREE, registrar=pbx_ael);
-Executed ast_add_extension2(context=macro-endcall, rep=0, exten=s, priority=2, label=(null), callerid=(null), appl=Goto, data=sw-1-${type}|1, FREE, registrar=pbx_ael);
-Executed ast_add_extension2(context=macro-endcall, rep=0, exten=s, priority=3, label=(null), callerid=(null), appl=NoOp, data=Finish switch-endcall-1, FREE, registrar=pbx_ael);
-Executed ast_add_extension2(context=macro-endcall, rep=0, exten=sw-1-out, priority=1, label=(null), callerid=(null), appl=Macro, data=nullchk|callid, FREE, registrar=pbx_ael);
-Executed ast_add_extension2(context=macro-endcall, rep=0, exten=sw-1-out, priority=2, label=(null), callerid=(null), appl=GotoIf, data=$[${testnotnull}]?3:6, FREE, registrar=pbx_ael);
-Executed ast_add_extension2(context=macro-endcall, rep=0, exten=sw-1-out, priority=3, label=(null), callerid=(null), appl=Macro, data=endsess, FREE, registrar=pbx_ael);
-Executed ast_add_extension2(context=macro-endcall, rep=0, exten=sw-1-out, priority=4, label=(null), callerid=(null), appl=Goto, data=sw-1-out|ptr1, FREE, registrar=pbx_ael);
-Executed ast_add_extension2(context=macro-endcall, rep=0, exten=sw-1-out, priority=5, label=(null), callerid=(null), appl=Goto, data=8, FREE, registrar=pbx_ael);
-Executed ast_add_extension2(context=macro-endcall, rep=0, exten=sw-1-out, priority=6, label=ptr1, callerid=(null), appl=Softhangup, data=${CHANNEL}, FREE, registrar=pbx_ael);
-Executed ast_add_extension2(context=macro-endcall, rep=0, exten=sw-1-out, priority=7, label=(null), callerid=(null), appl=Goto, data=s|3, FREE, registrar=pbx_ael);
-Executed ast_add_extension2(context=macro-endcall, rep=0, exten=sw-1-out, priority=8, label=(null), callerid=(null), appl=NoOp, data=Finish if-sw-endcall-out-1-2, FREE, registrar=pbx_ael);
-Executed ast_add_extension2(context=macro-endcall, rep=0, exten=sw-1-out, priority=9, label=(null), callerid=(null), appl=Noop, data=esac, FREE, registrar=pbx_ael);
-Executed ast_add_extension2(context=macro-endcall, rep=0, exten=sw-1-out, priority=10, label=(null), callerid=(null), appl=Goto, data=s|3, FREE, registrar=pbx_ael);
-Executed ast_add_extension2(context=macro-endcall2, rep=0, exten=s, priority=1, label=(null), callerid=(null), appl=Set, data=type=${ARG1}, FREE, registrar=pbx_ael);
-Executed ast_add_extension2(context=macro-endcall2, rep=0, exten=s, priority=2, label=(null), callerid=(null), appl=Goto, data=sw-3-${type}|1, FREE, registrar=pbx_ael);
-Executed ast_add_extension2(context=macro-endcall2, rep=0, exten=s, priority=3, label=(null), callerid=(null), appl=NoOp, data=Finish switch-endcall2-3, FREE, registrar=pbx_ael);
-Executed ast_add_extension2(context=macro-endcall2, rep=0, exten=sw-3-out2, priority=1, label=ptr1, callerid=(null), appl=Softhangup, data=${CHANNEL}, FREE, registrar=pbx_ael);
-Executed ast_add_extension2(context=macro-endcall2, rep=0, exten=sw-3-out2, priority=2, label=(null), callerid=(null), appl=Goto, data=s|3, FREE, registrar=pbx_ael);
-Executed ast_add_extension2(context=macro-endcall2, rep=0, exten=sw-3-out2, priority=3, label=(null), callerid=(null), appl=Noop, data=esac, FREE, registrar=pbx_ael);
-Executed ast_add_extension2(context=macro-endcall2, rep=0, exten=sw-3-out2, priority=4, label=(null), callerid=(null), appl=Goto, data=s|3, FREE, registrar=pbx_ael);
-Executed ast_add_extension2(context=macro-endcall2, rep=0, exten=sw-3-out, priority=1, label=(null), callerid=(null), appl=Macro, data=nullchk|callid, FREE, registrar=pbx_ael);
-Executed ast_add_extension2(context=macro-endcall2, rep=0, exten=sw-3-out, priority=2, label=(null), callerid=(null), appl=GotoIf, data=$[${testnotnull}]?3:5, FREE, registrar=pbx_ael);
-Executed ast_add_extension2(context=macro-endcall2, rep=0, exten=sw-3-out, priority=3, label=(null), callerid=(null), appl=Macro, data=endsess, FREE, registrar=pbx_ael);
-Executed ast_add_extension2(context=macro-endcall2, rep=0, exten=sw-3-out, priority=4, label=(null), callerid=(null), appl=Goto, data=sw-3-out2|ptr1, FREE, registrar=pbx_ael);
-Executed ast_add_extension2(context=macro-endcall2, rep=0, exten=sw-3-out, priority=5, label=(null), callerid=(null), appl=NoOp, data=Finish if-sw-endcall2-out-3-4, FREE, registrar=pbx_ael);
-Executed ast_add_extension2(context=macro-endcall2, rep=0, exten=sw-3-out, priority=6, label=(null), callerid=(null), appl=Goto, data=sw-3-out2|1, FREE, registrar=pbx_ael);
-Executed ast_add_extension2(context=macro-endcall3, rep=0, exten=s, priority=1, label=(null), callerid=(null), appl=Set, data=type=${ARG1}, FREE, registrar=pbx_ael);
-Executed ast_add_extension2(context=macro-endcall3, rep=0, exten=s, priority=2, label=(null), callerid=(null), appl=Goto, data=sw-5-${type}|1, FREE, registrar=pbx_ael);
-Executed ast_add_extension2(context=macro-endcall3, rep=0, exten=s, priority=3, label=(null), callerid=(null), appl=NoOp, data=Finish switch-endcall3-5, FREE, registrar=pbx_ael);
-Executed ast_add_extension2(context=macro-endcall3, rep=0, exten=s, priority=4, label=(null), callerid=(null), appl=GotoIf, data=$[${testnotnull}]?5:6, FREE, registrar=pbx_ael);
-Executed ast_add_extension2(context=macro-endcall3, rep=0, exten=s, priority=5, label=(null), callerid=(null), appl=Goto, data=sw-8-out|ptr1, FREE, registrar=pbx_ael);
-Executed ast_add_extension2(context=macro-endcall3, rep=0, exten=s, priority=6, label=(null), callerid=(null), appl=NoOp, data=Finish if-endcall3-7, FREE, registrar=pbx_ael);
-Executed ast_add_extension2(context=macro-endcall3, rep=0, exten=s, priority=7, label=(null), callerid=(null), appl=Goto, data=sw-8-${type}|1, FREE, registrar=pbx_ael);
-Executed ast_add_extension2(context=macro-endcall3, rep=0, exten=s, priority=8, label=(null), callerid=(null), appl=NoOp, data=Finish switch-endcall3-8, FREE, registrar=pbx_ael);
-Executed ast_add_extension2(context=macro-endcall3, rep=0, exten=sw-8-out, priority=1, label=(null), callerid=(null), appl=GotoIf, data=$[${testnotnull}]?2:4, FREE, registrar=pbx_ael);
-Executed ast_add_extension2(context=macro-endcall3, rep=0, exten=sw-8-out, priority=2, label=ptr1, callerid=(null), appl=Softhangup, data=${CHANNEL}, FREE, registrar=pbx_ael);
-Executed ast_add_extension2(context=macro-endcall3, rep=0, exten=sw-8-out, priority=3, label=(null), callerid=(null), appl=Goto, data=s|8, FREE, registrar=pbx_ael);
-Executed ast_add_extension2(context=macro-endcall3, rep=0, exten=sw-8-out, priority=4, label=(null), callerid=(null), appl=NoOp, data=Finish if-sw-endcall3-out-8-9, FREE, registrar=pbx_ael);
-Executed ast_add_extension2(context=macro-endcall3, rep=0, exten=sw-8-out, priority=5, label=(null), callerid=(null), appl=Noop, data=esac, FREE, registrar=pbx_ael);
-Executed ast_add_extension2(context=macro-endcall3, rep=0, exten=sw-8-out, priority=6, label=(null), callerid=(null), appl=Goto, data=s|8, FREE, registrar=pbx_ael);
-Executed ast_add_extension2(context=macro-endcall3, rep=0, exten=sw-5-out, priority=1, label=(null), callerid=(null), appl=Macro, data=nullchk|callid, FREE, registrar=pbx_ael);
-Executed ast_add_extension2(context=macro-endcall3, rep=0, exten=sw-5-out, priority=2, label=(null), callerid=(null), appl=GotoIf, data=$[${testnotnull}]?3:5, FREE, registrar=pbx_ael);
-Executed ast_add_extension2(context=macro-endcall3, rep=0, exten=sw-5-out, priority=3, label=(null), callerid=(null), appl=Macro, data=endsess, FREE, registrar=pbx_ael);
-Executed ast_add_extension2(context=macro-endcall3, rep=0, exten=sw-5-out, priority=4, label=(null), callerid=(null), appl=Goto, data=sw-8-out|ptr1, FREE, registrar=pbx_ael);
-Executed ast_add_extension2(context=macro-endcall3, rep=0, exten=sw-5-out, priority=5, label=(null), callerid=(null), appl=NoOp, data=Finish if-sw-endcall3-out-5-6, FREE, registrar=pbx_ael);
-Executed ast_add_extension2(context=macro-endcall3, rep=0, exten=sw-5-out, priority=6, label=(null), callerid=(null), appl=Noop, data=esac, FREE, registrar=pbx_ael);
-Executed ast_add_extension2(context=macro-endcall3, rep=0, exten=sw-5-out, priority=7, label=(null), callerid=(null), appl=Goto, data=s|3, FREE, registrar=pbx_ael);
-Executed ast_add_extension2(context=macro-endcall4, rep=0, exten=s, priority=1, label=(null), callerid=(null), appl=Set, data=type=${ARG1}, FREE, registrar=pbx_ael);
-Executed ast_add_extension2(context=macro-endcall4, rep=0, exten=s, priority=2, label=(null), callerid=(null), appl=Goto, data=sw-10-${type}|1, FREE, registrar=pbx_ael);
-Executed ast_add_extension2(context=macro-endcall4, rep=0, exten=s, priority=3, label=(null), callerid=(null), appl=NoOp, data=Finish switch-endcall4-10, FREE, registrar=pbx_ael);
-Executed ast_add_extension2(context=macro-endcall4, rep=0, exten=s, priority=4, label=(null), callerid=(null), appl=GotoIf, data=$[${testnotnull}]?5:6, FREE, registrar=pbx_ael);
-Executed ast_add_extension2(context=macro-endcall4, rep=0, exten=s, priority=5, label=(null), callerid=(null), appl=Goto, data=sw-14-in|ptr1, FREE, registrar=pbx_ael);
-Executed ast_add_extension2(context=macro-endcall4, rep=0, exten=s, priority=6, label=(null), callerid=(null), appl=NoOp, data=Finish if-endcall4-12, FREE, registrar=pbx_ael);
-Executed ast_add_extension2(context=macro-endcall4, rep=0, exten=s, priority=7, label=(null), callerid=(null), appl=Goto, data=sw-13-${type}|1, FREE, registrar=pbx_ael);
-Executed ast_add_extension2(context=macro-endcall4, rep=0, exten=s, priority=8, label=(null), callerid=(null), appl=NoOp, data=Finish switch-endcall4-13, FREE, registrar=pbx_ael);
-Executed ast_add_extension2(context=macro-endcall4, rep=0, exten=sw-13-out, priority=1, label=(null), callerid=(null), appl=Goto, data=sw-14-${type}|1, FREE, registrar=pbx_ael);
-Executed ast_add_extension2(context=macro-endcall4, rep=0, exten=sw-13-out, priority=2, label=(null), callerid=(null), appl=NoOp, data=Finish switch-sw-endcall4-out-13-14, FREE, registrar=pbx_ael);
-Executed ast_add_extension2(context=macro-endcall4, rep=0, exten=sw-13-out, priority=3, label=(null), callerid=(null), appl=Goto, data=s|8, FREE, registrar=pbx_ael);
-Executed ast_add_extension2(context=macro-endcall4, rep=0, exten=sw-14-in, priority=1, label=(null), callerid=(null), appl=GotoIf, data=$[${testnotnull}]?2:4, FREE, registrar=pbx_ael);
-Executed ast_add_extension2(context=macro-endcall4, rep=0, exten=sw-14-in, priority=2, label=ptr1, callerid=(null), appl=Softhangup, data=${CHANNEL}, FREE, registrar=pbx_ael);
-Executed ast_add_extension2(context=macro-endcall4, rep=0, exten=sw-14-in, priority=3, label=(null), callerid=(null), appl=Goto, data=sw-13-out|2, FREE, registrar=pbx_ael);
-Executed ast_add_extension2(context=macro-endcall4, rep=0, exten=sw-14-in, priority=4, label=(null), callerid=(null), appl=NoOp, data=Finish if-sw-sw-endcall4-out-13-in-14-15, FREE, registrar=pbx_ael);
-Executed ast_add_extension2(context=macro-endcall4, rep=0, exten=sw-14-in, priority=5, label=(null), callerid=(null), appl=Noop, data=esac, FREE, registrar=pbx_ael);
-Executed ast_add_extension2(context=macro-endcall4, rep=0, exten=sw-14-in, priority=6, label=(null), callerid=(null), appl=Goto, data=sw-13-out|2, FREE, registrar=pbx_ael);
-Executed ast_add_extension2(context=macro-endcall4, rep=0, exten=sw-10-out, priority=1, label=(null), callerid=(null), appl=Macro, data=nullchk|callid, FREE, registrar=pbx_ael);
-Executed ast_add_extension2(context=macro-endcall4, rep=0, exten=sw-10-out, priority=2, label=(null), callerid=(null), appl=GotoIf, data=$[${testnotnull}]?3:5, FREE, registrar=pbx_ael);
-Executed ast_add_extension2(context=macro-endcall4, rep=0, exten=sw-10-out, priority=3, label=(null), callerid=(null), appl=Macro, data=endsess, FREE, registrar=pbx_ael);
-Executed ast_add_extension2(context=macro-endcall4, rep=0, exten=sw-10-out, priority=4, label=(null), callerid=(null), appl=Goto, data=sw-14-in|ptr1, FREE, registrar=pbx_ael);
-Executed ast_add_extension2(context=macro-endcall4, rep=0, exten=sw-10-out, priority=5, label=(null), callerid=(null), appl=NoOp, data=Finish if-sw-endcall4-out-10-11, FREE, registrar=pbx_ael);
-Executed ast_add_extension2(context=macro-endcall4, rep=0, exten=sw-10-out, priority=6, label=(null), callerid=(null), appl=Noop, data=esac, FREE, registrar=pbx_ael);
-Executed ast_add_extension2(context=macro-endcall4, rep=0, exten=sw-10-out, priority=7, label=(null), callerid=(null), appl=Goto, data=s|3, FREE, registrar=pbx_ael);
-Executed ast_add_extension2(context=macro-endcall5, rep=0, exten=s, priority=1, label=(null), callerid=(null), appl=Set, data=type=${ARG1}, FREE, registrar=pbx_ael);
-Executed ast_add_extension2(context=macro-endcall5, rep=0, exten=s, priority=2, label=(null), callerid=(null), appl=Goto, data=sw-16-${type}|1, FREE, registrar=pbx_ael);
-Executed ast_add_extension2(context=macro-endcall5, rep=0, exten=s, priority=3, label=(null), callerid=(null), appl=NoOp, data=Finish switch-endcall5-16, FREE, registrar=pbx_ael);
-Executed ast_add_extension2(context=macro-endcall5, rep=0, exten=s, priority=4, label=(null), callerid=(null), appl=GotoIf, data=$[${testnotnull}]?5:6, FREE, registrar=pbx_ael);
-Executed ast_add_extension2(context=macro-endcall5, rep=0, exten=s, priority=5, label=(null), callerid=(null), appl=Goto, data=sw-21-in|ptr1, FREE, registrar=pbx_ael);
-Executed ast_add_extension2(context=macro-endcall5, rep=0, exten=s, priority=6, label=(null), callerid=(null), appl=NoOp, data=Finish if-endcall5-19, FREE, registrar=pbx_ael);
-Executed ast_add_extension2(context=macro-endcall5, rep=0, exten=s, priority=7, label=(null), callerid=(null), appl=Goto, data=sw-20-${type}|1, FREE, registrar=pbx_ael);
-Executed ast_add_extension2(context=macro-endcall5, rep=0, exten=s, priority=8, label=(null), callerid=(null), appl=NoOp, data=Finish switch-endcall5-20, FREE, registrar=pbx_ael);
-Executed ast_add_extension2(context=macro-endcall5, rep=0, exten=sw-20-out, priority=1, label=(null), callerid=(null), appl=Goto, data=sw-21-${type}|1, FREE, registrar=pbx_ael);
-Executed ast_add_extension2(context=macro-endcall5, rep=0, exten=sw-20-out, priority=2, label=(null), callerid=(null), appl=NoOp, data=Finish switch-sw-endcall5-out-20-21, FREE, registrar=pbx_ael);
-Executed ast_add_extension2(context=macro-endcall5, rep=0, exten=sw-20-out, priority=3, label=(null), callerid=(null), appl=Goto, data=s|8, FREE, registrar=pbx_ael);
-Executed ast_add_extension2(context=macro-endcall5, rep=0, exten=sw-21-in, priority=1, label=(null), callerid=(null), appl=GotoIf, data=$[${testnotnull}]?2:4, FREE, registrar=pbx_ael);
-Executed ast_add_extension2(context=macro-endcall5, rep=0, exten=sw-21-in, priority=2, label=ptr1, callerid=(null), appl=Softhangup, data=${CHANNEL}, FREE, registrar=pbx_ael);
-Executed ast_add_extension2(context=macro-endcall5, rep=0, exten=sw-21-in, priority=3, label=(null), callerid=(null), appl=Goto, data=sw-20-out|2, FREE, registrar=pbx_ael);
-Executed ast_add_extension2(context=macro-endcall5, rep=0, exten=sw-21-in, priority=4, label=(null), callerid=(null), appl=NoOp, data=Finish if-sw-sw-endcall5-out-20-in-21-22, FREE, registrar=pbx_ael);
-Executed ast_add_extension2(context=macro-endcall5, rep=0, exten=sw-21-in, priority=5, label=(null), callerid=(null), appl=Noop, data=esac, FREE, registrar=pbx_ael);
-Executed ast_add_extension2(context=macro-endcall5, rep=0, exten=sw-21-in, priority=6, label=(null), callerid=(null), appl=Goto, data=sw-20-out|2, FREE, registrar=pbx_ael);
-Executed ast_add_extension2(context=macro-endcall5, rep=0, exten=sw-16-in, priority=1, label=(null), callerid=(null), appl=Macro, data=nullchk|callid, FREE, registrar=pbx_ael);
-Executed ast_add_extension2(context=macro-endcall5, rep=0, exten=sw-16-in, priority=2, label=ptr2, callerid=(null), appl=GotoIf, data=$[${testnotnull}]?3:5, FREE, registrar=pbx_ael);
-Executed ast_add_extension2(context=macro-endcall5, rep=0, exten=sw-16-in, priority=3, label=(null), callerid=(null), appl=Macro, data=endsess, FREE, registrar=pbx_ael);
-Executed ast_add_extension2(context=macro-endcall5, rep=0, exten=sw-16-in, priority=4, label=(null), callerid=(null), appl=Goto, data=sw-21-in|ptr1, FREE, registrar=pbx_ael);
-Executed ast_add_extension2(context=macro-endcall5, rep=0, exten=sw-16-in, priority=5, label=(null), callerid=(null), appl=NoOp, data=Finish if-sw-endcall5-in-16-18, FREE, registrar=pbx_ael);
-Executed ast_add_extension2(context=macro-endcall5, rep=0, exten=sw-16-in, priority=6, label=(null), callerid=(null), appl=Noop, data=esac, FREE, registrar=pbx_ael);
-Executed ast_add_extension2(context=macro-endcall5, rep=0, exten=sw-16-in, priority=7, label=(null), callerid=(null), appl=Goto, data=s|3, FREE, registrar=pbx_ael);
-Executed ast_add_extension2(context=macro-endcall5, rep=0, exten=sw-16-out, priority=1, label=(null), callerid=(null), appl=Macro, data=nullchk|callid, FREE, registrar=pbx_ael);
-Executed ast_add_extension2(context=macro-endcall5, rep=0, exten=sw-16-out, priority=2, label=(null), callerid=(null), appl=GotoIf, data=$[${testnotnull}]?3:5, FREE, registrar=pbx_ael);
-Executed ast_add_extension2(context=macro-endcall5, rep=0, exten=sw-16-out, priority=3, label=(null), callerid=(null), appl=Macro, data=endsess, FREE, registrar=pbx_ael);
-Executed ast_add_extension2(context=macro-endcall5, rep=0, exten=sw-16-out, priority=4, label=(null), callerid=(null), appl=Goto, data=sw-21-in|ptr1, FREE, registrar=pbx_ael);
-Executed ast_add_extension2(context=macro-endcall5, rep=0, exten=sw-16-out, priority=5, label=(null), callerid=(null), appl=NoOp, data=Finish if-sw-endcall5-out-16-17, FREE, registrar=pbx_ael);
-Executed ast_add_extension2(context=macro-endcall5, rep=0, exten=sw-16-out, priority=6, label=(null), callerid=(null), appl=Goto, data=sw-16-in|1, FREE, registrar=pbx_ael);
-LOG: lev:2 file:../pbx/pbx_ael.c  line:3762 func: pbx_load_module  AEL load process: compiled config file name './extensions.ael'.
+LOG: lev:2 file:../pbx/pbx_ael.c  line:3850 func: pbx_load_module  Starting AEL load process.
+LOG: lev:2 file:../pbx/pbx_ael.c  line:3857 func: pbx_load_module  AEL load process: calculated config file name './extensions.ael'.
+LOG: lev:2 file:../pbx/pbx_ael.c  line:3860 func: pbx_load_module  AEL load process: parsed config file name './extensions.ael'.
+LOG: lev:3 file:../pbx/pbx_ael.c  line:712 func: check_macro_returns  Warning: file ./extensions.ael, line 1-4: The macro endsess does not end with a return; I will insert one.
+LOG: lev:3 file:../pbx/pbx_ael.c  line:712 func: check_macro_returns  Warning: file ./extensions.ael, line 6-9: The macro nullchk does not end with a return; I will insert one.
+LOG: lev:3 file:../pbx/pbx_ael.c  line:712 func: check_macro_returns  Warning: file ./extensions.ael, line 11-26: The macro endcall does not end with a return; I will insert one.
+LOG: lev:3 file:../pbx/pbx_ael.c  line:712 func: check_macro_returns  Warning: file ./extensions.ael, line 28-44: The macro endcall2 does not end with a return; I will insert one.
+LOG: lev:3 file:../pbx/pbx_ael.c  line:712 func: check_macro_returns  Warning: file ./extensions.ael, line 46-68: The macro endcall3 does not end with a return; I will insert one.
+LOG: lev:3 file:../pbx/pbx_ael.c  line:712 func: check_macro_returns  Warning: file ./extensions.ael, line 70-96: The macro endcall4 does not end with a return; I will insert one.
+LOG: lev:3 file:../pbx/pbx_ael.c  line:712 func: check_macro_returns  Warning: file ./extensions.ael, line 98-131: The macro endcall5 does not end with a return; I will insert one.
+LOG: lev:2 file:../pbx/pbx_ael.c  line:3863 func: pbx_load_module  AEL load process: checked config file name './extensions.ael'.
+Executed ast_context_create(conts, name=endsess, registrar=pbx_ael);
+Executed ast_context_create(conts, name=nullchk, registrar=pbx_ael);
+Executed ast_context_create(conts, name=endcall, registrar=pbx_ael);
+Executed ast_context_create(conts, name=endcall2, registrar=pbx_ael);
+Executed ast_context_create(conts, name=endcall3, registrar=pbx_ael);
+Executed ast_context_create(conts, name=endcall4, registrar=pbx_ael);
+Executed ast_context_create(conts, name=endcall5, registrar=pbx_ael);
+Executed ast_add_extension2(context=endsess, rep=0, exten=s, priority=1, label=(null), callerid=(null), appl=NoOp, data=hithere, FREE, registrar=pbx_ael);
+Executed ast_add_extension2(context=endsess, rep=0, exten=s, priority=2, label=(null), callerid=(null), appl=Return, data=, FREE, registrar=pbx_ael);
+Executed ast_add_extension2(context=nullchk, rep=0, exten=s, priority=1, label=(null), callerid=(null), appl=Set, data=type=${ARG1}, FREE, registrar=pbx_ael);
+Executed ast_add_extension2(context=nullchk, rep=0, exten=s, priority=2, label=(null), callerid=(null), appl=NoOp, data=${type} is this, FREE, registrar=pbx_ael);
+Executed ast_add_extension2(context=nullchk, rep=0, exten=s, priority=3, label=(null), callerid=(null), appl=Return, data=, FREE, registrar=pbx_ael);
+Executed ast_add_extension2(context=endcall, rep=0, exten=s, priority=1, label=(null), callerid=(null), appl=Set, data=type=${ARG1}, FREE, registrar=pbx_ael);
+Executed ast_add_extension2(context=endcall, rep=0, exten=s, priority=2, label=(null), callerid=(null), appl=Goto, data=sw-1-${type}|1, FREE, registrar=pbx_ael);
+Executed ast_add_extension2(context=endcall, rep=0, exten=s, priority=3, label=(null), callerid=(null), appl=NoOp, data=Finish switch-endcall-1, FREE, registrar=pbx_ael);
+Executed ast_add_extension2(context=endcall, rep=0, exten=s, priority=4, label=(null), callerid=(null), appl=Return, data=, FREE, registrar=pbx_ael);
+Executed ast_add_extension2(context=endcall, rep=0, exten=sw-1-out, priority=1, label=(null), callerid=(null), appl=Gosub, data=nullchk|s|1:callid, FREE, registrar=pbx_ael);
+Executed ast_add_extension2(context=endcall, rep=0, exten=sw-1-out, priority=2, label=(null), callerid=(null), appl=GotoIf, data=$[${testnotnull}]?3:6, FREE, registrar=pbx_ael);
+Executed ast_add_extension2(context=endcall, rep=0, exten=sw-1-out, priority=3, label=(null), callerid=(null), appl=Gosub, data=endsess|s|1, FREE, registrar=pbx_ael);
+Executed ast_add_extension2(context=endcall, rep=0, exten=sw-1-out, priority=4, label=(null), callerid=(null), appl=Goto, data=sw-1-out|ptr1, FREE, registrar=pbx_ael);
+Executed ast_add_extension2(context=endcall, rep=0, exten=sw-1-out, priority=5, label=(null), callerid=(null), appl=Goto, data=8, FREE, registrar=pbx_ael);
+Executed ast_add_extension2(context=endcall, rep=0, exten=sw-1-out, priority=6, label=ptr1, callerid=(null), appl=Softhangup, data=${CHANNEL}, FREE, registrar=pbx_ael);
+Executed ast_add_extension2(context=endcall, rep=0, exten=sw-1-out, priority=7, label=(null), callerid=(null), appl=Goto, data=s|3, FREE, registrar=pbx_ael);
+Executed ast_add_extension2(context=endcall, rep=0, exten=sw-1-out, priority=8, label=(null), callerid=(null), appl=NoOp, data=Finish if-sw-endcall-out-1-2, FREE, registrar=pbx_ael);
+Executed ast_add_extension2(context=endcall, rep=0, exten=sw-1-out, priority=9, label=(null), callerid=(null), appl=Noop, data=esac, FREE, registrar=pbx_ael);
+Executed ast_add_extension2(context=endcall, rep=0, exten=sw-1-out, priority=10, label=(null), callerid=(null), appl=Goto, data=s|3, FREE, registrar=pbx_ael);
+Executed ast_add_extension2(context=endcall2, rep=0, exten=s, priority=1, label=(null), callerid=(null), appl=Set, data=type=${ARG1}, FREE, registrar=pbx_ael);
+Executed ast_add_extension2(context=endcall2, rep=0, exten=s, priority=2, label=(null), callerid=(null), appl=Goto, data=sw-3-${type}|1, FREE, registrar=pbx_ael);
+Executed ast_add_extension2(context=endcall2, rep=0, exten=s, priority=3, label=(null), callerid=(null), appl=NoOp, data=Finish switch-endcall2-3, FREE, registrar=pbx_ael);
+Executed ast_add_extension2(context=endcall2, rep=0, exten=s, priority=4, label=(null), callerid=(null), appl=Return, data=, FREE, registrar=pbx_ael);
+Executed ast_add_extension2(context=endcall2, rep=0, exten=sw-3-out2, priority=1, label=ptr1, callerid=(null), appl=Softhangup, data=${CHANNEL}, FREE, registrar=pbx_ael);
+Executed ast_add_extension2(context=endcall2, rep=0, exten=sw-3-out2, priority=2, label=(null), callerid=(null), appl=Goto, data=s|3, FREE, registrar=pbx_ael);
+Executed ast_add_extension2(context=endcall2, rep=0, exten=sw-3-out2, priority=3, label=(null), callerid=(null), appl=Noop, data=esac, FREE, registrar=pbx_ael);
+Executed ast_add_extension2(context=endcall2, rep=0, exten=sw-3-out2, priority=4, label=(null), callerid=(null), appl=Goto, data=s|3, FREE, registrar=pbx_ael);
+Executed ast_add_extension2(context=endcall2, rep=0, exten=sw-3-out, priority=1, label=(null), callerid=(null), appl=Gosub, data=nullchk|s|1:callid, FREE, registrar=pbx_ael);
+Executed ast_add_extension2(context=endcall2, rep=0, exten=sw-3-out, priority=2, label=(null), callerid=(null), appl=GotoIf, data=$[${testnotnull}]?3:5, FREE, registrar=pbx_ael);
+Executed ast_add_extension2(context=endcall2, rep=0, exten=sw-3-out, priority=3, label=(null), callerid=(null), appl=Gosub, data=endsess|s|1, FREE, registrar=pbx_ael);
+Executed ast_add_extension2(context=endcall2, rep=0, exten=sw-3-out, priority=4, label=(null), callerid=(null), appl=Goto, data=sw-3-out2|ptr1, FREE, registrar=pbx_ael);
+Executed ast_add_extension2(context=endcall2, rep=0, exten=sw-3-out, priority=5, label=(null), callerid=(null), appl=NoOp, data=Finish if-sw-endcall2-out-3-4, FREE, registrar=pbx_ael);
+Executed ast_add_extension2(context=endcall2, rep=0, exten=sw-3-out, priority=6, label=(null), callerid=(null), appl=Goto, data=sw-3-out2|1, FREE, registrar=pbx_ael);
+Executed ast_add_extension2(context=endcall3, rep=0, exten=s, priority=1, label=(null), callerid=(null), appl=Set, data=type=${ARG1}, FREE, registrar=pbx_ael);
+Executed ast_add_extension2(context=endcall3, rep=0, exten=s, priority=2, label=(null), callerid=(null), appl=Goto, data=sw-5-${type}|1, FREE, registrar=pbx_ael);
+Executed ast_add_extension2(context=endcall3, rep=0, exten=s, priority=3, label=(null), callerid=(null), appl=NoOp, data=Finish switch-endcall3-5, FREE, registrar=pbx_ael);
+Executed ast_add_extension2(context=endcall3, rep=0, exten=s, priority=4, label=(null), callerid=(null), appl=GotoIf, data=$[${testnotnull}]?5:6, FREE, registrar=pbx_ael);
+Executed ast_add_extension2(context=endcall3, rep=0, exten=s, priority=5, label=(null), callerid=(null), appl=Goto, data=sw-8-out|ptr1, FREE, registrar=pbx_ael);
+Executed ast_add_extension2(context=endcall3, rep=0, exten=s, priority=6, label=(null), callerid=(null), appl=NoOp, data=Finish if-endcall3-7, FREE, registrar=pbx_ael);
+Executed ast_add_extension2(context=endcall3, rep=0, exten=s, priority=7, label=(null), callerid=(null), appl=Goto, data=sw-8-${type}|1, FREE, registrar=pbx_ael);
+Executed ast_add_extension2(context=endcall3, rep=0, exten=s, priority=8, label=(null), callerid=(null), appl=NoOp, data=Finish switch-endcall3-8, FREE, registrar=pbx_ael);
+Executed ast_add_extension2(context=endcall3, rep=0, exten=s, priority=9, label=(null), callerid=(null), appl=Return, data=, FREE, registrar=pbx_ael);
+Executed ast_add_extension2(context=endcall3, rep=0, exten=sw-8-out, priority=1, label=(null), callerid=(null), appl=GotoIf, data=$[${testnotnull}]?2:4, FREE, registrar=pbx_ael);
+Executed ast_add_extension2(context=endcall3, rep=0, exten=sw-8-out, priority=2, label=ptr1, callerid=(null), appl=Softhangup, data=${CHANNEL}, FREE, registrar=pbx_ael);
+Executed ast_add_extension2(context=endcall3, rep=0, exten=sw-8-out, priority=3, label=(null), callerid=(null), appl=Goto, data=s|8, FREE, registrar=pbx_ael);
+Executed ast_add_extension2(context=endcall3, rep=0, exten=sw-8-out, priority=4, label=(null), callerid=(null), appl=NoOp, data=Finish if-sw-endcall3-out-8-9, FREE, registrar=pbx_ael);
+Executed ast_add_extension2(context=endcall3, rep=0, exten=sw-8-out, priority=5, label=(null), callerid=(null), appl=Noop, data=esac, FREE, registrar=pbx_ael);
+Executed ast_add_extension2(context=endcall3, rep=0, exten=sw-8-out, priority=6, label=(null), callerid=(null), appl=Goto, data=s|8, FREE, registrar=pbx_ael);
+Executed ast_add_extension2(context=endcall3, rep=0, exten=sw-5-out, priority=1, label=(null), callerid=(null), appl=Gosub, data=nullchk|s|1:callid, FREE, registrar=pbx_ael);
+Executed ast_add_extension2(context=endcall3, rep=0, exten=sw-5-out, priority=2, label=(null), callerid=(null), appl=GotoIf, data=$[${testnotnull}]?3:5, FREE, registrar=pbx_ael);
+Executed ast_add_extension2(context=endcall3, rep=0, exten=sw-5-out, priority=3, label=(null), callerid=(null), appl=Gosub, data=endsess|s|1, FREE, registrar=pbx_ael);
+Executed ast_add_extension2(context=endcall3, rep=0, exten=sw-5-out, priority=4, label=(null), callerid=(null), appl=Goto, data=sw-8-out|ptr1, FREE, registrar=pbx_ael);
+Executed ast_add_extension2(context=endcall3, rep=0, exten=sw-5-out, priority=5, label=(null), callerid=(null), appl=NoOp, data=Finish if-sw-endcall3-out-5-6, FREE, registrar=pbx_ael);
+Executed ast_add_extension2(context=endcall3, rep=0, exten=sw-5-out, priority=6, label=(null), callerid=(null), appl=Noop, data=esac, FREE, registrar=pbx_ael);
+Executed ast_add_extension2(context=endcall3, rep=0, exten=sw-5-out, priority=7, label=(null), callerid=(null), appl=Goto, data=s|3, FREE, registrar=pbx_ael);
+Executed ast_add_extension2(context=endcall4, rep=0, exten=s, priority=1, label=(null), callerid=(null), appl=Set, data=type=${ARG1}, FREE, registrar=pbx_ael);
+Executed ast_add_extension2(context=endcall4, rep=0, exten=s, priority=2, label=(null), callerid=(null), appl=Goto, data=sw-10-${type}|1, FREE, registrar=pbx_ael);
+Executed ast_add_extension2(context=endcall4, rep=0, exten=s, priority=3, label=(null), callerid=(null), appl=NoOp, data=Finish switch-endcall4-10, FREE, registrar=pbx_ael);
+Executed ast_add_extension2(context=endcall4, rep=0, exten=s, priority=4, label=(null), callerid=(null), appl=GotoIf, data=$[${testnotnull}]?5:6, FREE, registrar=pbx_ael);
+Executed ast_add_extension2(context=endcall4, rep=0, exten=s, priority=5, label=(null), callerid=(null), appl=Goto, data=sw-14-in|ptr1, FREE, registrar=pbx_ael);
+Executed ast_add_extension2(context=endcall4, rep=0, exten=s, priority=6, label=(null), callerid=(null), appl=NoOp, data=Finish if-endcall4-12, FREE, registrar=pbx_ael);
+Executed ast_add_extension2(context=endcall4, rep=0, exten=s, priority=7, label=(null), callerid=(null), appl=Goto, data=sw-13-${type}|1, FREE, registrar=pbx_ael);
+Executed ast_add_extension2(context=endcall4, rep=0, exten=s, priority=8, label=(null), callerid=(null), appl=NoOp, data=Finish switch-endcall4-13, FREE, registrar=pbx_ael);
+Executed ast_add_extension2(context=endcall4, rep=0, exten=s, priority=9, label=(null), callerid=(null), appl=Return, data=, FREE, registrar=pbx_ael);
+Executed ast_add_extension2(context=endcall4, rep=0, exten=sw-13-out, priority=1, label=(null), callerid=(null), appl=Goto, data=sw-14-${type}|1, FREE, registrar=pbx_ael);
+Executed ast_add_extension2(context=endcall4, rep=0, exten=sw-13-out, priority=2, label=(null), callerid=(null), appl=NoOp, data=Finish switch-sw-endcall4-out-13-14, FREE, registrar=pbx_ael);
+Executed ast_add_extension2(context=endcall4, rep=0, exten=sw-13-out, priority=3, label=(null), callerid=(null), appl=Goto, data=s|8, FREE, registrar=pbx_ael);
+Executed ast_add_extension2(context=endcall4, rep=0, exten=sw-14-in, priority=1, label=(null), callerid=(null), appl=GotoIf, data=$[${testnotnull}]?2:4, FREE, registrar=pbx_ael);
+Executed ast_add_extension2(context=endcall4, rep=0, exten=sw-14-in, priority=2, label=ptr1, callerid=(null), appl=Softhangup, data=${CHANNEL}, FREE, registrar=pbx_ael);
+Executed ast_add_extension2(context=endcall4, rep=0, exten=sw-14-in, priority=3, label=(null), callerid=(null), appl=Goto, data=sw-13-out|2, FREE, registrar=pbx_ael);
+Executed ast_add_extension2(context=endcall4, rep=0, exten=sw-14-in, priority=4, label=(null), callerid=(null), appl=NoOp, data=Finish if-sw-sw-endcall4-out-13-in-14-15, FREE, registrar=pbx_ael);
+Executed ast_add_extension2(context=endcall4, rep=0, exten=sw-14-in, priority=5, label=(null), callerid=(null), appl=Noop, data=esac, FREE, registrar=pbx_ael);
+Executed ast_add_extension2(context=endcall4, rep=0, exten=sw-14-in, priority=6, label=(null), callerid=(null), appl=Goto, data=sw-13-out|2, FREE, registrar=pbx_ael);
+Executed ast_add_extension2(context=endcall4, rep=0, exten=sw-10-out, priority=1, label=(null), callerid=(null), appl=Gosub, data=nullchk|s|1:callid, FREE, registrar=pbx_ael);
+Executed ast_add_extension2(context=endcall4, rep=0, exten=sw-10-out, priority=2, label=(null), callerid=(null), appl=GotoIf, data=$[${testnotnull}]?3:5, FREE, registrar=pbx_ael);
+Executed ast_add_extension2(context=endcall4, rep=0, exten=sw-10-out, priority=3, label=(null), callerid=(null), appl=Gosub, data=endsess|s|1, FREE, registrar=pbx_ael);
+Executed ast_add_extension2(context=endcall4, rep=0, exten=sw-10-out, priority=4, label=(null), callerid=(null), appl=Goto, data=sw-14-in|ptr1, FREE, registrar=pbx_ael);
+Executed ast_add_extension2(context=endcall4, rep=0, exten=sw-10-out, priority=5, label=(null), callerid=(null), appl=NoOp, data=Finish if-sw-endcall4-out-10-11, FREE, registrar=pbx_ael);
+Executed ast_add_extension2(context=endcall4, rep=0, exten=sw-10-out, priority=6, label=(null), callerid=(null), appl=Noop, data=esac, FREE, registrar=pbx_ael);
+Executed ast_add_extension2(context=endcall4, rep=0, exten=sw-10-out, priority=7, label=(null), callerid=(null), appl=Goto, data=s|3, FREE, registrar=pbx_ael);
+Executed ast_add_extension2(context=endcall5, rep=0, exten=s, priority=1, label=(null), callerid=(null), appl=Set, data=type=${ARG1}, FREE, registrar=pbx_ael);
+Executed ast_add_extension2(context=endcall5, rep=0, exten=s, priority=2, label=(null), callerid=(null), appl=Goto, data=sw-16-${type}|1, FREE, registrar=pbx_ael);
+Executed ast_add_extension2(context=endcall5, rep=0, exten=s, priority=3, label=(null), callerid=(null), appl=NoOp, data=Finish switch-endcall5-16, FREE, registrar=pbx_ael);
+Executed ast_add_extension2(context=endcall5, rep=0, exten=s, priority=4, label=(null), callerid=(null), appl=GotoIf, data=$[${testnotnull}]?5:6, FREE, registrar=pbx_ael);
+Executed ast_add_extension2(context=endcall5, rep=0, exten=s, priority=5, label=(null), callerid=(null), appl=Goto, data=sw-21-in|ptr1, FREE, registrar=pbx_ael);
+Executed ast_add_extension2(context=endcall5, rep=0, exten=s, priority=6, label=(null), callerid=(null), appl=NoOp, data=Finish if-endcall5-19, FREE, registrar=pbx_ael);
+Executed ast_add_extension2(context=endcall5, rep=0, exten=s, priority=7, label=(null), callerid=(null), appl=Goto, data=sw-20-${type}|1, FREE, registrar=pbx_ael);
+Executed ast_add_extension2(context=endcall5, rep=0, exten=s, priority=8, label=(null), callerid=(null), appl=NoOp, data=Finish switch-endcall5-20, FREE, registrar=pbx_ael);
+Executed ast_add_extension2(context=endcall5, rep=0, exten=s, priority=9, label=(null), callerid=(null), appl=Return, data=, FREE, registrar=pbx_ael);
+Executed ast_add_extension2(context=endcall5, rep=0, exten=sw-20-out, priority=1, label=(null), callerid=(null), appl=Goto, data=sw-21-${type}|1, FREE, registrar=pbx_ael);
+Executed ast_add_extension2(context=endcall5, rep=0, exten=sw-20-out, priority=2, label=(null), callerid=(null), appl=NoOp, data=Finish switch-sw-endcall5-out-20-21, FREE, registrar=pbx_ael);
+Executed ast_add_extension2(context=endcall5, rep=0, exten=sw-20-out, priority=3, label=(null), callerid=(null), appl=Goto, data=s|8, FREE, registrar=pbx_ael);
+Executed ast_add_extension2(context=endcall5, rep=0, exten=sw-21-in, priority=1, label=(null), callerid=(null), appl=GotoIf, data=$[${testnotnull}]?2:4, FREE, registrar=pbx_ael);
+Executed ast_add_extension2(context=endcall5, rep=0, exten=sw-21-in, priority=2, label=ptr1, callerid=(null), appl=Softhangup, data=${CHANNEL}, FREE, registrar=pbx_ael);
+Executed ast_add_extension2(context=endcall5, rep=0, exten=sw-21-in, priority=3, label=(null), callerid=(null), appl=Goto, data=sw-20-out|2, FREE, registrar=pbx_ael);
+Executed ast_add_extension2(context=endcall5, rep=0, exten=sw-21-in, priority=4, label=(null), callerid=(null), appl=NoOp, data=Finish if-sw-sw-endcall5-out-20-in-21-22, FREE, registrar=pbx_ael);
+Executed ast_add_extension2(context=endcall5, rep=0, exten=sw-21-in, priority=5, label=(null), callerid=(null), appl=Noop, data=esac, FREE, registrar=pbx_ael);
+Executed ast_add_extension2(context=endcall5, rep=0, exten=sw-21-in, priority=6, label=(null), callerid=(null), appl=Goto, data=sw-20-out|2, FREE, registrar=pbx_ael);
+Executed ast_add_extension2(context=endcall5, rep=0, exten=sw-16-in, priority=1, label=(null), callerid=(null), appl=Gosub, data=nullchk|s|1:callid, FREE, registrar=pbx_ael);
+Executed ast_add_extension2(context=endcall5, rep=0, exten=sw-16-in, priority=2, label=ptr2, callerid=(null), appl=GotoIf, data=$[${testnotnull}]?3:5, FREE, registrar=pbx_ael);
+Executed ast_add_extension2(context=endcall5, rep=0, exten=sw-16-in, priority=3, label=(null), callerid=(null), appl=Gosub, data=endsess|s|1, FREE, registrar=pbx_ael);
+Executed ast_add_extension2(context=endcall5, rep=0, exten=sw-16-in, priority=4, label=(null), callerid=(null), appl=Goto, data=sw-21-in|ptr1, FREE, registrar=pbx_ael);
+Executed ast_add_extension2(context=endcall5, rep=0, exten=sw-16-in, priority=5, label=(null), callerid=(null), appl=NoOp, data=Finish if-sw-endcall5-in-16-18, FREE, registrar=pbx_ael);
+Executed ast_add_extension2(context=endcall5, rep=0, exten=sw-16-in, priority=6, label=(null), callerid=(null), appl=Noop, data=esac, FREE, registrar=pbx_ael);
+Executed ast_add_extension2(context=endcall5, rep=0, exten=sw-16-in, priority=7, label=(null), callerid=(null), appl=Goto, data=s|3, FREE, registrar=pbx_ael);
+Executed ast_add_extension2(context=endcall5, rep=0, exten=sw-16-out, priority=1, label=(null), callerid=(null), appl=Gosub, data=nullchk|s|1:callid, FREE, registrar=pbx_ael);
+Executed ast_add_extension2(context=endcall5, rep=0, exten=sw-16-out, priority=2, label=(null), callerid=(null), appl=GotoIf, data=$[${testnotnull}]?3:5, FREE, registrar=pbx_ael);
+Executed ast_add_extension2(context=endcall5, rep=0, exten=sw-16-out, priority=3, label=(null), callerid=(null), appl=Gosub, data=endsess|s|1, FREE, registrar=pbx_ael);
+Executed ast_add_extension2(context=endcall5, rep=0, exten=sw-16-out, priority=4, label=(null), callerid=(null), appl=Goto, data=sw-21-in|ptr1, FREE, registrar=pbx_ael);
+Executed ast_add_extension2(context=endcall5, rep=0, exten=sw-16-out, priority=5, label=(null), callerid=(null), appl=NoOp, data=Finish if-sw-endcall5-out-16-17, FREE, registrar=pbx_ael);
+Executed ast_add_extension2(context=endcall5, rep=0, exten=sw-16-out, priority=6, label=(null), callerid=(null), appl=Goto, data=sw-16-in|1, FREE, registrar=pbx_ael);
+LOG: lev:2 file:../pbx/pbx_ael.c  line:3865 func: pbx_load_module  AEL load process: compiled config file name './extensions.ael'.
 Executed ast_merge_contexts_and_delete();
-LOG: lev:2 file:../pbx/pbx_ael.c  line:3765 func: pbx_load_module  AEL load process: merged config file name './extensions.ael'.
+LOG: lev:2 file:../pbx/pbx_ael.c  line:3868 func: pbx_load_module  AEL load process: merged config file name './extensions.ael'.
 Executed ast_walk_contexts();
-LOG: lev:2 file:../pbx/pbx_ael.c  line:3768 func: pbx_load_module  AEL load process: verified config file name './extensions.ael'.
-LOG: lev:4 file:ael2_parse  line:458 func: main  7 contexts, 17 extensions, 104 priorities
+LOG: lev:2 file:../pbx/pbx_ael.c  line:3871 func: pbx_load_module  AEL load process: verified config file name './extensions.ael'.
+LOG: lev:4 file:ael2_parse  line:479 func: main  7 contexts, 17 extensions, 111 priorities
index 0c7b319..0b3a890 100644 (file)
@@ -2,13 +2,17 @@
 (If you find progress and other non-error messages irritating, you can use -q to suppress them)
 
 (You can use the -w option to dump extensions.conf format to extensions.conf.aeldump)
-LOG: lev:2 file:../pbx/pbx_ael.c  line:3747 func: pbx_load_module  Starting AEL load process.
-LOG: lev:2 file:../pbx/pbx_ael.c  line:3754 func: pbx_load_module  AEL load process: calculated config file name './extensions.ael'.
-LOG: lev:2 file:../pbx/pbx_ael.c  line:3757 func: pbx_load_module  AEL load process: parsed config file name './extensions.ael'.
-LOG: lev:3 file:../pbx/pbx_ael.c  line:899 func: check_dow  Warning: file ./extensions.ael, line 67-67: The day (m0n) must be one of 'sun', 'mon', 'tue', 'wed', 'thu', 'fri', or 'sat'!
-LOG: lev:3 file:../pbx/pbx_ael.c  line:857 func: check_timerange  Warning: file ./extensions.ael, line 78-78: The end time (25:00) is out of range!
-LOG: lev:2 file:../pbx/pbx_ael.c  line:3760 func: pbx_load_module  AEL load process: checked config file name './extensions.ael'.
-LOG: lev:2 file:../pbx/pbx_ael.c  line:3762 func: pbx_load_module  AEL load process: compiled config file name './extensions.ael'.
-LOG: lev:2 file:../pbx/pbx_ael.c  line:3765 func: pbx_load_module  AEL load process: merged config file name './extensions.ael'.
-LOG: lev:2 file:../pbx/pbx_ael.c  line:3768 func: pbx_load_module  AEL load process: verified config file name './extensions.ael'.
-LOG: lev:4 file:ael2_parse  line:458 func: main  5 contexts, 13 extensions, 156 priorities
+LOG: lev:2 file:../pbx/pbx_ael.c  line:3904 func: pbx_load_module  Starting AEL load process.
+LOG: lev:2 file:../pbx/pbx_ael.c  line:3911 func: pbx_load_module  AEL load process: calculated config file name './extensions.ael'.
+LOG: lev:2 file:../pbx/pbx_ael.c  line:3914 func: pbx_load_module  AEL load process: parsed config file name './extensions.ael'.
+LOG: lev:3 file:../pbx/pbx_ael.c  line:711 func: check_macro_returns  Warning: file ./extensions.ael, line 2-16: The macro testdial does not end with a return; I will insert one.
+LOG: lev:3 file:../pbx/pbx_ael.c  line:711 func: check_macro_returns  Warning: file ./extensions.ael, line 18-25: The macro exten-gen does not end with a return; I will insert one.
+LOG: lev:3 file:../pbx/pbx_ael.c  line:1349 func: check_goto  Warning: file ./extensions.ael, line 21-21: It's bad form to have a goto in a macro to a target outside the macro!
+LOG: lev:3 file:../pbx/pbx_ael.c  line:1349 func: check_goto  Warning: file ./extensions.ael, line 23-23: It's bad form to have a goto in a macro to a target outside the macro!
+LOG: lev:3 file:../pbx/pbx_ael.c  line:943 func: check_dow  Warning: file ./extensions.ael, line 67-67: The day (m0n) must be one of 'sun', 'mon', 'tue', 'wed', 'thu', 'fri', or 'sat'!
+LOG: lev:3 file:../pbx/pbx_ael.c  line:901 func: check_timerange  Warning: file ./extensions.ael, line 78-78: The end time (25:00) is out of range!
+LOG: lev:2 file:../pbx/pbx_ael.c  line:3917 func: pbx_load_module  AEL load process: checked config file name './extensions.ael'.
+LOG: lev:2 file:../pbx/pbx_ael.c  line:3919 func: pbx_load_module  AEL load process: compiled config file name './extensions.ael'.
+LOG: lev:2 file:../pbx/pbx_ael.c  line:3922 func: pbx_load_module  AEL load process: merged config file name './extensions.ael'.
+LOG: lev:2 file:../pbx/pbx_ael.c  line:3925 func: pbx_load_module  AEL load process: verified config file name './extensions.ael'.
+LOG: lev:4 file:ael2_parse  line:479 func: main  5 contexts, 13 extensions, 154 priorities
index fd6c286..a940ada 100644 (file)
@@ -2,17 +2,25 @@
 (If you find progress and other non-error messages irritating, you can use -q to suppress them)
 
 (You can use the -w option to dump extensions.conf format to extensions.conf.aeldump)
-LOG: lev:2 file:../pbx/pbx_ael.c  line:3747 func: pbx_load_module  Starting AEL load process.
-LOG: lev:2 file:../pbx/pbx_ael.c  line:3754 func: pbx_load_module  AEL load process: calculated config file name './extensions.ael'.
-LOG: lev:2 file:ael.flex  line:422 func: ael_yylex    --Read in included file ./apptest.ael2, 3474 chars
-LOG: lev:3 file:ael.y  line:512 func: ael_yyparse  ==== File: ./apptest.ael2, Line 46, Cols: 8-11: Suggestion: Use the goto statement instead of the Goto() application call in AEL.
-LOG: lev:2 file:../pbx/pbx_ael.c  line:3757 func: pbx_load_module  AEL load process: parsed config file name './extensions.ael'.
-LOG: lev:3 file:../pbx/pbx_ael.c  line:2247 func: check_pval_item  Warning: file ./apptest.ael2, line 35-35: application call to EndWhile needs to be re-written using AEL if, while, goto, etc. keywords instead!
-LOG: lev:3 file:../pbx/pbx_ael.c  line:2247 func: check_pval_item  Warning: file ./apptest.ael2, line 37-37: application call to ExecIf needs to be re-written using AEL if, while, goto, etc. keywords instead!
-LOG: lev:4 file:../pbx/pbx_ael.c  line:1197 func: check_goto  Error: file ./apptest.ael2, line 46-46: goto:  no context cont could be found that matches the goto target!
-LOG: lev:3 file:../pbx/pbx_ael.c  line:2247 func: check_pval_item  Warning: file ./apptest.ael2, line 47-47: application call to GotoIf needs to be re-written using AEL if, while, goto, etc. keywords instead!
-LOG: lev:3 file:../pbx/pbx_ael.c  line:2247 func: check_pval_item  Warning: file ./apptest.ael2, line 48-48: application call to GotoIfTime needs to be re-written using AEL if, while, goto, etc. keywords instead!
-LOG: lev:3 file:../pbx/pbx_ael.c  line:2247 func: check_pval_item  Warning: file ./apptest.ael2, line 85-85: application call to Random needs to be re-written using AEL if, while, goto, etc. keywords instead!
-LOG: lev:3 file:../pbx/pbx_ael.c  line:2247 func: check_pval_item  Warning: file ./apptest.ael2, line 141-141: application call to While needs to be re-written using AEL if, while, goto, etc. keywords instead!
-LOG: lev:4 file:../pbx/pbx_ael.c  line:3770 func: pbx_load_module  Sorry, but 0 syntax errors and 1 semantic errors were detected. It doesn't make sense to compile.
-LOG: lev:4 file:ael2_parse  line:458 func: main  0 contexts, 0 extensions, 0 priorities
+LOG: lev:2 file:../pbx/pbx_ael.c  line:3856 func: pbx_load_module  Starting AEL load process.
+LOG: lev:2 file:../pbx/pbx_ael.c  line:3863 func: pbx_load_module  AEL load process: calculated config file name './extensions.ael'.
+LOG: lev:2 file:ael.flex  line:429 func: ael_yylex    --Read in included file ./apptest.ael2, 3474 chars
+LOG: lev:3 file:ael.y  line:523 func: ael_yyparse  ==== File: ./apptest.ael2, Line 46, Cols: 8-11: Suggestion: Use the goto statement instead of the Goto() application call in AEL.
+LOG: lev:2 file:../pbx/pbx_ael.c  line:3866 func: pbx_load_module  AEL load process: parsed config file name './extensions.ael'.
+LOG: lev:3 file:../pbx/pbx_ael.c  line:2368 func: check_pval_item  Warning: file ./apptest.ael2, line 35-35: application call to EndWhile affects flow of control, and needs to be re-written using AEL if, while, goto, etc. keywords instead!
+LOG: lev:3 file:../pbx/pbx_ael.c  line:2368 func: check_pval_item  Warning: file ./apptest.ael2, line 37-37: application call to ExecIf affects flow of control, and needs to be re-written using AEL if, while, goto, etc. keywords instead!
+LOG: lev:3 file:../pbx/pbx_ael.c  line:2368 func: check_pval_item  Warning: file ./apptest.ael2, line 38-38: application call to ExecIfTime affects flow of control, and needs to be re-written using AEL if, while, goto, etc. keywords instead!
+LOG: lev:3 file:../pbx/pbx_ael.c  line:2368 func: check_pval_item  Warning: file ./apptest.ael2, line 44-44: application call to Gosub affects flow of control, and needs to be re-written using AEL if, while, goto, etc. keywords instead!
+LOG: lev:3 file:../pbx/pbx_ael.c  line:2368 func: check_pval_item  Warning: file ./apptest.ael2, line 45-45: application call to GosubIf affects flow of control, and needs to be re-written using AEL if, while, goto, etc. keywords instead!
+LOG: lev:4 file:../pbx/pbx_ael.c  line:1302 func: check_goto  Error: file ./apptest.ael2, line 46-46: goto:  no context cont could be found that matches the goto target!
+LOG: lev:3 file:../pbx/pbx_ael.c  line:2368 func: check_pval_item  Warning: file ./apptest.ael2, line 47-47: application call to GotoIf affects flow of control, and needs to be re-written using AEL if, while, goto, etc. keywords instead!
+LOG: lev:3 file:../pbx/pbx_ael.c  line:2368 func: check_pval_item  Warning: file ./apptest.ael2, line 48-48: application call to GotoIfTime affects flow of control, and needs to be re-written using AEL if, while, goto, etc. keywords instead!
+LOG: lev:3 file:../pbx/pbx_ael.c  line:2368 func: check_pval_item  Warning: file ./apptest.ael2, line 58-58: application call to Macro affects flow of control, and needs to be re-written using AEL if, while, goto, etc. keywords instead!
+LOG: lev:3 file:../pbx/pbx_ael.c  line:2373 func: check_pval_item  Warning: file ./apptest.ael2, line 59-59: I am converting the MacroExit call here to a return statement.
+LOG: lev:3 file:../pbx/pbx_ael.c  line:2368 func: check_pval_item  Warning: file ./apptest.ael2, line 60-60: application call to MacroIf affects flow of control, and needs to be re-written using AEL if, while, goto, etc. keywords instead!
+LOG: lev:3 file:../pbx/pbx_ael.c  line:2368 func: check_pval_item  Warning: file ./apptest.ael2, line 85-85: application call to Random affects flow of control, and needs to be re-written using AEL if, while, goto, etc. keywords instead!
+LOG: lev:3 file:../pbx/pbx_ael.c  line:2368 func: check_pval_item  Warning: file ./apptest.ael2, line 94-94: application call to Return affects flow of control, and needs to be re-written using AEL if, while, goto, etc. keywords instead!
+LOG: lev:3 file:../pbx/pbx_ael.c  line:2368 func: check_pval_item  Warning: file ./apptest.ael2, line 119-119: application call to StackPop affects flow of control, and needs to be re-written using AEL if, while, goto, etc. keywords instead!
+LOG: lev:3 file:../pbx/pbx_ael.c  line:2368 func: check_pval_item  Warning: file ./apptest.ael2, line 141-141: application call to While affects flow of control, and needs to be re-written using AEL if, while, goto, etc. keywords instead!
+LOG: lev:4 file:../pbx/pbx_ael.c  line:3879 func: pbx_load_module  Sorry, but 0 syntax errors and 1 semantic errors were detected. It doesn't make sense to compile.
+LOG: lev:4 file:ael2_parse  line:479 func: main  0 contexts, 0 extensions, 0 priorities
index ebdacba..f562a4e 100644 (file)
@@ -2,17 +2,99 @@
 (If you find progress and other non-error messages irritating, you can use -q to suppress them)
 
 (You can use the -w option to dump extensions.conf format to extensions.conf.aeldump)
-LOG: lev:2 file:../pbx/pbx_ael.c  line:3797 func: pbx_load_module  Starting AEL load process.
-LOG: lev:2 file:../pbx/pbx_ael.c  line:3804 func: pbx_load_module  AEL load process: calculated config file name './extensions.ael'.
-LOG: lev:2 file:ael.flex  line:431 func: ael_yylex    --Read in included file ./include1.ael2, 78 chars
-LOG: lev:2 file:ael.flex  line:431 func: ael_yylex    --Read in included file ./include2.ael2, 98 chars
-LOG: lev:2 file:ael.flex  line:431 func: ael_yylex    --Read in included file ./include3.ael2, 57 chars
-LOG: lev:2 file:ael.flex  line:431 func: ael_yylex    --Read in included file ./include5.ael2, 56 chars
-LOG: lev:2 file:ael.flex  line:431 func: ael_yylex    --Read in included file ./include4.ael2, 87 chars
-LOG: lev:2 file:ael.flex  line:431 func: ael_yylex    --Read in included file ./telemarket_torture.ael2, 28036 chars
-LOG: lev:2 file:../pbx/pbx_ael.c  line:3807 func: pbx_load_module  AEL load process: parsed config file name './extensions.ael'.
-LOG: lev:2 file:../pbx/pbx_ael.c  line:3810 func: pbx_load_module  AEL load process: checked config file name './extensions.ael'.
-LOG: lev:2 file:../pbx/pbx_ael.c  line:3812 func: pbx_load_module  AEL load process: compiled config file name './extensions.ael'.
-LOG: lev:2 file:../pbx/pbx_ael.c  line:3815 func: pbx_load_module  AEL load process: merged config file name './extensions.ael'.
-LOG: lev:2 file:../pbx/pbx_ael.c  line:3818 func: pbx_load_module  AEL load process: verified config file name './extensions.ael'.
-LOG: lev:4 file:ael2_parse  line:479 func: main  172 contexts, 858 extensions, 2326 priorities
+LOG: lev:2 file:../pbx/pbx_ael.c  line:3904 func: pbx_load_module  Starting AEL load process.
+LOG: lev:2 file:../pbx/pbx_ael.c  line:3911 func: pbx_load_module  AEL load process: calculated config file name './extensions.ael'.
+LOG: lev:2 file:ael.flex  line:429 func: ael_yylex    --Read in included file ./include1.ael2, 78 chars
+LOG: lev:2 file:ael.flex  line:429 func: ael_yylex    --Read in included file ./include2.ael2, 98 chars
+LOG: lev:2 file:ael.flex  line:429 func: ael_yylex    --Read in included file ./include3.ael2, 57 chars
+LOG: lev:2 file:ael.flex  line:429 func: ael_yylex    --Read in included file ./include5.ael2, 56 chars
+LOG: lev:2 file:ael.flex  line:429 func: ael_yylex    --Read in included file ./include4.ael2, 87 chars
+LOG: lev:2 file:ael.flex  line:429 func: ael_yylex    --Read in included file ./telemarket_torture.ael2, 28036 chars
+LOG: lev:2 file:../pbx/pbx_ael.c  line:3914 func: pbx_load_module  AEL load process: parsed config file name './extensions.ael'.
+LOG: lev:3 file:../pbx/pbx_ael.c  line:711 func: check_macro_returns  Warning: file ./extensions.ael, line 14-34: The macro std-exten does not end with a return; I will insert one.
+LOG: lev:3 file:../pbx/pbx_ael.c  line:1349 func: check_goto  Warning: file ./extensions.ael, line 17-17: It's bad form to have a goto in a macro to a target outside the macro!
+LOG: lev:3 file:../pbx/pbx_ael.c  line:711 func: check_macro_returns  Warning: file ./extensions.ael, line 36-59: The macro std-priv-exten_1 does not end with a return; I will insert one.
+LOG: lev:3 file:../pbx/pbx_ael.c  line:711 func: check_macro_returns  Warning: file ./extensions.ael, line 62-85: The macro std-priv-exten_2 does not end with a return; I will insert one.
+LOG: lev:3 file:../pbx/pbx_ael.c  line:711 func: check_macro_returns  Warning: file ./extensions.ael, line 88-111: The macro std-priv-exten_3 does not end with a return; I will insert one.
+LOG: lev:3 file:../pbx/pbx_ael.c  line:711 func: check_macro_returns  Warning: file ./extensions.ael, line 114-137: The macro std-priv-exten_4 does not end with a return; I will insert one.
+LOG: lev:3 file:../pbx/pbx_ael.c  line:711 func: check_macro_returns  Warning: file ./extensions.ael, line 140-163: The macro std-priv-exten_5 does not end with a return; I will insert one.
+LOG: lev:3 file:../pbx/pbx_ael.c  line:711 func: check_macro_returns  Warning: file ./extensions.ael, line 166-189: The macro std-priv-exten_6 does not end with a return; I will insert one.
+LOG: lev:3 file:../pbx/pbx_ael.c  line:711 func: check_macro_returns  Warning: file ./extensions.ael, line 192-215: The macro std-priv-exten_7 does not end with a return; I will insert one.
+LOG: lev:3 file:../pbx/pbx_ael.c  line:711 func: check_macro_returns  Warning: file ./extensions.ael, line 218-241: The macro std-priv-exten_8 does not end with a return; I will insert one.
+LOG: lev:3 file:../pbx/pbx_ael.c  line:711 func: check_macro_returns  Warning: file ./extensions.ael, line 244-267: The macro std-priv-exten_9 does not end with a return; I will insert one.
+LOG: lev:3 file:../pbx/pbx_ael.c  line:711 func: check_macro_returns  Warning: file ./extensions.ael, line 270-293: The macro std-priv-exten_10 does not end with a return; I will insert one.
+LOG: lev:3 file:../pbx/pbx_ael.c  line:711 func: check_macro_returns  Warning: file ./extensions.ael, line 296-319: The macro std-priv-exten_11 does not end with a return; I will insert one.
+LOG: lev:3 file:../pbx/pbx_ael.c  line:711 func: check_macro_returns  Warning: file ./extensions.ael, line 322-345: The macro std-priv-exten_12 does not end with a return; I will insert one.
+LOG: lev:3 file:../pbx/pbx_ael.c  line:711 func: check_macro_returns  Warning: file ./extensions.ael, line 348-371: The macro std-priv-exten_13 does not end with a return; I will insert one.
+LOG: lev:3 file:../pbx/pbx_ael.c  line:711 func: check_macro_returns  Warning: file ./extensions.ael, line 374-397: The macro std-priv-exten_14 does not end with a return; I will insert one.
+LOG: lev:3 file:../pbx/pbx_ael.c  line:711 func: check_macro_returns  Warning: file ./extensions.ael, line 400-423: The macro std-priv-exten_15 does not end with a return; I will insert one.
+LOG: lev:3 file:../pbx/pbx_ael.c  line:711 func: check_macro_returns  Warning: file ./extensions.ael, line 426-449: The macro std-priv-exten_16 does not end with a return; I will insert one.
+LOG: lev:3 file:../pbx/pbx_ael.c  line:711 func: check_macro_returns  Warning: file ./extensions.ael, line 452-475: The macro std-priv-exten_17 does not end with a return; I will insert one.
+LOG: lev:3 file:../pbx/pbx_ael.c  line:711 func: check_macro_returns  Warning: file ./extensions.ael, line 478-501: The macro std-priv-exten_18 does not end with a return; I will insert one.
+LOG: lev:3 file:../pbx/pbx_ael.c  line:711 func: check_macro_returns  Warning: file ./extensions.ael, line 504-527: The macro std-priv-exten_19 does not end with a return; I will insert one.
+LOG: lev:3 file:../pbx/pbx_ael.c  line:711 func: check_macro_returns  Warning: file ./extensions.ael, line 530-553: The macro std-priv-exten_20 does not end with a return; I will insert one.
+LOG: lev:3 file:../pbx/pbx_ael.c  line:711 func: check_macro_returns  Warning: file ./extensions.ael, line 556-579: The macro std-priv-exten_21 does not end with a return; I will insert one.
+LOG: lev:3 file:../pbx/pbx_ael.c  line:711 func: check_macro_returns  Warning: file ./extensions.ael, line 582-605: The macro std-priv-exten_22 does not end with a return; I will insert one.
+LOG: lev:3 file:../pbx/pbx_ael.c  line:711 func: check_macro_returns  Warning: file ./extensions.ael, line 608-631: The macro std-priv-exten_23 does not end with a return; I will insert one.
+LOG: lev:3 file:../pbx/pbx_ael.c  line:711 func: check_macro_returns  Warning: file ./extensions.ael, line 634-657: The macro std-priv-exten_24 does not end with a return; I will insert one.
+LOG: lev:3 file:../pbx/pbx_ael.c  line:711 func: check_macro_returns  Warning: file ./extensions.ael, line 660-683: The macro std-priv-exten_25 does not end with a return; I will insert one.
+LOG: lev:3 file:../pbx/pbx_ael.c  line:711 func: check_macro_returns  Warning: file ./extensions.ael, line 686-709: The macro std-priv-exten_26 does not end with a return; I will insert one.
+LOG: lev:3 file:../pbx/pbx_ael.c  line:711 func: check_macro_returns  Warning: file ./extensions.ael, line 712-735: The macro std-priv-exten_27 does not end with a return; I will insert one.
+LOG: lev:3 file:../pbx/pbx_ael.c  line:711 func: check_macro_returns  Warning: file ./extensions.ael, line 738-761: The macro std-priv-exten_28 does not end with a return; I will insert one.
+LOG: lev:3 file:../pbx/pbx_ael.c  line:711 func: check_macro_returns  Warning: file ./extensions.ael, line 764-787: The macro std-priv-exten_29 does not end with a return; I will insert one.
+LOG: lev:3 file:../pbx/pbx_ael.c  line:711 func: check_macro_returns  Warning: file ./extensions.ael, line 790-813: The macro std-priv-exten_30 does not end with a return; I will insert one.
+LOG: lev:3 file:../pbx/pbx_ael.c  line:711 func: check_macro_returns  Warning: file ./extensions.ael, line 816-839: The macro std-priv-exten_31 does not end with a return; I will insert one.
+LOG: lev:3 file:../pbx/pbx_ael.c  line:711 func: check_macro_returns  Warning: file ./extensions.ael, line 842-865: The macro std-priv-exten_32 does not end with a return; I will insert one.
+LOG: lev:3 file:../pbx/pbx_ael.c  line:711 func: check_macro_returns  Warning: file ./extensions.ael, line 868-891: The macro std-priv-exten_33 does not end with a return; I will insert one.
+LOG: lev:3 file:../pbx/pbx_ael.c  line:711 func: check_macro_returns  Warning: file ./extensions.ael, line 894-917: The macro std-priv-exten_34 does not end with a return; I will insert one.
+LOG: lev:3 file:../pbx/pbx_ael.c  line:711 func: check_macro_returns  Warning: file ./extensions.ael, line 920-943: The macro std-priv-exten_35 does not end with a return; I will insert one.
+LOG: lev:3 file:../pbx/pbx_ael.c  line:711 func: check_macro_returns  Warning: file ./extensions.ael, line 946-969: The macro std-priv-exten_36 does not end with a return; I will insert one.
+LOG: lev:3 file:../pbx/pbx_ael.c  line:711 func: check_macro_returns  Warning: file ./extensions.ael, line 972-995: The macro std-priv-exten_37 does not end with a return; I will insert one.
+LOG: lev:3 file:../pbx/pbx_ael.c  line:711 func: check_macro_returns  Warning: file ./extensions.ael, line 998-1021: The macro std-priv-exten_38 does not end with a return; I will insert one.
+LOG: lev:3 file:../pbx/pbx_ael.c  line:711 func: check_macro_returns  Warning: file ./extensions.ael, line 1024-1047: The macro std-priv-exten_39 does not end with a return; I will insert one.
+LOG: lev:3 file:../pbx/pbx_ael.c  line:711 func: check_macro_returns  Warning: file ./extensions.ael, line 1050-1073: The macro std-priv-exten_40 does not end with a return; I will insert one.
+LOG: lev:3 file:../pbx/pbx_ael.c  line:711 func: check_macro_returns  Warning: file ./extensions.ael, line 1076-1099: The macro std-priv-exten_41 does not end with a return; I will insert one.
+LOG: lev:3 file:../pbx/pbx_ael.c  line:711 func: check_macro_returns  Warning: file ./extensions.ael, line 1102-1125: The macro std-priv-exten_42 does not end with a return; I will insert one.
+LOG: lev:3 file:../pbx/pbx_ael.c  line:711 func: check_macro_returns  Warning: file ./extensions.ael, line 1128-1151: The macro std-priv-exten_43 does not end with a return; I will insert one.
+LOG: lev:3 file:../pbx/pbx_ael.c  line:711 func: check_macro_returns  Warning: file ./extensions.ael, line 1154-1177: The macro std-priv-exten_44 does not end with a return; I will insert one.
+LOG: lev:3 file:../pbx/pbx_ael.c  line:711 func: check_macro_returns  Warning: file ./extensions.ael, line 1180-1203: The macro std-priv-exten_45 does not end with a return; I will insert one.
+LOG: lev:3 file:../pbx/pbx_ael.c  line:711 func: check_macro_returns  Warning: file ./extensions.ael, line 1206-1229: The macro std-priv-exten_46 does not end with a return; I will insert one.
+LOG: lev:3 file:../pbx/pbx_ael.c  line:711 func: check_macro_returns  Warning: file ./extensions.ael, line 1232-1255: The macro std-priv-exten_47 does not end with a return; I will insert one.
+LOG: lev:3 file:../pbx/pbx_ael.c  line:711 func: check_macro_returns  Warning: file ./extensions.ael, line 1258-1281: The macro std-priv-exten_48 does not end with a return; I will insert one.
+LOG: lev:3 file:../pbx/pbx_ael.c  line:711 func: check_macro_returns  Warning: file ./extensions.ael, line 1284-1307: The macro std-priv-exten_49 does not end with a return; I will insert one.
+LOG: lev:3 file:../pbx/pbx_ael.c  line:711 func: check_macro_returns  Warning: file ./extensions.ael, line 1310-1333: The macro std-priv-exten_50 does not end with a return; I will insert one.
+LOG: lev:3 file:../pbx/pbx_ael.c  line:711 func: check_macro_returns  Warning: file ./extensions.ael, line 1336-1359: The macro std-priv-exten_51 does not end with a return; I will insert one.
+LOG: lev:3 file:../pbx/pbx_ael.c  line:711 func: check_macro_returns  Warning: file ./extensions.ael, line 1362-1385: The macro std-priv-exten_52 does not end with a return; I will insert one.
+LOG: lev:3 file:../pbx/pbx_ael.c  line:711 func: check_macro_returns  Warning: file ./extensions.ael, line 1388-1411: The macro std-priv-exten_53 does not end with a return; I will insert one.
+LOG: lev:3 file:../pbx/pbx_ael.c  line:711 func: check_macro_returns  Warning: file ./extensions.ael, line 1414-1437: The macro std-priv-exten_54 does not end with a return; I will insert one.
+LOG: lev:3 file:../pbx/pbx_ael.c  line:711 func: check_macro_returns  Warning: file ./extensions.ael, line 1440-1463: The macro std-priv-exten_55 does not end with a return; I will insert one.
+LOG: lev:3 file:../pbx/pbx_ael.c  line:711 func: check_macro_returns  Warning: file ./extensions.ael, line 1466-1489: The macro std-priv-exten_56 does not end with a return; I will insert one.
+LOG: lev:3 file:../pbx/pbx_ael.c  line:711 func: check_macro_returns  Warning: file ./extensions.ael, line 1492-1515: The macro std-priv-exten_57 does not end with a return; I will insert one.
+LOG: lev:3 file:../pbx/pbx_ael.c  line:711 func: check_macro_returns  Warning: file ./extensions.ael, line 1518-1541: The macro std-priv-exten_58 does not end with a return; I will insert one.
+LOG: lev:3 file:../pbx/pbx_ael.c  line:711 func: check_macro_returns  Warning: file ./extensions.ael, line 1544-1567: The macro std-priv-exten_59 does not end with a return; I will insert one.
+LOG: lev:3 file:../pbx/pbx_ael.c  line:711 func: check_macro_returns  Warning: file ./extensions.ael, line 1570-1593: The macro std-priv-exten_60 does not end with a return; I will insert one.
+LOG: lev:3 file:../pbx/pbx_ael.c  line:711 func: check_macro_returns  Warning: file ./extensions.ael, line 1596-1619: The macro std-priv-exten_61 does not end with a return; I will insert one.
+LOG: lev:3 file:../pbx/pbx_ael.c  line:711 func: check_macro_returns  Warning: file ./extensions.ael, line 1622-1645: The macro std-priv-exten_62 does not end with a return; I will insert one.
+LOG: lev:3 file:../pbx/pbx_ael.c  line:711 func: check_macro_returns  Warning: file ./extensions.ael, line 1648-1671: The macro std-priv-exten_63 does not end with a return; I will insert one.
+LOG: lev:3 file:../pbx/pbx_ael.c  line:711 func: check_macro_returns  Warning: file ./extensions.ael, line 1674-1697: The macro std-priv-exten_64 does not end with a return; I will insert one.
+LOG: lev:3 file:../pbx/pbx_ael.c  line:711 func: check_macro_returns  Warning: file ./extensions.ael, line 1700-1723: The macro std-priv-exten_65 does not end with a return; I will insert one.
+LOG: lev:3 file:../pbx/pbx_ael.c  line:711 func: check_macro_returns  Warning: file ./extensions.ael, line 1726-1749: The macro std-priv-exten_66 does not end with a return; I will insert one.
+LOG: lev:3 file:../pbx/pbx_ael.c  line:711 func: check_macro_returns  Warning: file ./extensions.ael, line 1752-1775: The macro std-priv-exten_67 does not end with a return; I will insert one.
+LOG: lev:3 file:../pbx/pbx_ael.c  line:711 func: check_macro_returns  Warning: file ./extensions.ael, line 1778-1801: The macro std-priv-exten_68 does not end with a return; I will insert one.
+LOG: lev:3 file:../pbx/pbx_ael.c  line:711 func: check_macro_returns  Warning: file ./extensions.ael, line 1804-1827: The macro std-priv-exten_69 does not end with a return; I will insert one.
+LOG: lev:3 file:../pbx/pbx_ael.c  line:711 func: check_macro_returns  Warning: file ./extensions.ael, line 1830-1853: The macro std-priv-exten_70 does not end with a return; I will insert one.
+LOG: lev:3 file:../pbx/pbx_ael.c  line:711 func: check_macro_returns  Warning: file ./extensions.ael, line 1856-1879: The macro std-priv-exten_71 does not end with a return; I will insert one.
+LOG: lev:3 file:../pbx/pbx_ael.c  line:711 func: check_macro_returns  Warning: file ./extensions.ael, line 1882-1905: The macro std-priv-exten_72 does not end with a return; I will insert one.
+LOG: lev:3 file:../pbx/pbx_ael.c  line:711 func: check_macro_returns  Warning: file ./extensions.ael, line 1908-1931: The macro std-priv-exten_73 does not end with a return; I will insert one.
+LOG: lev:3 file:../pbx/pbx_ael.c  line:711 func: check_macro_returns  Warning: file ./extensions.ael, line 1934-1957: The macro std-priv-exten does not end with a return; I will insert one.
+LOG: lev:3 file:../pbx/pbx_ael.c  line:711 func: check_macro_returns  Warning: file ./extensions.ael, line 1959-1995: The macro fillcidname does not end with a return; I will insert one.
+LOG: lev:3 file:../pbx/pbx_ael.c  line:711 func: check_macro_returns  Warning: file ./extensions.ael, line 1997-2015: The macro ciddial does not end with a return; I will insert one.
+LOG: lev:3 file:../pbx/pbx_ael.c  line:711 func: check_macro_returns  Warning: file ./extensions.ael, line 2017-2028: The macro ciddial3 does not end with a return; I will insert one.
+LOG: lev:3 file:../pbx/pbx_ael.c  line:711 func: check_macro_returns  Warning: file ./extensions.ael, line 2030-2048: The macro ciddial2 does not end with a return; I will insert one.
+LOG: lev:3 file:../pbx/pbx_ael.c  line:711 func: check_macro_returns  Warning: file ./extensions.ael, line 2050-2065: The macro callerid-liar does not end with a return; I will insert one.
+LOG: lev:3 file:../pbx/pbx_ael.c  line:711 func: check_macro_returns  Warning: file ./extensions.ael, line 2067-2072: The macro callerid-bad does not end with a return; I will insert one.
+LOG: lev:2 file:../pbx/pbx_ael.c  line:3917 func: pbx_load_module  AEL load process: checked config file name './extensions.ael'.
+LOG: lev:2 file:../pbx/pbx_ael.c  line:3919 func: pbx_load_module  AEL load process: compiled config file name './extensions.ael'.
+LOG: lev:2 file:../pbx/pbx_ael.c  line:3922 func: pbx_load_module  AEL load process: merged config file name './extensions.ael'.
+LOG: lev:2 file:../pbx/pbx_ael.c  line:3925 func: pbx_load_module  AEL load process: verified config file name './extensions.ael'.
+LOG: lev:4 file:ael2_parse  line:479 func: main  172 contexts, 858 extensions, 2406 priorities
index fd6c286..a940ada 100644 (file)
@@ -2,17 +2,25 @@
 (If you find progress and other non-error messages irritating, you can use -q to suppress them)
 
 (You can use the -w option to dump extensions.conf format to extensions.conf.aeldump)
-LOG: lev:2 file:../pbx/pbx_ael.c  line:3747 func: pbx_load_module  Starting AEL load process.
-LOG: lev:2 file:../pbx/pbx_ael.c  line:3754 func: pbx_load_module  AEL load process: calculated config file name './extensions.ael'.
-LOG: lev:2 file:ael.flex  line:422 func: ael_yylex    --Read in included file ./apptest.ael2, 3474 chars
-LOG: lev:3 file:ael.y  line:512 func: ael_yyparse  ==== File: ./apptest.ael2, Line 46, Cols: 8-11: Suggestion: Use the goto statement instead of the Goto() application call in AEL.
-LOG: lev:2 file:../pbx/pbx_ael.c  line:3757 func: pbx_load_module  AEL load process: parsed config file name './extensions.ael'.
-LOG: lev:3 file:../pbx/pbx_ael.c  line:2247 func: check_pval_item  Warning: file ./apptest.ael2, line 35-35: application call to EndWhile needs to be re-written using AEL if, while, goto, etc. keywords instead!
-LOG: lev:3 file:../pbx/pbx_ael.c  line:2247 func: check_pval_item  Warning: file ./apptest.ael2, line 37-37: application call to ExecIf needs to be re-written using AEL if, while, goto, etc. keywords instead!
-LOG: lev:4 file:../pbx/pbx_ael.c  line:1197 func: check_goto  Error: file ./apptest.ael2, line 46-46: goto:  no context cont could be found that matches the goto target!
-LOG: lev:3 file:../pbx/pbx_ael.c  line:2247 func: check_pval_item  Warning: file ./apptest.ael2, line 47-47: application call to GotoIf needs to be re-written using AEL if, while, goto, etc. keywords instead!
-LOG: lev:3 file:../pbx/pbx_ael.c  line:2247 func: check_pval_item  Warning: file ./apptest.ael2, line 48-48: application call to GotoIfTime needs to be re-written using AEL if, while, goto, etc. keywords instead!
-LOG: lev:3 file:../pbx/pbx_ael.c  line:2247 func: check_pval_item  Warning: file ./apptest.ael2, line 85-85: application call to Random needs to be re-written using AEL if, while, goto, etc. keywords instead!
-LOG: lev:3 file:../pbx/pbx_ael.c  line:2247 func: check_pval_item  Warning: file ./apptest.ael2, line 141-141: application call to While needs to be re-written using AEL if, while, goto, etc. keywords instead!
-LOG: lev:4 file:../pbx/pbx_ael.c  line:3770 func: pbx_load_module  Sorry, but 0 syntax errors and 1 semantic errors were detected. It doesn't make sense to compile.
-LOG: lev:4 file:ael2_parse  line:458 func: main  0 contexts, 0 extensions, 0 priorities
+LOG: lev:2 file:../pbx/pbx_ael.c  line:3856 func: pbx_load_module  Starting AEL load process.
+LOG: lev:2 file:../pbx/pbx_ael.c  line:3863 func: pbx_load_module  AEL load process: calculated config file name './extensions.ael'.
+LOG: lev:2 file:ael.flex  line:429 func: ael_yylex    --Read in included file ./apptest.ael2, 3474 chars
+LOG: lev:3 file:ael.y  line:523 func: ael_yyparse  ==== File: ./apptest.ael2, Line 46, Cols: 8-11: Suggestion: Use the goto statement instead of the Goto() application call in AEL.
+LOG: lev:2 file:../pbx/pbx_ael.c  line:3866 func: pbx_load_module  AEL load process: parsed config file name './extensions.ael'.
+LOG: lev:3 file:../pbx/pbx_ael.c  line:2368 func: check_pval_item  Warning: file ./apptest.ael2, line 35-35: application call to EndWhile affects flow of control, and needs to be re-written using AEL if, while, goto, etc. keywords instead!
+LOG: lev:3 file:../pbx/pbx_ael.c  line:2368 func: check_pval_item  Warning: file ./apptest.ael2, line 37-37: application call to ExecIf affects flow of control, and needs to be re-written using AEL if, while, goto, etc. keywords instead!
+LOG: lev:3 file:../pbx/pbx_ael.c  line:2368 func: check_pval_item  Warning: file ./apptest.ael2, line 38-38: application call to ExecIfTime affects flow of control, and needs to be re-written using AEL if, while, goto, etc. keywords instead!
+LOG: lev:3 file:../pbx/pbx_ael.c  line:2368 func: check_pval_item  Warning: file ./apptest.ael2, line 44-44: application call to Gosub affects flow of control, and needs to be re-written using AEL if, while, goto, etc. keywords instead!
+LOG: lev:3 file:../pbx/pbx_ael.c  line:2368 func: check_pval_item  Warning: file ./apptest.ael2, line 45-45: application call to GosubIf affects flow of control, and needs to be re-written using AEL if, while, goto, etc. keywords instead!
+LOG: lev:4 file:../pbx/pbx_ael.c  line:1302 func: check_goto  Error: file ./apptest.ael2, line 46-46: goto:  no context cont could be found that matches the goto target!
+LOG: lev:3 file:../pbx/pbx_ael.c  line:2368 func: check_pval_item  Warning: file ./apptest.ael2, line 47-47: application call to GotoIf affects flow of control, and needs to be re-written using AEL if, while, goto, etc. keywords instead!
+LOG: lev:3 file:../pbx/pbx_ael.c  line:2368 func: check_pval_item  Warning: file ./apptest.ael2, line 48-48: application call to GotoIfTime affects flow of control, and needs to be re-written using AEL if, while, goto, etc. keywords instead!
+LOG: lev:3 file:../pbx/pbx_ael.c  line:2368 func: check_pval_item  Warning: file ./apptest.ael2, line 58-58: application call to Macro affects flow of control, and needs to be re-written using AEL if, while, goto, etc. keywords instead!
+LOG: lev:3 file:../pbx/pbx_ael.c  line:2373 func: check_pval_item  Warning: file ./apptest.ael2, line 59-59: I am converting the MacroExit call here to a return statement.
+LOG: lev:3 file:../pbx/pbx_ael.c  line:2368 func: check_pval_item  Warning: file ./apptest.ael2, line 60-60: application call to MacroIf affects flow of control, and needs to be re-written using AEL if, while, goto, etc. keywords instead!
+LOG: lev:3 file:../pbx/pbx_ael.c  line:2368 func: check_pval_item  Warning: file ./apptest.ael2, line 85-85: application call to Random affects flow of control, and needs to be re-written using AEL if, while, goto, etc. keywords instead!
+LOG: lev:3 file:../pbx/pbx_ael.c  line:2368 func: check_pval_item  Warning: file ./apptest.ael2, line 94-94: application call to Return affects flow of control, and needs to be re-written using AEL if, while, goto, etc. keywords instead!
+LOG: lev:3 file:../pbx/pbx_ael.c  line:2368 func: check_pval_item  Warning: file ./apptest.ael2, line 119-119: application call to StackPop affects flow of control, and needs to be re-written using AEL if, while, goto, etc. keywords instead!
+LOG: lev:3 file:../pbx/pbx_ael.c  line:2368 func: check_pval_item  Warning: file ./apptest.ael2, line 141-141: application call to While affects flow of control, and needs to be re-written using AEL if, while, goto, etc. keywords instead!
+LOG: lev:4 file:../pbx/pbx_ael.c  line:3879 func: pbx_load_module  Sorry, but 0 syntax errors and 1 semantic errors were detected. It doesn't make sense to compile.
+LOG: lev:4 file:ael2_parse  line:479 func: main  0 contexts, 0 extensions, 0 priorities
index 06bae94..b0b7523 100644 (file)
@@ -2,11 +2,14 @@
 (If you find progress and other non-error messages irritating, you can use -q to suppress them)
 
 (You can use the -w option to dump extensions.conf format to extensions.conf.aeldump)
-LOG: lev:2 file:../pbx/pbx_ael.c  line:3747 func: pbx_load_module  Starting AEL load process.
-LOG: lev:2 file:../pbx/pbx_ael.c  line:3754 func: pbx_load_module  AEL load process: calculated config file name './extensions.ael'.
-LOG: lev:2 file:../pbx/pbx_ael.c  line:3757 func: pbx_load_module  AEL load process: parsed config file name './extensions.ael'.
-LOG: lev:2 file:../pbx/pbx_ael.c  line:3760 func: pbx_load_module  AEL load process: checked config file name './extensions.ael'.
-LOG: lev:2 file:../pbx/pbx_ael.c  line:3762 func: pbx_load_module  AEL load process: compiled config file name './extensions.ael'.
-LOG: lev:2 file:../pbx/pbx_ael.c  line:3765 func: pbx_load_module  AEL load process: merged config file name './extensions.ael'.
-LOG: lev:2 file:../pbx/pbx_ael.c  line:3768 func: pbx_load_module  AEL load process: verified config file name './extensions.ael'.
-LOG: lev:4 file:ael2_parse  line:458 func: main  38 contexts, 90 extensions, 484 priorities
+LOG: lev:2 file:../pbx/pbx_ael.c  line:3850 func: pbx_load_module  Starting AEL load process.
+LOG: lev:2 file:../pbx/pbx_ael.c  line:3857 func: pbx_load_module  AEL load process: calculated config file name './extensions.ael'.
+LOG: lev:2 file:../pbx/pbx_ael.c  line:3860 func: pbx_load_module  AEL load process: parsed config file name './extensions.ael'.
+LOG: lev:3 file:../pbx/pbx_ael.c  line:712 func: check_macro_returns  Warning: file ./extensions.ael, line 130-183: The macro stdexten does not end with a return; I will insert one.
+LOG: lev:3 file:../pbx/pbx_ael.c  line:712 func: check_macro_returns  Warning: file ./extensions.ael, line 185-192: The macro uvm does not end with a return; I will insert one.
+LOG: lev:3 file:../pbx/pbx_ael.c  line:712 func: check_macro_returns  Warning: file ./extensions.ael, line 194-201: The macro bvm does not end with a return; I will insert one.
+LOG: lev:2 file:../pbx/pbx_ael.c  line:3863 func: pbx_load_module  AEL load process: checked config file name './extensions.ael'.
+LOG: lev:2 file:../pbx/pbx_ael.c  line:3865 func: pbx_load_module  AEL load process: compiled config file name './extensions.ael'.
+LOG: lev:2 file:../pbx/pbx_ael.c  line:3868 func: pbx_load_module  AEL load process: merged config file name './extensions.ael'.
+LOG: lev:2 file:../pbx/pbx_ael.c  line:3871 func: pbx_load_module  AEL load process: verified config file name './extensions.ael'.
+LOG: lev:4 file:ael2_parse  line:479 func: main  38 contexts, 90 extensions, 492 priorities
index 998ce3b..bb8a8ba 100644 (file)
@@ -2,15 +2,23 @@
 (If you find progress and other non-error messages irritating, you can use -q to suppress them)
 
 (You can use the -w option to dump extensions.conf format to extensions.conf.aeldump)
-LOG: lev:2 file:../pbx/pbx_ael.c  line:3747 func: pbx_load_module  Starting AEL load process.
-LOG: lev:2 file:../pbx/pbx_ael.c  line:3754 func: pbx_load_module  AEL load process: calculated config file name './extensions.ael'.
-LOG: lev:4 file:ael.flex  line:269 func: ael_yylex  File=./extensions.ael, line=165, column=49: Mismatched '}' in expression!
-LOG: lev:4 file:ael.y  line:735 func: ael_yyerror  ==== File: ./extensions.ael, Line 165, Cols: 51-51: Error: syntax error, unexpected '=', expecting ')'
-LOG: lev:4 file:ael.y  line:735 func: ael_yyerror  ==== File: ./extensions.ael, Line 169, Cols: 24-24: Error: syntax error, unexpected '&'
-LOG: lev:4 file:ael.flex  line:269 func: ael_yylex  File=./extensions.ael, line=222, column=41: Mismatched '}' in expression!
-LOG: lev:4 file:ael.y  line:735 func: ael_yyerror  ==== File: ./extensions.ael, Line 222, Cols: 43-43: Error: syntax error, unexpected '=', expecting ')'
-LOG: lev:4 file:ael.y  line:735 func: ael_yyerror  ==== File: ./extensions.ael, Line 226, Cols: 16-16: Error: syntax error, unexpected '&'
-LOG: lev:4 file:ael.y  line:735 func: ael_yyerror  ==== File: ./extensions.ael, Line 291, Cols: 21-28: Error: syntax error, unexpected word, expecting '(' or ';' or '=' or ':'
-LOG: lev:2 file:../pbx/pbx_ael.c  line:3757 func: pbx_load_module  AEL load process: parsed config file name './extensions.ael'.
-LOG: lev:4 file:../pbx/pbx_ael.c  line:3770 func: pbx_load_module  Sorry, but 5 syntax errors and 0 semantic errors were detected. It doesn't make sense to compile.
-LOG: lev:4 file:ael2_parse  line:458 func: main  0 contexts, 0 extensions, 0 priorities
+LOG: lev:2 file:../pbx/pbx_ael.c  line:3850 func: pbx_load_module  Starting AEL load process.
+LOG: lev:2 file:../pbx/pbx_ael.c  line:3857 func: pbx_load_module  AEL load process: calculated config file name './extensions.ael'.
+LOG: lev:4 file:ael.flex  line:276 func: ael_yylex  File=./extensions.ael, line=165, column=49: Mismatched '}' in expression!
+LOG: lev:4 file:ael.y  line:746 func: ael_yyerror  ==== File: ./extensions.ael, Line 165, Cols: 51-51: Error: syntax error, unexpected '=', expecting ')'
+LOG: lev:4 file:ael.y  line:746 func: ael_yyerror  ==== File: ./extensions.ael, Line 169, Cols: 24-24: Error: syntax error, unexpected '&'
+LOG: lev:4 file:ael.flex  line:276 func: ael_yylex  File=./extensions.ael, line=222, column=41: Mismatched '}' in expression!
+LOG: lev:4 file:ael.y  line:746 func: ael_yyerror  ==== File: ./extensions.ael, Line 222, Cols: 43-43: Error: syntax error, unexpected '=', expecting ')'
+LOG: lev:4 file:ael.y  line:746 func: ael_yyerror  ==== File: ./extensions.ael, Line 226, Cols: 16-16: Error: syntax error, unexpected '&'
+LOG: lev:4 file:ael.y  line:746 func: ael_yyerror  ==== File: ./extensions.ael, Line 291, Cols: 21-28: Error: syntax error, unexpected word, expecting '(' or ';' or '=' or ':'
+LOG: lev:2 file:../pbx/pbx_ael.c  line:3860 func: pbx_load_module  AEL load process: parsed config file name './extensions.ael'.
+LOG: lev:3 file:../pbx/pbx_ael.c  line:712 func: check_macro_returns  Warning: file ./extensions.ael, line 116-125: The macro dialout does not end with a return; I will insert one.
+LOG: lev:3 file:../pbx/pbx_ael.c  line:712 func: check_macro_returns  Warning: file ./extensions.ael, line 129-168: The macro stdexten does not end with a return; I will insert one.
+LOG: lev:3 file:../pbx/pbx_ael.c  line:712 func: check_macro_returns  Warning: file ./extensions.ael, line 184-191: The macro uvm does not end with a return; I will insert one.
+LOG: lev:3 file:../pbx/pbx_ael.c  line:712 func: check_macro_returns  Warning: file ./extensions.ael, line 193-200: The macro bvm does not end with a return; I will insert one.
+LOG: lev:3 file:../pbx/pbx_ael.c  line:712 func: check_macro_returns  Warning: file ./extensions.ael, line 202-207: The macro checkdnd does not end with a return; I will insert one.
+LOG: lev:3 file:../pbx/pbx_ael.c  line:712 func: check_macro_returns  Warning: file ./extensions.ael, line 209-216: The macro checkcf does not end with a return; I will insert one.
+LOG: lev:3 file:../pbx/pbx_ael.c  line:712 func: check_macro_returns  Warning: file ./extensions.ael, line 218-225: The macro checkcfb does not end with a return; I will insert one.
+LOG: lev:3 file:../pbx/pbx_ael.c  line:712 func: check_macro_returns  Warning: file ./extensions.ael, line 688-694: The macro check-psd-exists does not end with a return; I will insert one.
+LOG: lev:4 file:../pbx/pbx_ael.c  line:3873 func: pbx_load_module  Sorry, but 5 syntax errors and 0 semantic errors were detected. It doesn't make sense to compile.
+LOG: lev:4 file:ael2_parse  line:479 func: main  0 contexts, 0 extensions, 0 priorities
index a9a1b77..fb7f92c 100644 (file)
@@ -2,13 +2,19 @@
 (If you find progress and other non-error messages irritating, you can use -q to suppress them)
 
 (You can use the -w option to dump extensions.conf format to extensions.conf.aeldump)
-LOG: lev:2 file:../pbx/pbx_ael.c  line:3747 func: pbx_load_module  Starting AEL load process.
-LOG: lev:2 file:../pbx/pbx_ael.c  line:3754 func: pbx_load_module  AEL load process: calculated config file name './extensions.ael'.
-LOG: lev:2 file:../pbx/pbx_ael.c  line:3757 func: pbx_load_module  AEL load process: parsed config file name './extensions.ael'.
-LOG: lev:4 file:../pbx/pbx_ael.c  line:2221 func: check_pval_item  Error: file ./extensions.ael, line 98-98: The macro call to checkanddial has 5 arguments, but the macro definition has 7 arguments
-LOG: lev:4 file:../pbx/pbx_ael.c  line:2221 func: check_pval_item  Error: file ./extensions.ael, line 107-107: The macro call to checkanddial has 5 arguments, but the macro definition has 7 arguments
-LOG: lev:4 file:../pbx/pbx_ael.c  line:2221 func: check_pval_item  Error: file ./extensions.ael, line 284-284: The macro call to checkanddial has 5 arguments, but the macro definition has 7 arguments
-LOG: lev:4 file:../pbx/pbx_ael.c  line:2221 func: check_pval_item  Error: file ./extensions.ael, line 287-287: The macro call to checkanddial has 5 arguments, but the macro definition has 7 arguments
-LOG: lev:4 file:../pbx/pbx_ael.c  line:2202 func: check_pval_item  Error: file ./extensions.ael, line 452-452: macro call to non-existent std-exten-ael !
-LOG: lev:4 file:../pbx/pbx_ael.c  line:3770 func: pbx_load_module  Sorry, but 0 syntax errors and 5 semantic errors were detected. It doesn't make sense to compile.
-LOG: lev:4 file:ael2_parse  line:458 func: main  0 contexts, 0 extensions, 0 priorities
+LOG: lev:2 file:../pbx/pbx_ael.c  line:3850 func: pbx_load_module  Starting AEL load process.
+LOG: lev:2 file:../pbx/pbx_ael.c  line:3857 func: pbx_load_module  AEL load process: calculated config file name './extensions.ael'.
+LOG: lev:2 file:../pbx/pbx_ael.c  line:3860 func: pbx_load_module  AEL load process: parsed config file name './extensions.ael'.
+LOG: lev:3 file:../pbx/pbx_ael.c  line:712 func: check_macro_returns  Warning: file ./extensions.ael, line 22-42: The macro stdexten does not end with a return; I will insert one.
+LOG: lev:3 file:../pbx/pbx_ael.c  line:712 func: check_macro_returns  Warning: file ./extensions.ael, line 44-49: The macro announce_minutes does not end with a return; I will insert one.
+LOG: lev:3 file:../pbx/pbx_ael.c  line:712 func: check_macro_returns  Warning: file ./extensions.ael, line 59-89: The macro checkanddial does not end with a return; I will insert one.
+LOG: lev:3 file:../pbx/pbx_ael.c  line:712 func: check_macro_returns  Warning: file ./extensions.ael, line 91-100: The macro trunkdial does not end with a return; I will insert one.
+LOG: lev:4 file:../pbx/pbx_ael.c  line:2330 func: check_pval_item  Error: file ./extensions.ael, line 98-98: The macro call to checkanddial has 5 arguments, but the macro definition has 7 arguments
+LOG: lev:3 file:../pbx/pbx_ael.c  line:712 func: check_macro_returns  Warning: file ./extensions.ael, line 102-112: The macro checklocal does not end with a return; I will insert one.
+LOG: lev:4 file:../pbx/pbx_ael.c  line:2330 func: check_pval_item  Error: file ./extensions.ael, line 107-107: The macro call to checkanddial has 5 arguments, but the macro definition has 7 arguments
+LOG: lev:3 file:../pbx/pbx_ael.c  line:712 func: check_macro_returns  Warning: file ./extensions.ael, line 114-119: The macro autodial does not end with a return; I will insert one.
+LOG: lev:4 file:../pbx/pbx_ael.c  line:2330 func: check_pval_item  Error: file ./extensions.ael, line 284-284: The macro call to checkanddial has 5 arguments, but the macro definition has 7 arguments
+LOG: lev:4 file:../pbx/pbx_ael.c  line:2330 func: check_pval_item  Error: file ./extensions.ael, line 287-287: The macro call to checkanddial has 5 arguments, but the macro definition has 7 arguments
+LOG: lev:4 file:../pbx/pbx_ael.c  line:2311 func: check_pval_item  Error: file ./extensions.ael, line 452-452: macro call to non-existent std-exten-ael !
+LOG: lev:4 file:../pbx/pbx_ael.c  line:3873 func: pbx_load_module  Sorry, but 0 syntax errors and 5 semantic errors were detected. It doesn't make sense to compile.
+LOG: lev:4 file:ael2_parse  line:479 func: main  0 contexts, 0 extensions, 0 priorities
index 8da228e..ad48e1d 100644 (file)
@@ -10,12 +10,13 @@ FWDRINGS=Zap/6
 FWDVMBOX=1 
 
 
-[macro-std-exten]
+[std-exten]
 exten => s,1,Set(ext=${ARG1})
 exten => s,2,Set(dev=${ARG2})
 exten => s,3,Dial(${dev}/${ext}|20)
 exten => s,4,Goto(sw-1-${DIALSTATUS}|1)
 exten => s,5,NoOp(Finish switch-std-exten-1)
+exten => s,6,Return()
 exten => a,1,VoiceMailMain(${ext})
 exten => _sw-1-.,1,Voicemail(u${ext})
 exten => _sw-1-.,2,Goto(s|5)
@@ -26,7 +27,7 @@ exten => sw-1-BUSY,1,Voicemail(b${ext})
 exten => sw-1-BUSY,2,Goto(s|5)
 
 
-[macro-std-priv-exten_1]
+[std-priv-exten_1]
 exten => s,1,Set(dev=${ARG1})
 exten => s,2,Set(ext=${ARG2})
 exten => s,3,Set(timeout=${ARG3})
@@ -37,6 +38,7 @@ exten => s,7,Dial(${dev}|${timeout}|${opts})
 exten => s,8,NoOp(${DIALSTATUS} was chosen)
 exten => s,9,Goto(sw-3-${DIALSTATUS}|1)
 exten => s,10,NoOp(Finish switch-std-priv-exten_1-3)
+exten => s,11,Return()
 exten => _sw-3-.,1,Voicemail(u${ext})
 exten => _sw-3-.,2,Goto(s|10)
 exten => sw-3-NOANSWER,1,Voicemail(u${ext})
@@ -50,7 +52,7 @@ exten => sw-3-TORTURE,1,Goto(${torcont}|s|begin)
 exten => sw-3-TORTURE,2,Goto(s|10)
 
 
-[macro-std-priv-exten_2]
+[std-priv-exten_2]
 exten => s,1,Set(dev=${ARG1})
 exten => s,2,Set(ext=${ARG2})
 exten => s,3,Set(timeout=${ARG3})
@@ -61,6 +63,7 @@ exten => s,7,Dial(${dev}|${timeout}|${opts})
 exten => s,8,NoOp(${DIALSTATUS} was chosen)
 exten => s,9,Goto(sw-4-${DIALSTATUS}|1)
 exten => s,10,NoOp(Finish switch-std-priv-exten_2-4)
+exten => s,11,Return()
 exten => _sw-4-.,1,Voicemail(u${ext})
 exten => _sw-4-.,2,Goto(s|10)
 exten => sw-4-NOANSWER,1,Voicemail(u${ext})
@@ -74,7 +77,7 @@ exten => sw-4-TORTURE,1,Goto(${torcont}|s|begin)
 exten => sw-4-TORTURE,2,Goto(s|10)
 
 
-[macro-std-priv-exten_3]
+[std-priv-exten_3]
 exten => s,1,Set(dev=${ARG1})
 exten => s,2,Set(ext=${ARG2})
 exten => s,3,Set(timeout=${ARG3})
@@ -85,6 +88,7 @@ exten => s,7,Dial(${dev}|${timeout}|${opts})
 exten => s,8,NoOp(${DIALSTATUS} was chosen)
 exten => s,9,Goto(sw-5-${DIALSTATUS}|1)
 exten => s,10,NoOp(Finish switch-std-priv-exten_3-5)
+exten => s,11,Return()
 exten => _sw-5-.,1,Voicemail(u${ext})
 exten => _sw-5-.,2,Goto(s|10)
 exten => sw-5-NOANSWER,1,Voicemail(u${ext})
@@ -98,7 +102,7 @@ exten => sw-5-TORTURE,1,Goto(${torcont}|s|begin)
 exten => sw-5-TORTURE,2,Goto(s|10)
 
 
-[macro-std-priv-exten_4]
+[std-priv-exten_4]
 exten => s,1,Set(dev=${ARG1})
 exten => s,2,Set(ext=${ARG2})
 exten => s,3,Set(timeout=${ARG3})
@@ -109,6 +113,7 @@ exten => s,7,Dial(${dev}|${timeout}|${opts})
 exten => s,8,NoOp(${DIALSTATUS} was chosen)
 exten => s,9,Goto(sw-6-${DIALSTATUS}|1)
 exten => s,10,NoOp(Finish switch-std-priv-exten_4-6)
+exten => s,11,Return()
 exten => _sw-6-.,1,Voicemail(u${ext})
 exten => _sw-6-.,2,Goto(s|10)
 exten => sw-6-NOANSWER,1,Voicemail(u${ext})
@@ -122,7 +127,7 @@ exten => sw-6-TORTURE,1,Goto(${torcont}|s|begin)
 exten => sw-6-TORTURE,2,Goto(s|10)
 
 
-[macro-std-priv-exten_5]
+[std-priv-exten_5]
 exten => s,1,Set(dev=${ARG1})
 exten => s,2,Set(ext=${ARG2})
 exten => s,3,Set(timeout=${ARG3})
@@ -133,6 +138,7 @@ exten => s,7,Dial(${dev}|${timeout}|${opts})
 exten => s,8,NoOp(${DIALSTATUS} was chosen)
 exten => s,9,Goto(sw-7-${DIALSTATUS}|1)
 exten => s,10,NoOp(Finish switch-std-priv-exten_5-7)
+exten => s,11,Return()
 exten => _sw-7-.,1,Voicemail(u${ext})
 exten => _sw-7-.,2,Goto(s|10)
 exten => sw-7-NOANSWER,1,Voicemail(u${ext})
@@ -146,7 +152,7 @@ exten => sw-7-TORTURE,1,Goto(${torcont}|s|begin)
 exten => sw-7-TORTURE,2,Goto(s|10)
 
 
-[macro-std-priv-exten_6]
+[std-priv-exten_6]
 exten => s,1,Set(dev=${ARG1})
 exten => s,2,Set(ext=${ARG2})
 exten => s,3,Set(timeout=${ARG3})
@@ -157,6 +163,7 @@ exten => s,7,Dial(${dev}|${timeout}|${opts})
 exten => s,8,NoOp(${DIALSTATUS} was chosen)
 exten => s,9,Goto(sw-8-${DIALSTATUS}|1)
 exten => s,10,NoOp(Finish switch-std-priv-exten_6-8)
+exten => s,11,Return()
 exten => _sw-8-.,1,Voicemail(u${ext})
 exten => _sw-8-.,2,Goto(s|10)
 exten => sw-8-NOANSWER,1,Voicemail(u${ext})
@@ -170,7 +177,7 @@ exten => sw-8-TORTURE,1,Goto(${torcont}|s|begin)
 exten => sw-8-TORTURE,2,Goto(s|10)
 
 
-[macro-std-priv-exten_7]
+[std-priv-exten_7]
 exten => s,1,Set(dev=${ARG1})
 exten => s,2,Set(ext=${ARG2})
 exten => s,3,Set(timeout=${ARG3})
@@ -181,6 +188,7 @@ exten => s,7,Dial(${dev}|${timeout}|${opts})
 exten => s,8,NoOp(${DIALSTATUS} was chosen)
 exten => s,9,Goto(sw-9-${DIALSTATUS}|1)
 exten => s,10,NoOp(Finish switch-std-priv-exten_7-9)
+exten => s,11,Return()
 exten => _sw-9-.,1,Voicemail(u${ext})
 exten => _sw-9-.,2,Goto(s|10)
 exten => sw-9-NOANSWER,1,Voicemail(u${ext})
@@ -194,7 +202,7 @@ exten => sw-9-TORTURE,1,Goto(${torcont}|s|begin)
 exten => sw-9-TORTURE,2,Goto(s|10)
 
 
-[macro-std-priv-exten_8]
+[std-priv-exten_8]
 exten => s,1,Set(dev=${ARG1})
 exten => s,2,Set(ext=${ARG2})
 exten => s,3,Set(timeout=${ARG3})
@@ -205,6 +213,7 @@ exten => s,7,Dial(${dev}|${timeout}|${opts})
 exten => s,8,NoOp(${DIALSTATUS} was chosen)
 exten => s,9,Goto(sw-10-${DIALSTATUS}|1)
 exten => s,10,NoOp(Finish switch-std-priv-exten_8-10)
+exten => s,11,Return()
 exten => _sw-10-.,1,Voicemail(u${ext})
 exten => _sw-10-.,2,Goto(s|10)
 exten => sw-10-NOANSWER,1,Voicemail(u${ext})
@@ -218,7 +227,7 @@ exten => sw-10-TORTURE,1,Goto(${torcont}|s|begin)
 exten => sw-10-TORTURE,2,Goto(s|10)
 
 
-[macro-std-priv-exten_9]
+[std-priv-exten_9]
 exten => s,1,Set(dev=${ARG1})
 exten => s,2,Set(ext=${ARG2})
 exten => s,3,Set(timeout=${ARG3})
@@ -229,6 +238,7 @@ exten => s,7,Dial(${dev}|${timeout}|${opts})
 exten => s,8,NoOp(${DIALSTATUS} was chosen)
 exten => s,9,Goto(sw-11-${DIALSTATUS}|1)
 exten => s,10,NoOp(Finish switch-std-priv-exten_9-11)
+exten => s,11,Return()
 exten => _sw-11-.,1,Voicemail(u${ext})
 exten => _sw-11-.,2,Goto(s|10)
 exten => sw-11-NOANSWER,1,Voicemail(u${ext})
@@ -242,7 +252,7 @@ exten => sw-11-TORTURE,1,Goto(${torcont}|s|begin)
 exten => sw-11-TORTURE,2,Goto(s|10)
 
 
-[macro-std-priv-exten_10]
+[std-priv-exten_10]
 exten => s,1,Set(dev=${ARG1})
 exten => s,2,Set(ext=${ARG2})
 exten => s,3,Set(timeout=${ARG3})
@@ -253,6 +263,7 @@ exten => s,7,Dial(${dev}|${timeout}|${opts})
 exten => s,8,NoOp(${DIALSTATUS} was chosen)
 exten => s,9,Goto(sw-12-${DIALSTATUS}|1)
 exten => s,10,NoOp(Finish switch-std-priv-exten_10-12)
+exten => s,11,Return()
 exten => _sw-12-.,1,Voicemail(u${ext})
 exten => _sw-12-.,2,Goto(s|10)
 exten => sw-12-NOANSWER,1,Voicemail(u${ext})
@@ -266,7 +277,7 @@ exten => sw-12-TORTURE,1,Goto(${torcont}|s|begin)
 exten => sw-12-TORTURE,2,Goto(s|10)
 
 
-[macro-std-priv-exten_11]
+[std-priv-exten_11]
 exten => s,1,Set(dev=${ARG1})
 exten => s,2,Set(ext=${ARG2})
 exten => s,3,Set(timeout=${ARG3})
@@ -277,6 +288,7 @@ exten => s,7,Dial(${dev}|${timeout}|${opts})
 exten => s,8,NoOp(${DIALSTATUS} was chosen)
 exten => s,9,Goto(sw-13-${DIALSTATUS}|1)
 exten => s,10,NoOp(Finish switch-std-priv-exten_11-13)
+exten => s,11,Return()
 exten => _sw-13-.,1,Voicemail(u${ext})
 exten => _sw-13-.,2,Goto(s|10)
 exten => sw-13-NOANSWER,1,Voicemail(u${ext})
@@ -290,7 +302,7 @@ exten => sw-13-TORTURE,1,Goto(${torcont}|s|begin)
 exten => sw-13-TORTURE,2,Goto(s|10)
 
 
-[macro-std-priv-exten_12]
+[std-priv-exten_12]
 exten => s,1,Set(dev=${ARG1})
 exten => s,2,Set(ext=${ARG2})
 exten => s,3,Set(timeout=${ARG3})
@@ -301,6 +313,7 @@ exten => s,7,Dial(${dev}|${timeout}|${opts})
 exten => s,8,NoOp(${DIALSTATUS} was chosen)
 exten => s,9,Goto(sw-14-${DIALSTATUS}|1)
 exten => s,10,NoOp(Finish switch-std-priv-exten_12-14)
+exten => s,11,Return()
 exten => _sw-14-.,1,Voicemail(u${ext})
 exten => _sw-14-.,2,Goto(s|10)
 exten => sw-14-NOANSWER,1,Voicemail(u${ext})
@@ -314,7 +327,7 @@ exten => sw-14-TORTURE,1,Goto(${torcont}|s|begin)
 exten => sw-14-TORTURE,2,Goto(s|10)
 
 
-[macro-std-priv-exten_13]
+[std-priv-exten_13]
 exten => s,1,Set(dev=${ARG1})
 exten => s,2,Set(ext=${ARG2})
 exten => s,3,Set(timeout=${ARG3})
@@ -325,6 +338,7 @@ exten => s,7,Dial(${dev}|${timeout}|${opts})
 exten => s,8,NoOp(${DIALSTATUS} was chosen)
 exten => s,9,Goto(sw-15-${DIALSTATUS}|1)
 exten => s,10,NoOp(Finish switch-std-priv-exten_13-15)
+exten => s,11,Return()
 exten => _sw-15-.,1,Voicemail(u${ext})
 exten => _sw-15-.,2,Goto(s|10)
 exten => sw-15-NOANSWER,1,Voicemail(u${ext})
@@ -338,7 +352,7 @@ exten => sw-15-TORTURE,1,Goto(${torcont}|s|begin)
 exten => sw-15-TORTURE,2,Goto(s|10)
 
 
-[macro-std-priv-exten_14]
+[std-priv-exten_14]
 exten => s,1,Set(dev=${ARG1})
 exten => s,2,Set(ext=${ARG2})
 exten => s,3,Set(timeout=${ARG3})
@@ -349,6 +363,7 @@ exten => s,7,Dial(${dev}|${timeout}|${opts})
 exten => s,8,NoOp(${DIALSTATUS} was chosen)
 exten => s,9,Goto(sw-16-${DIALSTATUS}|1)
 exten => s,10,NoOp(Finish switch-std-priv-exten_14-16)
+exten => s,11,Return()
 exten => _sw-16-.,1,Voicemail(u${ext})
 exten => _sw-16-.,2,Goto(s|10)
 exten => sw-16-NOANSWER,1,Voicemail(u${ext})
@@ -362,7 +377,7 @@ exten => sw-16-TORTURE,1,Goto(${torcont}|s|begin)
 exten => sw-16-TORTURE,2,Goto(s|10)
 
 
-[macro-std-priv-exten_15]
+[std-priv-exten_15]
 exten => s,1,Set(dev=${ARG1})
 exten => s,2,Set(ext=${ARG2})
 exten => s,3,Set(timeout=${ARG3})
@@ -373,6 +388,7 @@ exten => s,7,Dial(${dev}|${timeout}|${opts})
 exten => s,8,NoOp(${DIALSTATUS} was chosen)
 exten => s,9,Goto(sw-17-${DIALSTATUS}|1)
 exten => s,10,NoOp(Finish switch-std-priv-exten_15-17)
+exten => s,11,Return()
 exten => _sw-17-.,1,Voicemail(u${ext})
 exten => _sw-17-.,2,Goto(s|10)
 exten => sw-17-NOANSWER,1,Voicemail(u${ext})
@@ -386,7 +402,7 @@ exten => sw-17-TORTURE,1,Goto(${torcont}|s|begin)
 exten => sw-17-TORTURE,2,Goto(s|10)
 
 
-[macro-std-priv-exten_16]
+[std-priv-exten_16]
 exten => s,1,Set(dev=${ARG1})
 exten => s,2,Set(ext=${ARG2})
 exten => s,3,Set(timeout=${ARG3})
@@ -397,6 +413,7 @@ exten => s,7,Dial(${dev}|${timeout}|${opts})
 exten => s,8,NoOp(${DIALSTATUS} was chosen)
 exten => s,9,Goto(sw-18-${DIALSTATUS}|1)
 exten => s,10,NoOp(Finish switch-std-priv-exten_16-18)
+exten => s,11,Return()
 exten => _sw-18-.,1,Voicemail(u${ext})
 exten => _sw-18-.,2,Goto(s|10)
 exten => sw-18-NOANSWER,1,Voicemail(u${ext})
@@ -410,7 +427,7 @@ exten => sw-18-TORTURE,1,Goto(${torcont}|s|begin)
 exten => sw-18-TORTURE,2,Goto(s|10)
 
 
-[macro-std-priv-exten_17]
+[std-priv-exten_17]
 exten => s,1,Set(dev=${ARG1})
 exten => s,2,Set(ext=${ARG2})
 exten => s,3,Set(timeout=${ARG3})
@@ -421,6 +438,7 @@ exten => s,7,Dial(${dev}|${timeout}|${opts})
 exten => s,8,NoOp(${DIALSTATUS} was chosen)
 exten => s,9,Goto(sw-19-${DIALSTATUS}|1)
 exten => s,10,NoOp(Finish switch-std-priv-exten_17-19)
+exten => s,11,Return()
 exten => _sw-19-.,1,Voicemail(u${ext})
 exten => _sw-19-.,2,Goto(s|10)
 exten => sw-19-NOANSWER,1,Voicemail(u${ext})
@@ -434,7 +452,7 @@ exten => sw-19-TORTURE,1,Goto(${torcont}|s|begin)
 exten => sw-19-TORTURE,2,Goto(s|10)
 
 
-[macro-std-priv-exten_18]
+[std-priv-exten_18]
 exten => s,1,Set(dev=${ARG1})
 exten => s,2,Set(ext=${ARG2})
 exten => s,3,Set(timeout=${ARG3})
@@ -445,6 +463,7 @@ exten => s,7,Dial(${dev}|${timeout}|${opts})
 exten => s,8,NoOp(${DIALSTATUS} was chosen)
 exten => s,9,Goto(sw-20-${DIALSTATUS}|1)
 exten => s,10,NoOp(Finish switch-std-priv-exten_18-20)
+exten => s,11,Return()
 exten => _sw-20-.,1,Voicemail(u${ext})
 exten => _sw-20-.,2,Goto(s|10)
 exten => sw-20-NOANSWER,1,Voicemail(u${ext})
@@ -458,7 +477,7 @@ exten => sw-20-TORTURE,1,Goto(${torcont}|s|begin)
 exten => sw-20-TORTURE,2,Goto(s|10)
 
 
-[macro-std-priv-exten_19]
+[std-priv-exten_19]
 exten => s,1,Set(dev=${ARG1})
 exten => s,2,Set(ext=${ARG2})
 exten => s,3,Set(timeout=${ARG3})
@@ -469,6 +488,7 @@ exten => s,7,Dial(${dev}|${timeout}|${opts})
 exten => s,8,NoOp(${DIALSTATUS} was chosen)
 exten => s,9,Goto(sw-21-${DIALSTATUS}|1)
 exten => s,10,NoOp(Finish switch-std-priv-exten_19-21)
+exten => s,11,Return()
 exten => _sw-21-.,1,Voicemail(u${ext})
 exten => _sw-21-.,2,Goto(s|10)
 exten => sw-21-NOANSWER,1,Voicemail(u${ext})
@@ -482,7 +502,7 @@ exten => sw-21-TORTURE,1,Goto(${torcont}|s|begin)
 exten => sw-21-TORTURE,2,Goto(s|10)
 
 
-[macro-std-priv-exten_20]
+[std-priv-exten_20]
 exten => s,1,Set(dev=${ARG1})
 exten => s,2,Set(ext=${ARG2})
 exten => s,3,Set(timeout=${ARG3})
@@ -493,6 +513,7 @@ exten => s,7,Dial(${dev}|${timeout}|${opts})
 exten => s,8,NoOp(${DIALSTATUS} was chosen)
 exten => s,9,Goto(sw-22-${DIALSTATUS}|1)
 exten => s,10,NoOp(Finish switch-std-priv-exten_20-22)
+exten => s,11,Return()
 exten => _sw-22-.,1,Voicemail(u${ext})
 exten => _sw-22-.,2,Goto(s|10)
 exten => sw-22-NOANSWER,1,Voicemail(u${ext})
@@ -506,7 +527,7 @@ exten => sw-22-TORTURE,1,Goto(${torcont}|s|begin)
 exten => sw-22-TORTURE,2,Goto(s|10)
 
 
-[macro-std-priv-exten_21]
+[std-priv-exten_21]
 exten => s,1,Set(dev=${ARG1})
 exten => s,2,Set(ext=${ARG2})
 exten => s,3,Set(timeout=${ARG3})
@@ -517,6 +538,7 @@ exten => s,7,Dial(${dev}|${timeout}|${opts})
 exten => s,8,NoOp(${DIALSTATUS} was chosen)
 exten => s,9,Goto(sw-23-${DIALSTATUS}|1)
 exten => s,10,NoOp(Finish switch-std-priv-exten_21-23)
+exten => s,11,Return()
 exten => _sw-23-.,1,Voicemail(u${ext})
 exten => _sw-23-.,2,Goto(s|10)
 exten => sw-23-NOANSWER,1,Voicemail(u${ext})
@@ -530,7 +552,7 @@ exten => sw-23-TORTURE,1,Goto(${torcont}|s|begin)
 exten => sw-23-TORTURE,2,Goto(s|10)
 
 
-[macro-std-priv-exten_22]
+[std-priv-exten_22]
 exten => s,1,Set(dev=${ARG1})
 exten => s,2,Set(ext=${ARG2})
 exten => s,3,Set(timeout=${ARG3})
@@ -541,6 +563,7 @@ exten => s,7,Dial(${dev}|${timeout}|${opts})
 exten => s,8,NoOp(${DIALSTATUS} was chosen)
 exten => s,9,Goto(sw-24-${DIALSTATUS}|1)
 exten => s,10,NoOp(Finish switch-std-priv-exten_22-24)
+exten => s,11,Return()
 exten => _sw-24-.,1,Voicemail(u${ext})
 exten => _sw-24-.,2,Goto(s|10)
 exten => sw-24-NOANSWER,1,Voicemail(u${ext})
@@ -554,7 +577,7 @@ exten => sw-24-TORTURE,1,Goto(${torcont}|s|begin)
 exten => sw-24-TORTURE,2,Goto(s|10)
 
 
-[macro-std-priv-exten_23]
+[std-priv-exten_23]
 exten => s,1,Set(dev=${ARG1})
 exten => s,2,Set(ext=${ARG2})
 exten => s,3,Set(timeout=${ARG3})
@@ -565,6 +588,7 @@ exten => s,7,Dial(${dev}|${timeout}|${opts})
 exten => s,8,NoOp(${DIALSTATUS} was chosen)
 exten => s,9,Goto(sw-25-${DIALSTATUS}|1)
 exten => s,10,NoOp(Finish switch-std-priv-exten_23-25)
+exten => s,11,Return()
 exten => _sw-25-.,1,Voicemail(u${ext})
 exten => _sw-25-.,2,Goto(s|10)
 exten => sw-25-NOANSWER,1,Voicemail(u${ext})
@@ -578,7 +602,7 @@ exten => sw-25-TORTURE,1,Goto(${torcont}|s|begin)
 exten => sw-25-TORTURE,2,Goto(s|10)
 
 
-[macro-std-priv-exten_24]
+[std-priv-exten_24]
 exten => s,1,Set(dev=${ARG1})
 exten => s,2,Set(ext=${ARG2})
 exten => s,3,Set(timeout=${ARG3})
@@ -589,6 +613,7 @@ exten => s,7,Dial(${dev}|${timeout}|${opts})
 exten => s,8,NoOp(${DIALSTATUS} was chosen)
 exten => s,9,Goto(sw-26-${DIALSTATUS}|1)
 exten => s,10,NoOp(Finish switch-std-priv-exten_24-26)
+exten => s,11,Return()
 exten => _sw-26-.,1,Voicemail(u${ext})
 exten => _sw-26-.,2,Goto(s|10)
 exten => sw-26-NOANSWER,1,Voicemail(u${ext})
@@ -602,7 +627,7 @@ exten => sw-26-TORTURE,1,Goto(${torcont}|s|begin)
 exten => sw-26-TORTURE,2,Goto(s|10)
 
 
-[macro-std-priv-exten_25]
+[std-priv-exten_25]
 exten => s,1,Set(dev=${ARG1})
 exten => s,2,Set(ext=${ARG2})
 exten => s,3,Set(timeout=${ARG3})
@@ -613,6 +638,7 @@ exten => s,7,Dial(${dev}|${timeout}|${opts})
 exten => s,8,NoOp(${DIALSTATUS} was chosen)
 exten => s,9,Goto(sw-27-${DIALSTATUS}|1)
 exten => s,10,NoOp(Finish switch-std-priv-exten_25-27)
+exten => s,11,Return()
 exten => _sw-27-.,1,Voicemail(u${ext})
 exten => _sw-27-.,2,Goto(s|10)
 exten => sw-27-NOANSWER,1,Voicemail(u${ext})
@@ -626,7 +652,7 @@ exten => sw-27-TORTURE,1,Goto(${torcont}|s|begin)
 exten => sw-27-TORTURE,2,Goto(s|10)
 
 
-[macro-std-priv-exten_26]
+[std-priv-exten_26]
 exten => s,1,Set(dev=${ARG1})
 exten => s,2,Set(ext=${ARG2})
 exten => s,3,Set(timeout=${ARG3})
@@ -637,6 +663,7 @@ exten => s,7,Dial(${dev}|${timeout}|${opts})
 exten => s,8,NoOp(${DIALSTATUS} was chosen)
 exten => s,9,Goto(sw-28-${DIALSTATUS}|1)
 exten => s,10,NoOp(Finish switch-std-priv-exten_26-28)
+exten => s,11,Return()
 exten => _sw-28-.,1,Voicemail(u${ext})
 exten => _sw-28-.,2,Goto(s|10)
 exten => sw-28-NOANSWER,1,Voicemail(u${ext})
@@ -650,7 +677,7 @@ exten => sw-28-TORTURE,1,Goto(${torcont}|s|begin)
 exten => sw-28-TORTURE,2,Goto(s|10)
 
 
-[macro-std-priv-exten_27]
+[std-priv-exten_27]
 exten => s,1,Set(dev=${ARG1})
 exten => s,2,Set(ext=${ARG2})
 exten => s,3,Set(timeout=${ARG3})
@@ -661,6 +688,7 @@ exten => s,7,Dial(${dev}|${timeout}|${opts})
 exten => s,8,NoOp(${DIALSTATUS} was chosen)
 exten => s,9,Goto(sw-29-${DIALSTATUS}|1)
 exten => s,10,NoOp(Finish switch-std-priv-exten_27-29)
+exten => s,11,Return()
 exten => _sw-29-.,1,Voicemail(u${ext})
 exten => _sw-29-.,2,Goto(s|10)
 exten => sw-29-NOANSWER,1,Voicemail(u${ext})
@@ -674,7 +702,7 @@ exten => sw-29-TORTURE,1,Goto(${torcont}|s|begin)
 exten => sw-29-TORTURE,2,Goto(s|10)
 
 
-[macro-std-priv-exten_28]
+[std-priv-exten_28]
 exten => s,1,Set(dev=${ARG1})
 exten => s,2,Set(ext=${ARG2})
 exten => s,3,Set(timeout=${ARG3})
@@ -685,6 +713,7 @@ exten => s,7,Dial(${dev}|${timeout}|${opts})
 exten => s,8,NoOp(${DIALSTATUS} was chosen)
 exten => s,9,Goto(sw-30-${DIALSTATUS}|1)
 exten => s,10,NoOp(Finish switch-std-priv-exten_28-30)
+exten => s,11,Return()
 exten => _sw-30-.,1,Voicemail(u${ext})
 exten => _sw-30-.,2,Goto(s|10)
 exten => sw-30-NOANSWER,1,Voicemail(u${ext})
@@ -698,7 +727,7 @@ exten => sw-30-TORTURE,1,Goto(${torcont}|s|begin)
 exten => sw-30-TORTURE,2,Goto(s|10)
 
 
-[macro-std-priv-exten_29]
+[std-priv-exten_29]
 exten => s,1,Set(dev=${ARG1})
 exten => s,2,Set(ext=${ARG2})
 exten => s,3,Set(timeout=${ARG3})
@@ -709,6 +738,7 @@ exten => s,7,Dial(${dev}|${timeout}|${opts})
 exten => s,8,NoOp(${DIALSTATUS} was chosen)
 exten => s,9,Goto(sw-31-${DIALSTATUS}|1)
 exten => s,10,NoOp(Finish switch-std-priv-exten_29-31)
+exten => s,11,Return()
 exten => _sw-31-.,1,Voicemail(u${ext})
 exten => _sw-31-.,2,Goto(s|10)
 exten => sw-31-NOANSWER,1,Voicemail(u${ext})
@@ -722,7 +752,7 @@ exten => sw-31-TORTURE,1,Goto(${torcont}|s|begin)
 exten => sw-31-TORTURE,2,Goto(s|10)
 
 
-[macro-std-priv-exten_30]
+[std-priv-exten_30]
 exten => s,1,Set(dev=${ARG1})
 exten => s,2,Set(ext=${ARG2})
 exten => s,3,Set(timeout=${ARG3})
@@ -733,6 +763,7 @@ exten => s,7,Dial(${dev}|${timeout}|${opts})
 exten => s,8,NoOp(${DIALSTATUS} was chosen)
 exten => s,9,Goto(sw-32-${DIALSTATUS}|1)
 exten => s,10,NoOp(Finish switch-std-priv-exten_30-32)
+exten => s,11,Return()
 exten => _sw-32-.,1,Voicemail(u${ext})
 exten => _sw-32-.,2,Goto(s|10)
 exten => sw-32-NOANSWER,1,Voicemail(u${ext})
@@ -746,7 +777,7 @@ exten => sw-32-TORTURE,1,Goto(${torcont}|s|begin)
 exten => sw-32-TORTURE,2,Goto(s|10)
 
 
-[macro-std-priv-exten_31]
+[std-priv-exten_31]
 exten => s,1,Set(dev=${ARG1})
 exten => s,2,Set(ext=${ARG2})
 exten => s,3,Set(timeout=${ARG3})
@@ -757,6 +788,7 @@ exten => s,7,Dial(${dev}|${timeout}|${opts})
 exten => s,8,NoOp(${DIALSTATUS} was chosen)
 exten => s,9,Goto(sw-33-${DIALSTATUS}|1)
 exten => s,10,NoOp(Finish switch-std-priv-exten_31-33)
+exten => s,11,Return()
 exten => _sw-33-.,1,Voicemail(u${ext})
 exten => _sw-33-.,2,Goto(s|10)
 exten => sw-33-NOANSWER,1,Voicemail(u${ext})
@@ -770,7 +802,7 @@ exten => sw-33-TORTURE,1,Goto(${torcont}|s|begin)
 exten => sw-33-TORTURE,2,Goto(s|10)
 
 
-[macro-std-priv-exten_32]
+[std-priv-exten_32]
 exten => s,1,Set(dev=${ARG1})
 exten => s,2,Set(ext=${ARG2})
 exten => s,3,Set(timeout=${ARG3})
@@ -781,6 +813,7 @@ exten => s,7,Dial(${dev}|${timeout}|${opts})
 exten => s,8,NoOp(${DIALSTATUS} was chosen)
 exten => s,9,Goto(sw-34-${DIALSTATUS}|1)
 exten => s,10,NoOp(Finish switch-std-priv-exten_32-34)
+exten => s,11,Return()
 exten => _sw-34-.,1,Voicemail(u${ext})
 exten => _sw-34-.,2,Goto(s|10)
 exten => sw-34-NOANSWER,1,Voicemail(u${ext})
@@ -794,7 +827,7 @@ exten => sw-34-TORTURE,1,Goto(${torcont}|s|begin)
 exten => sw-34-TORTURE,2,Goto(s|10)
 
 
-[macro-std-priv-exten_33]
+[std-priv-exten_33]
 exten => s,1,Set(dev=${ARG1})
 exten => s,2,Set(ext=${ARG2})
 exten => s,3,Set(timeout=${ARG3})
@@ -805,6 +838,7 @@ exten => s,7,Dial(${dev}|${timeout}|${opts})
 exten => s,8,NoOp(${DIALSTATUS} was chosen)
 exten => s,9,Goto(sw-35-${DIALSTATUS}|1)
 exten => s,10,NoOp(Finish switch-std-priv-exten_33-35)
+exten => s,11,Return()
 exten => _sw-35-.,1,Voicemail(u${ext})
 exten => _sw-35-.,2,Goto(s|10)
 exten => sw-35-NOANSWER,1,Voicemail(u${ext})
@@ -818,7 +852,7 @@ exten => sw-35-TORTURE,1,Goto(${torcont}|s|begin)
 exten => sw-35-TORTURE,2,Goto(s|10)
 
 
-[macro-std-priv-exten_34]
+[std-priv-exten_34]
 exten => s,1,Set(dev=${ARG1})
 exten => s,2,Set(ext=${ARG2})
 exten => s,3,Set(timeout=${ARG3})
@@ -829,6 +863,7 @@ exten => s,7,Dial(${dev}|${timeout}|${opts})
 exten => s,8,NoOp(${DIALSTATUS} was chosen)
 exten => s,9,Goto(sw-36-${DIALSTATUS}|1)
 exten => s,10,NoOp(Finish switch-std-priv-exten_34-36)
+exten => s,11,Return()
 exten => _sw-36-.,1,Voicemail(u${ext})
 exten => _sw-36-.,2,Goto(s|10)
 exten => sw-36-NOANSWER,1,Voicemail(u${ext})
@@ -842,7 +877,7 @@ exten => sw-36-TORTURE,1,Goto(${torcont}|s|begin)
 exten => sw-36-TORTURE,2,Goto(s|10)
 
 
-[macro-std-priv-exten_35]
+[std-priv-exten_35]
 exten => s,1,Set(dev=${ARG1})
 exten => s,2,Set(ext=${ARG2})
 exten => s,3,Set(timeout=${ARG3})
@@ -853,6 +888,7 @@ exten => s,7,Dial(${dev}|${timeout}|${opts})
 exten => s,8,NoOp(${DIALSTATUS} was chosen)
 exten => s,9,Goto(sw-37-${DIALSTATUS}|1)
 exten => s,10,NoOp(Finish switch-std-priv-exten_35-37)
+exten => s,11,Return()
 exten => _sw-37-.,1,Voicemail(u${ext})
 exten => _sw-37-.,2,Goto(s|10)
 exten => sw-37-NOANSWER,1,Voicemail(u${ext})
@@ -866,7 +902,7 @@ exten => sw-37-TORTURE,1,Goto(${torcont}|s|begin)
 exten => sw-37-TORTURE,2,Goto(s|10)
 
 
-[macro-std-priv-exten_36]
+[std-priv-exten_36]
 exten => s,1,Set(dev=${ARG1})
 exten => s,2,Set(ext=${ARG2})
 exten => s,3,Set(timeout=${ARG3})
@@ -877,6 +913,7 @@ exten => s,7,Dial(${dev}|${timeout}|${opts})
 exten => s,8,NoOp(${DIALSTATUS} was chosen)
 exten => s,9,Goto(sw-38-${DIALSTATUS}|1)
 exten => s,10,NoOp(Finish switch-std-priv-exten_36-38)
+exten => s,11,Return()
 exten => _sw-38-.,1,Voicemail(u${ext})
 exten => _sw-38-.,2,Goto(s|10)
 exten => sw-38-NOANSWER,1,Voicemail(u${ext})
@@ -890,7 +927,7 @@ exten => sw-38-TORTURE,1,Goto(${torcont}|s|begin)
 exten => sw-38-TORTURE,2,Goto(s|10)
 
 
-[macro-std-priv-exten_37]
+[std-priv-exten_37]
 exten => s,1,Set(dev=${ARG1})
 exten => s,2,Set(ext=${ARG2})
 exten => s,3,Set(timeout=${ARG3})
@@ -901,6 +938,7 @@ exten => s,7,Dial(${dev}|${timeout}|${opts})
 exten => s,8,NoOp(${DIALSTATUS} was chosen)
 exten => s,9,Goto(sw-39-${DIALSTATUS}|1)
 exten => s,10,NoOp(Finish switch-std-priv-exten_37-39)
+exten => s,11,Return()
 exten => _sw-39-.,1,Voicemail(u${ext})
 exten => _sw-39-.,2,Goto(s|10)
 exten => sw-39-NOANSWER,1,Voicemail(u${ext})
@@ -914,7 +952,7 @@ exten => sw-39-TORTURE,1,Goto(${torcont}|s|begin)
 exten => sw-39-TORTURE,2,Goto(s|10)
 
 
-[macro-std-priv-exten_38]
+[std-priv-exten_38]
 exten => s,1,Set(dev=${ARG1})
 exten => s,2,Set(ext=${ARG2})
 exten => s,3,Set(timeout=${ARG3})
@@ -925,6 +963,7 @@ exten => s,7,Dial(${dev}|${timeout}|${opts})
 exten => s,8,NoOp(${DIALSTATUS} was chosen)
 exten => s,9,Goto(sw-40-${DIALSTATUS}|1)
 exten => s,10,NoOp(Finish switch-std-priv-exten_38-40)
+exten => s,11,Return()
 exten => _sw-40-.,1,Voicemail(u${ext})
 exten => _sw-40-.,2,Goto(s|10)
 exten => sw-40-NOANSWER,1,Voicemail(u${ext})
@@ -938,7 +977,7 @@ exten => sw-40-TORTURE,1,Goto(${torcont}|s|begin)
 exten => sw-40-TORTURE,2,Goto(s|10)
 
 
-[macro-std-priv-exten_39]
+[std-priv-exten_39]
 exten => s,1,Set(dev=${ARG1})
 exten => s,2,Set(ext=${ARG2})
 exten => s,3,Set(timeout=${ARG3})
@@ -949,6 +988,7 @@ exten => s,7,Dial(${dev}|${timeout}|${opts})
 exten => s,8,NoOp(${DIALSTATUS} was chosen)
 exten => s,9,Goto(sw-41-${DIALSTATUS}|1)
 exten => s,10,NoOp(Finish switch-std-priv-exten_39-41)
+exten => s,11,Return()
 exten => _sw-41-.,1,Voicemail(u${ext})
 exten => _sw-41-.,2,Goto(s|10)
 exten => sw-41-NOANSWER,1,Voicemail(u${ext})
@@ -962,7 +1002,7 @@ exten => sw-41-TORTURE,1,Goto(${torcont}|s|begin)
 exten => sw-41-TORTURE,2,Goto(s|10)
 
 
-[macro-std-priv-exten_40]
+[std-priv-exten_40]
 exten => s,1,Set(dev=${ARG1})
 exten => s,2,Set(ext=${ARG2})
 exten => s,3,Set(timeout=${ARG3})
@@ -973,6 +1013,7 @@ exten => s,7,Dial(${dev}|${timeout}|${opts})
 exten => s,8,NoOp(${DIALSTATUS} was chosen)
 exten => s,9,Goto(sw-42-${DIALSTATUS}|1)
 exten => s,10,NoOp(Finish switch-std-priv-exten_40-42)
+exten => s,11,Return()
 exten => _sw-42-.,1,Voicemail(u${ext})
 exten => _sw-42-.,2,Goto(s|10)
 exten => sw-42-NOANSWER,1,Voicemail(u${ext})
@@ -986,7 +1027,7 @@ exten => sw-42-TORTURE,1,Goto(${torcont}|s|begin)
 exten => sw-42-TORTURE,2,Goto(s|10)
 
 
-[macro-std-priv-exten_41]
+[std-priv-exten_41]
 exten => s,1,Set(dev=${ARG1})
 exten => s,2,Set(ext=${ARG2})
 exten => s,3,Set(timeout=${ARG3})
@@ -997,6 +1038,7 @@ exten => s,7,Dial(${dev}|${timeout}|${opts})
 exten => s,8,NoOp(${DIALSTATUS} was chosen)
 exten => s,9,Goto(sw-43-${DIALSTATUS}|1)
 exten => s,10,NoOp(Finish switch-std-priv-exten_41-43)
+exten => s,11,Return()
 exten => _sw-43-.,1,Voicemail(u${ext})
 exten => _sw-43-.,2,Goto(s|10)
 exten => sw-43-NOANSWER,1,Voicemail(u${ext})
@@ -1010,7 +1052,7 @@ exten => sw-43-TORTURE,1,Goto(${torcont}|s|begin)
 exten => sw-43-TORTURE,2,Goto(s|10)
 
 
-[macro-std-priv-exten_42]
+[std-priv-exten_42]
 exten => s,1,Set(dev=${ARG1})
 exten => s,2,Set(ext=${ARG2})
 exten => s,3,Set(timeout=${ARG3})
@@ -1021,6 +1063,7 @@ exten => s,7,Dial(${dev}|${timeout}|${opts})
 exten => s,8,NoOp(${DIALSTATUS} was chosen)
 exten => s,9,Goto(sw-44-${DIALSTATUS}|1)
 exten => s,10,NoOp(Finish switch-std-priv-exten_42-44)
+exten => s,11,Return()
 exten => _sw-44-.,1,Voicemail(u${ext})
 exten => _sw-44-.,2,Goto(s|10)
 exten => sw-44-NOANSWER,1,Voicemail(u${ext})
@@ -1034,7 +1077,7 @@ exten => sw-44-TORTURE,1,Goto(${torcont}|s|begin)
 exten => sw-44-TORTURE,2,Goto(s|10)
 
 
-[macro-std-priv-exten_43]
+[std-priv-exten_43]
 exten => s,1,Set(dev=${ARG1})
 exten => s,2,Set(ext=${ARG2})
 exten => s,3,Set(timeout=${ARG3})
@@ -1045,6 +1088,7 @@ exten => s,7,Dial(${dev}|${timeout}|${opts})
 exten => s,8,NoOp(${DIALSTATUS} was chosen)
 exten => s,9,Goto(sw-45-${DIALSTATUS}|1)
 exten => s,10,NoOp(Finish switch-std-priv-exten_43-45)
+exten => s,11,Return()
 exten => _sw-45-.,1,Voicemail(u${ext})
 exten => _sw-45-.,2,Goto(s|10)
 exten => sw-45-NOANSWER,1,Voicemail(u${ext})
@@ -1058,7 +1102,7 @@ exten => sw-45-TORTURE,1,Goto(${torcont}|s|begin)
 exten => sw-45-TORTURE,2,Goto(s|10)
 
 
-[macro-std-priv-exten_44]
+[std-priv-exten_44]
 exten => s,1,Set(dev=${ARG1})
 exten => s,2,Set(ext=${ARG2})
 exten => s,3,Set(timeout=${ARG3})
@@ -1069,6 +1113,7 @@ exten => s,7,Dial(${dev}|${timeout}|${opts})
 exten => s,8,NoOp(${DIALSTATUS} was chosen)
 exten => s,9,Goto(sw-46-${DIALSTATUS}|1)
 exten => s,10,NoOp(Finish switch-std-priv-exten_44-46)
+exten => s,11,Return()
 exten => _sw-46-.,1,Voicemail(u${ext})
 exten => _sw-46-.,2,Goto(s|10)
 exten => sw-46-NOANSWER,1,Voicemail(u${ext})
@@ -1082,7 +1127,7 @@ exten => sw-46-TORTURE,1,Goto(${torcont}|s|begin)
 exten => sw-46-TORTURE,2,Goto(s|10)
 
 
-[macro-std-priv-exten_45]
+[std-priv-exten_45]
 exten => s,1,Set(dev=${ARG1})
 exten => s,2,Set(ext=${ARG2})
 exten => s,3,Set(timeout=${ARG3})
@@ -1093,6 +1138,7 @@ exten => s,7,Dial(${dev}|${timeout}|${opts})
 exten => s,8,NoOp(${DIALSTATUS} was chosen)
 exten => s,9,Goto(sw-47-${DIALSTATUS}|1)
 exten => s,10,NoOp(Finish switch-std-priv-exten_45-47)
+exten => s,11,Return()
 exten => _sw-47-.,1,Voicemail(u${ext})
 exten => _sw-47-.,2,Goto(s|10)
 exten => sw-47-NOANSWER,1,Voicemail(u${ext})
@@ -1106,7 +1152,7 @@ exten => sw-47-TORTURE,1,Goto(${torcont}|s|begin)
 exten => sw-47-TORTURE,2,Goto(s|10)
 
 
-[macro-std-priv-exten_46]
+[std-priv-exten_46]
 exten => s,1,Set(dev=${ARG1})
 exten => s,2,Set(ext=${ARG2})
 exten => s,3,Set(timeout=${ARG3})
@@ -1117,6 +1163,7 @@ exten => s,7,Dial(${dev}|${timeout}|${opts})
 exten => s,8,NoOp(${DIALSTATUS} was chosen)
 exten => s,9,Goto(sw-48-${DIALSTATUS}|1)
 exten => s,10,NoOp(Finish switch-std-priv-exten_46-48)
+exten => s,11,Return()
 exten => _sw-48-.,1,Voicemail(u${ext})
 exten => _sw-48-.,2,Goto(s|10)
 exten => sw-48-NOANSWER,1,Voicemail(u${ext})
@@ -1130,7 +1177,7 @@ exten => sw-48-TORTURE,1,Goto(${torcont}|s|begin)
 exten => sw-48-TORTURE,2,Goto(s|10)
 
 
-[macro-std-priv-exten_47]
+[std-priv-exten_47]
 exten => s,1,Set(dev=${ARG1})
 exten => s,2,Set(ext=${ARG2})
 exten => s,3,Set(timeout=${ARG3})
@@ -1141,6 +1188,7 @@ exten => s,7,Dial(${dev}|${timeout}|${opts})
 exten => s,8,NoOp(${DIALSTATUS} was chosen)
 exten => s,9,Goto(sw-49-${DIALSTATUS}|1)
 exten => s,10,NoOp(Finish switch-std-priv-exten_47-49)
+exten => s,11,Return()
 exten => _sw-49-.,1,Voicemail(u${ext})
 exten => _sw-49-.,2,Goto(s|10)
 exten => sw-49-NOANSWER,1,Voicemail(u${ext})
@@ -1154,7 +1202,7 @@ exten => sw-49-TORTURE,1,Goto(${torcont}|s|begin)
 exten => sw-49-TORTURE,2,Goto(s|10)
 
 
-[macro-std-priv-exten_48]
+[std-priv-exten_48]
 exten => s,1,Set(dev=${ARG1})
 exten => s,2,Set(ext=${ARG2})
 exten => s,3,Set(timeout=${ARG3})
@@ -1165,6 +1213,7 @@ exten => s,7,Dial(${dev}|${timeout}|${opts})
 exten => s,8,NoOp(${DIALSTATUS} was chosen)
 exten => s,9,Goto(sw-50-${DIALSTATUS}|1)
 exten => s,10,NoOp(Finish switch-std-priv-exten_48-50)
+exten => s,11,Return()
 exten => _sw-50-.,1,Voicemail(u${ext})
 exten => _sw-50-.,2,Goto(s|10)
 exten => sw-50-NOANSWER,1,Voicemail(u${ext})
@@ -1178,7 +1227,7 @@ exten => sw-50-TORTURE,1,Goto(${torcont}|s|begin)
 exten => sw-50-TORTURE,2,Goto(s|10)
 
 
-[macro-std-priv-exten_49]
+[std-priv-exten_49]
 exten => s,1,Set(dev=${ARG1})
 exten => s,2,Set(ext=${ARG2})
 exten => s,3,Set(timeout=${ARG3})
@@ -1189,6 +1238,7 @@ exten => s,7,Dial(${dev}|${timeout}|${opts})
 exten => s,8,NoOp(${DIALSTATUS} was chosen)
 exten => s,9,Goto(sw-51-${DIALSTATUS}|1)
 exten => s,10,NoOp(Finish switch-std-priv-exten_49-51)
+exten => s,11,Return()
 exten => _sw-51-.,1,Voicemail(u${ext})
 exten => _sw-51-.,2,Goto(s|10)
 exten => sw-51-NOANSWER,1,Voicemail(u${ext})
@@ -1202,7 +1252,7 @@ exten => sw-51-TORTURE,1,Goto(${torcont}|s|begin)
 exten => sw-51-TORTURE,2,Goto(s|10)
 
 
-[macro-std-priv-exten_50]
+[std-priv-exten_50]
 exten => s,1,Set(dev=${ARG1})
 exten => s,2,Set(ext=${ARG2})
 exten => s,3,Set(timeout=${ARG3})
@@ -1213,6 +1263,7 @@ exten => s,7,Dial(${dev}|${timeout}|${opts})
 exten => s,8,NoOp(${DIALSTATUS} was chosen)
 exten => s,9,Goto(sw-52-${DIALSTATUS}|1)
 exten => s,10,NoOp(Finish switch-std-priv-exten_50-52)
+exten => s,11,Return()
 exten => _sw-52-.,1,Voicemail(u${ext})
 exten => _sw-52-.,2,Goto(s|10)
 exten => sw-52-NOANSWER,1,Voicemail(u${ext})
@@ -1226,7 +1277,7 @@ exten => sw-52-TORTURE,1,Goto(${torcont}|s|begin)
 exten => sw-52-TORTURE,2,Goto(s|10)
 
 
-[macro-std-priv-exten_51]
+[std-priv-exten_51]
 exten => s,1,Set(dev=${ARG1})
 exten => s,2,Set(ext=${ARG2})
 exten => s,3,Set(timeout=${ARG3})
@@ -1237,6 +1288,7 @@ exten => s,7,Dial(${dev}|${timeout}|${opts})
 exten => s,8,NoOp(${DIALSTATUS} was chosen)
 exten => s,9,Goto(sw-53-${DIALSTATUS}|1)
 exten => s,10,NoOp(Finish switch-std-priv-exten_51-53)
+exten => s,11,Return()
 exten => _sw-53-.,1,Voicemail(u${ext})
 exten => _sw-53-.,2,Goto(s|10)
 exten => sw-53-NOANSWER,1,Voicemail(u${ext})
@@ -1250,7 +1302,7 @@ exten => sw-53-TORTURE,1,Goto(${torcont}|s|begin)
 exten => sw-53-TORTURE,2,Goto(s|10)
 
 
-[macro-std-priv-exten_52]
+[std-priv-exten_52]
 exten => s,1,Set(dev=${ARG1})
 exten => s,2,Set(ext=${ARG2})
 exten => s,3,Set(timeout=${ARG3})
@@ -1261,6 +1313,7 @@ exten => s,7,Dial(${dev}|${timeout}|${opts})
 exten => s,8,NoOp(${DIALSTATUS} was chosen)
 exten => s,9,Goto(sw-54-${DIALSTATUS}|1)
 exten => s,10,NoOp(Finish switch-std-priv-exten_52-54)
+exten => s,11,Return()
 exten => _sw-54-.,1,Voicemail(u${ext})
 exten => _sw-54-.,2,Goto(s|10)
 exten => sw-54-NOANSWER,1,Voicemail(u${ext})
@@ -1274,7 +1327,7 @@ exten => sw-54-TORTURE,1,Goto(${torcont}|s|begin)
 exten => sw-54-TORTURE,2,Goto(s|10)
 
 
-[macro-std-priv-exten_53]
+[std-priv-exten_53]
 exten => s,1,Set(dev=${ARG1})
 exten => s,2,Set(ext=${ARG2})
 exten => s,3,Set(timeout=${ARG3})
@@ -1285,6 +1338,7 @@ exten => s,7,Dial(${dev}|${timeout}|${opts})
 exten => s,8,NoOp(${DIALSTATUS} was chosen)
 exten => s,9,Goto(sw-55-${DIALSTATUS}|1)
 exten => s,10,NoOp(Finish switch-std-priv-exten_53-55)
+exten => s,11,Return()
 exten => _sw-55-.,1,Voicemail(u${ext})
 exten => _sw-55-.,2,Goto(s|10)
 exten => sw-55-NOANSWER,1,Voicemail(u${ext})
@@ -1298,7 +1352,7 @@ exten => sw-55-TORTURE,1,Goto(${torcont}|s|begin)
 exten => sw-55-TORTURE,2,Goto(s|10)
 
 
-[macro-std-priv-exten_54]
+[std-priv-exten_54]
 exten => s,1,Set(dev=${ARG1})
 exten => s,2,Set(ext=${ARG2})
 exten => s,3,Set(timeout=${ARG3})
@@ -1309,6 +1363,7 @@ exten => s,7,Dial(${dev}|${timeout}|${opts})
 exten => s,8,NoOp(${DIALSTATUS} was chosen)
 exten => s,9,Goto(sw-56-${DIALSTATUS}|1)
 exten => s,10,NoOp(Finish switch-std-priv-exten_54-56)
+exten => s,11,Return()
 exten => _sw-56-.,1,Voicemail(u${ext})
 exten => _sw-56-.,2,Goto(s|10)
 exten => sw-56-NOANSWER,1,Voicemail(u${ext})
@@ -1322,7 +1377,7 @@ exten => sw-56-TORTURE,1,Goto(${torcont}|s|begin)
 exten => sw-56-TORTURE,2,Goto(s|10)
 
 
-[macro-std-priv-exten_55]
+[std-priv-exten_55]
 exten => s,1,Set(dev=${ARG1})
 exten => s,2,Set(ext=${ARG2})
 exten => s,3,Set(timeout=${ARG3})
@@ -1333,6 +1388,7 @@ exten => s,7,Dial(${dev}|${timeout}|${opts})
 exten => s,8,NoOp(${DIALSTATUS} was chosen)
 exten => s,9,Goto(sw-57-${DIALSTATUS}|1)
 exten => s,10,NoOp(Finish switch-std-priv-exten_55-57)
+exten => s,11,Return()
 exten => _sw-57-.,1,Voicemail(u${ext})
 exten => _sw-57-.,2,Goto(s|10)
 exten => sw-57-NOANSWER,1,Voicemail(u${ext})
@@ -1346,7 +1402,7 @@ exten => sw-57-TORTURE,1,Goto(${torcont}|s|begin)
 exten => sw-57-TORTURE,2,Goto(s|10)
 
 
-[macro-std-priv-exten_56]
+[std-priv-exten_56]
 exten => s,1,Set(dev=${ARG1})
 exten => s,2,Set(ext=${ARG2})
 exten => s,3,Set(timeout=${ARG3})
@@ -1357,6 +1413,7 @@ exten => s,7,Dial(${dev}|${timeout}|${opts})
 exten => s,8,NoOp(${DIALSTATUS} was chosen)
 exten => s,9,Goto(sw-58-${DIALSTATUS}|1)
 exten => s,10,NoOp(Finish switch-std-priv-exten_56-58)
+exten => s,11,Return()
 exten => _sw-58-.,1,Voicemail(u${ext})
 exten => _sw-58-.,2,Goto(s|10)
 exten => sw-58-NOANSWER,1,Voicemail(u${ext})
@@ -1370,7 +1427,7 @@ exten => sw-58-TORTURE,1,Goto(${torcont}|s|begin)
 exten => sw-58-TORTURE,2,Goto(s|10)
 
 
-[macro-std-priv-exten_57]
+[std-priv-exten_57]
 exten => s,1,Set(dev=${ARG1})
 exten => s,2,Set(ext=${ARG2})
 exten => s,3,Set(timeout=${ARG3})
@@ -1381,6 +1438,7 @@ exten => s,7,Dial(${dev}|${timeout}|${opts})
 exten => s,8,NoOp(${DIALSTATUS} was chosen)
 exten => s,9,Goto(sw-59-${DIALSTATUS}|1)
 exten => s,10,NoOp(Finish switch-std-priv-exten_57-59)
+exten => s,11,Return()
 exten => _sw-59-.,1,Voicemail(u${ext})
 exten => _sw-59-.,2,Goto(s|10)
 exten => sw-59-NOANSWER,1,Voicemail(u${ext})
@@ -1394,7 +1452,7 @@ exten => sw-59-TORTURE,1,Goto(${torcont}|s|begin)
 exten => sw-59-TORTURE,2,Goto(s|10)
 
 
-[macro-std-priv-exten_58]
+[std-priv-exten_58]
 exten => s,1,Set(dev=${ARG1})
 exten => s,2,Set(ext=${ARG2})
 exten => s,3,Set(timeout=${ARG3})
@@ -1405,6 +1463,7 @@ exten => s,7,Dial(${dev}|${timeout}|${opts})
 exten => s,8,NoOp(${DIALSTATUS} was chosen)
 exten => s,9,Goto(sw-60-${DIALSTATUS}|1)
 exten => s,10,NoOp(Finish switch-std-priv-exten_58-60)
+exten => s,11,Return()
 exten => _sw-60-.,1,Voicemail(u${ext})
 exten => _sw-60-.,2,Goto(s|10)
 exten => sw-60-NOANSWER,1,Voicemail(u${ext})
@@ -1418,7 +1477,7 @@ exten => sw-60-TORTURE,1,Goto(${torcont}|s|begin)
 exten => sw-60-TORTURE,2,Goto(s|10)
 
 
-[macro-std-priv-exten_59]
+[std-priv-exten_59]
 exten => s,1,Set(dev=${ARG1})
 exten => s,2,Set(ext=${ARG2})
 exten => s,3,Set(timeout=${ARG3})
@@ -1429,6 +1488,7 @@ exten => s,7,Dial(${dev}|${timeout}|${opts})
 exten => s,8,NoOp(${DIALSTATUS} was chosen)
 exten => s,9,Goto(sw-61-${DIALSTATUS}|1)
 exten => s,10,NoOp(Finish switch-std-priv-exten_59-61)
+exten => s,11,Return()
 exten => _sw-61-.,1,Voicemail(u${ext})
 exten => _sw-61-.,2,Goto(s|10)
 exten => sw-61-NOANSWER,1,Voicemail(u${ext})
@@ -1442,7 +1502,7 @@ exten => sw-61-TORTURE,1,Goto(${torcont}|s|begin)
 exten => sw-61-TORTURE,2,Goto(s|10)
 
 
-[macro-std-priv-exten_60]
+[std-priv-exten_60]
 exten => s,1,Set(dev=${ARG1})
 exten => s,2,Set(ext=${ARG2})
 exten => s,3,Set(timeout=${ARG3})
@@ -1453,6 +1513,7 @@ exten => s,7,Dial(${dev}|${timeout}|${opts})
 exten => s,8,NoOp(${DIALSTATUS} was chosen)
 exten => s,9,Goto(sw-62-${DIALSTATUS}|1)
 exten => s,10,NoOp(Finish switch-std-priv-exten_60-62)
+exten => s,11,Return()
 exten => _sw-62-.,1,Voicemail(u${ext})
 exten => _sw-62-.,2,Goto(s|10)
 exten => sw-62-NOANSWER,1,Voicemail(u${ext})
@@ -1466,7 +1527,7 @@ exten => sw-62-TORTURE,1,Goto(${torcont}|s|begin)
 exten => sw-62-TORTURE,2,Goto(s|10)
 
 
-[macro-std-priv-exten_61]
+[std-priv-exten_61]
 exten => s,1,Set(dev=${ARG1})
 exten => s,2,Set(ext=${ARG2})
 exten => s,3,Set(timeout=${ARG3})
@@ -1477,6 +1538,7 @@ exten => s,7,Dial(${dev}|${timeout}|${opts})
 exten => s,8,NoOp(${DIALSTATUS} was chosen)
 exten => s,9,Goto(sw-63-${DIALSTATUS}|1)
 exten => s,10,NoOp(Finish switch-std-priv-exten_61-63)
+exten => s,11,Return()
 exten => _sw-63-.,1,Voicemail(u${ext})
 exten => _sw-63-.,2,Goto(s|10)
 exten => sw-63-NOANSWER,1,Voicemail(u${ext})
@@ -1490,7 +1552,7 @@ exten => sw-63-TORTURE,1,Goto(${torcont}|s|begin)
 exten => sw-63-TORTURE,2,Goto(s|10)
 
 
-[macro-std-priv-exten_62]
+[std-priv-exten_62]
 exten => s,1,Set(dev=${ARG1})
 exten => s,2,Set(ext=${ARG2})
 exten => s,3,Set(timeout=${ARG3})
@@ -1501,6 +1563,7 @@ exten => s,7,Dial(${dev}|${timeout}|${opts})
 exten => s,8,NoOp(${DIALSTATUS} was chosen)
 exten => s,9,Goto(sw-64-${DIALSTATUS}|1)
 exten => s,10,NoOp(Finish switch-std-priv-exten_62-64)
+exten => s,11,Return()
 exten => _sw-64-.,1,Voicemail(u${ext})
 exten => _sw-64-.,2,Goto(s|10)
 exten => sw-64-NOANSWER,1,Voicemail(u${ext})
@@ -1514,7 +1577,7 @@ exten => sw-64-TORTURE,1,Goto(${torcont}|s|begin)
 exten => sw-64-TORTURE,2,Goto(s|10)
 
 
-[macro-std-priv-exten_63]
+[std-priv-exten_63]
 exten => s,1,Set(dev=${ARG1})
 exten => s,2,Set(ext=${ARG2})
 exten => s,3,Set(timeout=${ARG3})
@@ -1525,6 +1588,7 @@ exten => s,7,Dial(${dev}|${timeout}|${opts})
 exten => s,8,NoOp(${DIALSTATUS} was chosen)
 exten => s,9,Goto(sw-65-${DIALSTATUS}|1)
 exten => s,10,NoOp(Finish switch-std-priv-exten_63-65)
+exten => s,11,Return()
 exten => _sw-65-.,1,Voicemail(u${ext})
 exten => _sw-65-.,2,Goto(s|10)
 exten => sw-65-NOANSWER,1,Voicemail(u${ext})
@@ -1538,7 +1602,7 @@ exten => sw-65-TORTURE,1,Goto(${torcont}|s|begin)
 exten => sw-65-TORTURE,2,Goto(s|10)
 
 
-[macro-std-priv-exten_64]
+[std-priv-exten_64]
 exten => s,1,Set(dev=${ARG1})
 exten => s,2,Set(ext=${ARG2})
 exten => s,3,Set(timeout=${ARG3})
@@ -1549,6 +1613,7 @@ exten => s,7,Dial(${dev}|${timeout}|${opts})
 exten => s,8,NoOp(${DIALSTATUS} was chosen)
 exten => s,9,Goto(sw-66-${DIALSTATUS}|1)
 exten => s,10,NoOp(Finish switch-std-priv-exten_64-66)
+exten => s,11,Return()
 exten => _sw-66-.,1,Voicemail(u${ext})
 exten => _sw-66-.,2,Goto(s|10)
 exten => sw-66-NOANSWER,1,Voicemail(u${ext})
@@ -1562,7 +1627,7 @@ exten => sw-66-TORTURE,1,Goto(${torcont}|s|begin)
 exten => sw-66-TORTURE,2,Goto(s|10)
 
 
-[macro-std-priv-exten_65]
+[std-priv-exten_65]
 exten => s,1,Set(dev=${ARG1})
 exten => s,2,Set(ext=${ARG2})
 exten => s,3,Set(timeout=${ARG3})
@@ -1573,6 +1638,7 @@ exten => s,7,Dial(${dev}|${timeout}|${opts})
 exten => s,8,NoOp(${DIALSTATUS} was chosen)
 exten => s,9,Goto(sw-67-${DIALSTATUS}|1)
 exten => s,10,NoOp(Finish switch-std-priv-exten_65-67)
+exten => s,11,Return()
 exten => _sw-67-.,1,Voicemail(u${ext})
 exten => _sw-67-.,2,Goto(s|10)
 exten => sw-67-NOANSWER,1,Voicemail(u${ext})
@@ -1586,7 +1652,7 @@ exten => sw-67-TORTURE,1,Goto(${torcont}|s|begin)
 exten => sw-67-TORTURE,2,Goto(s|10)
 
 
-[macro-std-priv-exten_66]
+[std-priv-exten_66]
 exten => s,1,Set(dev=${ARG1})
 exten => s,2,Set(ext=${ARG2})
 exten => s,3,Set(timeout=${ARG3})
@@ -1597,6 +1663,7 @@ exten => s,7,Dial(${dev}|${timeout}|${opts})
 exten => s,8,NoOp(${DIALSTATUS} was chosen)
 exten => s,9,Goto(sw-68-${DIALSTATUS}|1)
 exten => s,10,NoOp(Finish switch-std-priv-exten_66-68)
+exten => s,11,Return()
 exten => _sw-68-.,1,Voicemail(u${ext})
 exten => _sw-68-.,2,Goto(s|10)
 exten => sw-68-NOANSWER,1,Voicemail(u${ext})
@@ -1610,7 +1677,7 @@ exten => sw-68-TORTURE,1,Goto(${torcont}|s|begin)
 exten => sw-68-TORTURE,2,Goto(s|10)
 
 
-[macro-std-priv-exten_67]
+[std-priv-exten_67]
 exten => s,1,Set(dev=${ARG1})
 exten => s,2,Set(ext=${ARG2})
 exten => s,3,Set(timeout=${ARG3})
@@ -1621,6 +1688,7 @@ exten => s,7,Dial(${dev}|${timeout}|${opts})
 exten => s,8,NoOp(${DIALSTATUS} was chosen)
 exten => s,9,Goto(sw-69-${DIALSTATUS}|1)
 exten => s,10,NoOp(Finish switch-std-priv-exten_67-69)
+exten => s,11,Return()
 exten => _sw-69-.,1,Voicemail(u${ext})
 exten => _sw-69-.,2,Goto(s|10)
 exten => sw-69-NOANSWER,1,Voicemail(u${ext})
@@ -1634,7 +1702,7 @@ exten => sw-69-TORTURE,1,Goto(${torcont}|s|begin)
 exten => sw-69-TORTURE,2,Goto(s|10)
 
 
-[macro-std-priv-exten_68]
+[std-priv-exten_68]
 exten => s,1,Set(dev=${ARG1})
 exten => s,2,Set(ext=${ARG2})
 exten => s,3,Set(timeout=${ARG3})
@@ -1645,6 +1713,7 @@ exten => s,7,Dial(${dev}|${timeout}|${opts})
 exten => s,8,NoOp(${DIALSTATUS} was chosen)
 exten => s,9,Goto(sw-70-${DIALSTATUS}|1)
 exten => s,10,NoOp(Finish switch-std-priv-exten_68-70)
+exten => s,11,Return()
 exten => _sw-70-.,1,Voicemail(u${ext})
 exten => _sw-70-.,2,Goto(s|10)
 exten => sw-70-NOANSWER,1,Voicemail(u${ext})
@@ -1658,7 +1727,7 @@ exten => sw-70-TORTURE,1,Goto(${torcont}|s|begin)
 exten => sw-70-TORTURE,2,Goto(s|10)
 
 
-[macro-std-priv-exten_69]
+[std-priv-exten_69]
 exten => s,1,Set(dev=${ARG1})
 exten => s,2,Set(ext=${ARG2})
 exten => s,3,Set(timeout=${ARG3})
@@ -1669,6 +1738,7 @@ exten => s,7,Dial(${dev}|${timeout}|${opts})
 exten => s,8,NoOp(${DIALSTATUS} was chosen)
 exten => s,9,Goto(sw-71-${DIALSTATUS}|1)
 exten => s,10,NoOp(Finish switch-std-priv-exten_69-71)
+exten => s,11,Return()
 exten => _sw-71-.,1,Voicemail(u${ext})
 exten => _sw-71-.,2,Goto(s|10)
 exten => sw-71-NOANSWER,1,Voicemail(u${ext})
@@ -1682,7 +1752,7 @@ exten => sw-71-TORTURE,1,Goto(${torcont}|s|begin)
 exten => sw-71-TORTURE,2,Goto(s|10)
 
 
-[macro-std-priv-exten_70]
+[std-priv-exten_70]
 exten => s,1,Set(dev=${ARG1})
 exten => s,2,Set(ext=${ARG2})
 exten => s,3,Set(timeout=${ARG3})
@@ -1693,6 +1763,7 @@ exten => s,7,Dial(${dev}|${timeout}|${opts})
 exten => s,8,NoOp(${DIALSTATUS} was chosen)
 exten => s,9,Goto(sw-72-${DIALSTATUS}|1)
 exten => s,10,NoOp(Finish switch-std-priv-exten_70-72)
+exten => s,11,Return()
 exten => _sw-72-.,1,Voicemail(u${ext})
 exten => _sw-72-.,2,Goto(s|10)
 exten => sw-72-NOANSWER,1,Voicemail(u${ext})
@@ -1706,7 +1777,7 @@ exten => sw-72-TORTURE,1,Goto(${torcont}|s|begin)
 exten => sw-72-TORTURE,2,Goto(s|10)
 
 
-[macro-std-priv-exten_71]
+[std-priv-exten_71]
 exten => s,1,Set(dev=${ARG1})
 exten => s,2,Set(ext=${ARG2})
 exten => s,3,Set(timeout=${ARG3})
@@ -1717,6 +1788,7 @@ exten => s,7,Dial(${dev}|${timeout}|${opts})
 exten => s,8,NoOp(${DIALSTATUS} was chosen)
 exten => s,9,Goto(sw-73-${DIALSTATUS}|1)
 exten => s,10,NoOp(Finish switch-std-priv-exten_71-73)
+exten => s,11,Return()
 exten => _sw-73-.,1,Voicemail(u${ext})
 exten => _sw-73-.,2,Goto(s|10)
 exten => sw-73-NOANSWER,1,Voicemail(u${ext})
@@ -1730,7 +1802,7 @@ exten => sw-73-TORTURE,1,Goto(${torcont}|s|begin)
 exten => sw-73-TORTURE,2,Goto(s|10)
 
 
-[macro-std-priv-exten_72]
+[std-priv-exten_72]
 exten => s,1,Set(dev=${ARG1})
 exten => s,2,Set(ext=${ARG2})
 exten => s,3,Set(timeout=${ARG3})
@@ -1741,6 +1813,7 @@ exten => s,7,Dial(${dev}|${timeout}|${opts})
 exten => s,8,NoOp(${DIALSTATUS} was chosen)
 exten => s,9,Goto(sw-74-${DIALSTATUS}|1)
 exten => s,10,NoOp(Finish switch-std-priv-exten_72-74)
+exten => s,11,Return()
 exten => _sw-74-.,1,Voicemail(u${ext})
 exten => _sw-74-.,2,Goto(s|10)
 exten => sw-74-NOANSWER,1,Voicemail(u${ext})
@@ -1754,7 +1827,7 @@ exten => sw-74-TORTURE,1,Goto(${torcont}|s|begin)
 exten => sw-74-TORTURE,2,Goto(s|10)
 
 
-[macro-std-priv-exten_73]
+[std-priv-exten_73]
 exten => s,1,Set(dev=${ARG1})
 exten => s,2,Set(ext=${ARG2})
 exten => s,3,Set(timeout=${ARG3})
@@ -1765,6 +1838,7 @@ exten => s,7,Dial(${dev}|${timeout}|${opts})
 exten => s,8,NoOp(${DIALSTATUS} was chosen)
 exten => s,9,Goto(sw-75-${DIALSTATUS}|1)
 exten => s,10,NoOp(Finish switch-std-priv-exten_73-75)
+exten => s,11,Return()
 exten => _sw-75-.,1,Voicemail(u${ext})
 exten => _sw-75-.,2,Goto(s|10)
 exten => sw-75-NOANSWER,1,Voicemail(u${ext})
@@ -1778,7 +1852,7 @@ exten => sw-75-TORTURE,1,Goto(${torcont}|s|begin)
 exten => sw-75-TORTURE,2,Goto(s|10)
 
 
-[macro-std-priv-exten]
+[std-priv-exten]
 exten => s,1,Set(dev=${ARG1})
 exten => s,2,Set(ext=${ARG2})
 exten => s,3,Set(timeout=${ARG3})
@@ -1789,6 +1863,7 @@ exten => s,7,Dial(${dev}|${timeout}|${opts})
 exten => s,8,NoOp(${DIALSTATUS} was chosen)
 exten => s,9,Goto(sw-76-${DIALSTATUS}|1)
 exten => s,10,NoOp(Finish switch-std-priv-exten-76)
+exten => s,11,Return()
 exten => _sw-76-.,1,Voicemail(u${ext})
 exten => _sw-76-.,2,Goto(s|10)
 exten => sw-76-NOANSWER,1,Voicemail(u${ext})
@@ -1802,9 +1877,9 @@ exten => sw-76-TORTURE,1,Goto(${torcont}|s|begin)
 exten => sw-76-TORTURE,2,Goto(s|10)
 
 
-[macro-fillcidname]
+[fillcidname]
 exten => s,1,GotoIf($["${CALLERID(number)}" = "" ]?2:3)
-exten => s,2,Goto(13)
+exten => s,2,Return()
 exten => s,3,NoOp(Finish if-fillcidname-77)
 exten => s,4,Set(cidn=${DB(cidname/${CALLERID(num)})})
 exten => s,5,GotoIf($["${CALLERID(name)}" != "" ]?6:9)
@@ -1815,10 +1890,10 @@ exten => s,9,NoOp(Finish if-fillcidname-78)
 exten => s,10,GotoIf($[( "${cidn}" != "" ) & ( "${CALLERID(name)}" = ""                                                    | "${CALLERID(name)}" = "CODY,WY        "                                                       | "${CALLERID(name)}" = "POWELL,WY      "                                                       | "${CALLERID(name)}" = "WIRELESS CALLER"                                                     | "${CALLERID(name)}" = "SUBSCRIBER,WIRE"                                                     | "${CALLERID(name)}" = "CELLULAR ONE"                                                     | "${CALLERID(name)}" = "Cellular One Customer"                                                       | "${CALLERID(name)}" = "CELLULAR ONE   "                                                       | "${CALLERID(name)}" = "Privacy Manager"                                                    | "${CALLERID(name)}" = "RIVERTON,WY    "                                                     | "${CALLERID(name)}" = "BASIN,WY       "                                                     | "${CALLERID(name)}" = "BILLINGS,MT    "                                                   | "${CALLERID(name)}" = "PROVO,UT       "                                                     | "${CALLERID(name)}" = "TOLL FREE      " ) ]?11:12)
 exten => s,11,Set(CALLERID(name)=${cidn})
 exten => s,12,NoOp(Finish if-fillcidname-80)
-exten => s,13,NoOp(End of Macro fillcidname-s)
+exten => s,13,Return()
 
 
-[macro-ciddial]
+[ciddial]
 exten => s,1,Set(dialnum=${ARG1})
 exten => s,2,Set(lookup=${ARG2})
 exten => s,3,Set(waittime=${ARG3})
@@ -1838,9 +1913,10 @@ exten => s,16,Set(CALLERID(num)=$[${cidnu}])
 exten => s,17,Dial(Zap/2/${lookup}|${waittime}|${dialopts})
 exten => s,18,NoOp(Finish if-if-ciddial-81-82)
 exten => s,19,NoOp(Finish if-ciddial-81)
+exten => s,20,Return()
 
 
-[macro-ciddial3]
+[ciddial3]
 exten => s,1,Set(dialnum=${ARG1})
 exten => s,2,Set(lookup=${ARG2})
 exten => s,3,Set(waittime=${ARG3})
@@ -1854,9 +1930,10 @@ exten => s,10,GotoIf($["${DIALSTATUS}" = "CHANUNAVAIL" ]?11:13)
 exten => s,11,BackGround(try_cell)
 exten => s,12,Dial(Zap/2/${lookup}|${waittime}|${dialopts})
 exten => s,13,NoOp(Finish if-ciddial3-83)
+exten => s,14,Return()
 
 
-[macro-ciddial2]
+[ciddial2]
 exten => s,1,Set(dialnum=${ARG1})
 exten => s,2,Set(lookup=${ARG2})
 exten => s,3,Set(waittime=${ARG3})
@@ -1876,18 +1953,21 @@ exten => s,16,BackGround(try_cell)
 exten => s,17,Dial(Zap/2/${lookup}|${waittime}|${dialopts})
 exten => s,18,NoOp(Finish if-if-ciddial2-84-85)
 exten => s,19,NoOp(Finish if-ciddial2-84)
+exten => s,20,Return()
 
 
-[macro-callerid-liar]
+[callerid-liar]
 exten => s,1,TrySystem(/usr/bin/play /var/lib/asterisk/sounds/priv-callerintros/LIAR.gsm&)
 exten => s,2,Background(priv-liar)
 exten => s,3,Hangup()
+exten => s,4,Return()
 
 
-[macro-callerid-bad]
+[callerid-bad]
 exten => s,1,Set(mycid=$[${CALLERID(num)}:"1([0-9]+)"])
 exten => s,2,Set(CALLERID(num)=${mycid})
 exten => s,3,Wait(0)
+exten => s,4,Return()
 
 
 [privacyManagerFailed]
@@ -1912,20 +1992,20 @@ exten => s,3,Zapateller(nocallerid)
 exten => s,4,PrivacyManager()
 exten => s,5,GotoIf($["${PRIVACYMGRSTATUS}" = "FAILED" ]?6:10)
 exten => s,6,TrySystem(/usr/bin/play /var/lib/asterisk/sounds/privmanfailed.gsm)
-exten => s,7,Macro(std-priv-exten|Zap/3r1&Zap/5r1|2|25|mtw|telemarket|telemarket)
+exten => s,7,Gosub(std-priv-exten|s|1:Zap/3r1&Zap/5r1|2|25|mtw|telemarket|telemarket)
 exten => s,8,Hangup()
-exten => s,9,Goto(104)
+exten => s,9,Return()
 exten => s,10,NoOp(Finish if-homeline-87)
-exten => s,11(postPriv),Macro(fillcidname)
+exten => s,11(postPriv),Gosub(fillcidname|s|1)
 exten => s,12,Set(CONFCIDNA=${CALLERID(name)})
 exten => s,13,Set(CONFCIDNU=${CALLERID(num)})
 exten => s,14,AGI(callall)
 exten => s,15,AGI(submit-announce.agi)
 exten => s,16,GotoIf($["${CALLERID(num)}" : "1" ]?17:18)
-exten => s,17,Macro(callerid-bad)
+exten => s,17,Gosub(callerid-bad|s|1)
 exten => s,18,NoOp(Finish if-homeline-88)
 exten => s,19,GotoIf($["${CALLERID(num)}"  = "7077577685" & "${CALLERID(name)}" : "Privacy Manager" ]?20:21)
-exten => s,20,Macro(callerid-liar)
+exten => s,20,Gosub(callerid-liar|s|1)
 exten => s,21,NoOp(Finish if-homeline-89)
 exten => s,22,TrySystem(/usr/local/bin/who-is-it ${CALLERID(num)} "${CALLERID(name)}"&)
 exten => s,23,Set(lds=${DB(playlds/${CALLERID(num)})})
@@ -2009,20 +2089,19 @@ exten => s,100,NoOp(Finish iftime-iftime-iftime-homeline-93-94-95)
 exten => s,101,NoOp(Finish iftime-iftime-homeline-93-94)
 exten => s,102,NoOp(Finish iftime-homeline-93)
 exten => s,103,Background(murphy-homeline-intro1)
-exten => s,104,NoOp(End of Extension s)
 exten => _sw-92-.,1,Set(z=${direct}-2)
 exten => _sw-92-.,2,Goto(homeline-kids|${z}|1)
-exten => sw-92-2,1,Macro(std-priv-exten|Zap/3r1&Zap/5r1|2|25|mtw|telemarket|telemarket)
+exten => sw-92-2,1,Gosub(std-priv-exten|s|1:Zap/3r1&Zap/5r1|2|25|mtw|telemarket|telemarket)
 exten => sw-92-2,2,Goto(s|loopback)
-exten => sw-92-1,1,Macro(std-priv-exten|Zap/6r3&Sip/murf|1|25|mpA(beep)tw|telemarket|telemarket)
+exten => sw-92-1,1,Gosub(std-priv-exten|s|1:Zap/6r3&Sip/murf|1|25|mpA(beep)tw|telemarket|telemarket)
 exten => sw-92-1,2,Goto(s|loopback)
 exten => 1,1,TrySystem(/usr/bin/play /var/lib/asterisk/sounds/call-for.gsm)
 exten => 1,2,TrySystem(/usr/bin/play /var/spool/asterisk/voicemail/default/2/greet.wav&)
-exten => 1,3,Macro(std-priv-exten|Zap/3r1&Zap/5r1|2|25|mtw|telemarket|telemarket)
+exten => 1,3,Gosub(std-priv-exten|s|1:Zap/3r1&Zap/5r1|2|25|mtw|telemarket|telemarket)
 exten => 1,4,Goto(s|loopback)
 exten => 2,1,Goto(homeline-kids|s|begin)
 exten => 21,1,Dial(IAX2/seaniax|20|T)
-exten => 3,1,Macro(std-priv-exten|Zap/6r3&Sip/murf|1|25|mpA(beep)tw|telemarket|telemarket)
+exten => 3,1,Gosub(std-priv-exten|s|1:Zap/6r3&Sip/murf|1|25|mpA(beep)tw|telemarket|telemarket)
 exten => 3,2,Goto(s|loopback)
 exten => 4,1,VoicemailMain()
 exten => 4,2,Goto(s|loopback)
@@ -2095,7 +2174,7 @@ exten => o,1,Goto(s|begin)
 exten => s,1(begin),Background(murphy-homeline-kids)
 exten => 1,1,TrySystem(/usr/bin/play /var/lib/asterisk/sounds/call-for.gsm)
 exten => 1,2,TrySystem(/usr/bin/play /var/spool/asterisk/voicemail/default/3/greet.wav&)
-exten => 1,3,Macro(std-priv-exten|IAX2/seaniax&Zap/5r2|3|35|mtw|telemarket|telemarket)
+exten => 1,3,Gosub(std-priv-exten|s|1:IAX2/seaniax&Zap/5r2|3|35|mtw|telemarket|telemarket)
 exten => 1,4,Goto(homeline|s|loopback)
 exten => 2,1,TrySystem(/usr/bin/play /var/lib/asterisk/sounds/call-for.gsm)
 exten => 2,2,TrySystem(/usr/bin/play /var/spool/asterisk/voicemail/default/4/greet.wav&)
@@ -2103,23 +2182,23 @@ exten => 2,3,Voicemail(u4)
 exten => 2,4,Goto(homeline|s|loopback)
 exten => 3,1,TrySystem(/usr/bin/play /var/lib/asterisk/sounds/call-for.gsm)
 exten => 3,2,TrySystem(/usr/bin/play /var/spool/asterisk/voicemail/default/5/greet.wav&)
-exten => 3,3,Macro(std-priv-exten|Zap/3r2&Zap/5r2|5|35|mtw|telemarket|telemarket)
+exten => 3,3,Gosub(std-priv-exten|s|1:Zap/3r2&Zap/5r2|5|35|mtw|telemarket|telemarket)
 exten => 3,4,Goto(homeline|s|loopback)
 exten => 4,1,TrySystem(/usr/bin/play /var/lib/asterisk/sounds/call-for.gsm)
 exten => 4,2,TrySystem(/usr/bin/play /var/spool/asterisk/voicemail/default/6/greet.wav&)
-exten => 4,3,Macro(std-priv-exten|Zap/3r2&Zap/5r2|6|35|mtw|telemarket|telemarket)
+exten => 4,3,Gosub(std-priv-exten|s|1:Zap/3r2&Zap/5r2|6|35|mtw|telemarket|telemarket)
 exten => 4,4,Goto(homeline|s|loopback)
 exten => 5,1,TrySystem(/usr/bin/play /var/lib/asterisk/sounds/call-for.gsm)
 exten => 5,2,TrySystem(/usr/bin/play /var/spool/asterisk/voicemail/default/7/greet.wav&)
-exten => 5,3,Macro(std-priv-exten|Zap/3r2&Zap/5r2|7|35|mtw|telemarket|telemarket)
+exten => 5,3,Gosub(std-priv-exten|s|1:Zap/3r2&Zap/5r2|7|35|mtw|telemarket|telemarket)
 exten => 5,4,Goto(homeline|s|loopback)
 exten => 6,1,TrySystem(/usr/bin/play /var/lib/asterisk/sounds/call-for.gsm)
 exten => 6,2,TrySystem(/usr/bin/play /var/spool/asterisk/voicemail/default/8/greet.wav&)
-exten => 6,3,Macro(std-priv-exten|Zap/3r2&Zap/5r2|8|35|mtw|telemarket|telemarket)
+exten => 6,3,Gosub(std-priv-exten|s|1:Zap/3r2&Zap/5r2|8|35|mtw|telemarket|telemarket)
 exten => 6,4,Goto(homeline|s|loopback)
 exten => 7,1,TrySystem(/usr/bin/play /var/lib/asterisk/sounds/call-for.gsm)
 exten => 7,2,TrySystem(/usr/bin/play /var/spool/asterisk/voicemail/default/9/greet.wav&)
-exten => 7,3,Macro(std-priv-exten|Zap/3r2&Zap/5r2|9|35|mtw|telemarket|telemarket)
+exten => 7,3,Gosub(std-priv-exten|s|1:Zap/3r2&Zap/5r2|9|35|mtw|telemarket|telemarket)
 exten => 7,4,Goto(homeline|s|loopback)
 exten => t,1,Goto(s|begin)
 exten => i,1,Background(invalid)
@@ -2141,13 +2220,13 @@ exten => s,1(begin),Answer()
 exten => s,2,Wait(1)
 exten => s,3,Set(repeatcount=0)
 exten => s,4,Zapateller(nocallerid)
-exten => s,5,Macro(fillcidname)
+exten => s,5,Gosub(fillcidname|s|1)
 exten => s,6,TrySystem(/usr/local/bin/who-is-it ${CALLERID(num)} "${CALLERID(name)}"&)
 exten => s,7(loopback),Background(greetings/greeting)
 exten => s,8,Background(murphy-office-intro1)
 exten => 1,1,TrySystem(/usr/bin/play /var/lib/asterisk/sounds/call-for.gsm)
 exten => 1,2,TrySystem(/usr/bin/play /var/spool/asterisk/voicemail/default/1/greet.wav&)
-exten => 1,3,Macro(std-priv-exten|Zap/6&Sip/murf|1|30|mtw|telemarket|telemarket)
+exten => 1,3,Gosub(std-priv-exten|s|1:Zap/6&Sip/murf|1|30|mtw|telemarket|telemarket)
 exten => 1,4,Goto(s|loopback)
 exten => 4,1,VoicemailMain()
 exten => 4,2,Goto(s|loopback)
@@ -2198,57 +2277,57 @@ exten => _93.,3,Congestion()
 
 [homefirst]
 ignorepat => 9
-exten => _91NXXNXXXXXX,1,Macro(ciddial|${EXTEN:1}|${EXTEN:2}|30|TW|Zap/1)
-exten => _9754XXXX,1,Macro(ciddial|${EXTEN:1}|707${EXTEN:1}|30|TW|Zap/1)
-exten => _9574XXXX,1,Macro(ciddial|${EXTEN:1}|707${EXTEN:1}|30|TW|Zap/1)
-exten => _9202XXXX,1,Macro(ciddial|${EXTEN:1}|707${EXTEN:1}|30|TW|Zap/1)
-exten => _9219XXXX,1,Macro(ciddial|${EXTEN:1}|707${EXTEN:1}|30|TW|Zap/1)
-exten => _9254XXXX,1,Macro(ciddial|${EXTEN:1}|707${EXTEN:1}|30|TW|Zap/1)
-exten => _9716XXXX,1,Macro(ciddial|${EXTEN:1}|707${EXTEN:1}|30|TW|Zap/1)
-exten => _9NXXXXXX,1,Macro(ciddial|1707${EXTEN:1}|707${EXTEN:1}|30|TW|Zap/1)
-exten => _9011.,1,Macro(ciddial|${EXTEN:1}|${EXTEN:1}|30|TW|Zap/1)
+exten => _91NXXNXXXXXX,1,Gosub(ciddial|s|1:${EXTEN:1}|${EXTEN:2}|30|TW|Zap/1)
+exten => _9754XXXX,1,Gosub(ciddial|s|1:${EXTEN:1}|707${EXTEN:1}|30|TW|Zap/1)
+exten => _9574XXXX,1,Gosub(ciddial|s|1:${EXTEN:1}|707${EXTEN:1}|30|TW|Zap/1)
+exten => _9202XXXX,1,Gosub(ciddial|s|1:${EXTEN:1}|707${EXTEN:1}|30|TW|Zap/1)
+exten => _9219XXXX,1,Gosub(ciddial|s|1:${EXTEN:1}|707${EXTEN:1}|30|TW|Zap/1)
+exten => _9254XXXX,1,Gosub(ciddial|s|1:${EXTEN:1}|707${EXTEN:1}|30|TW|Zap/1)
+exten => _9716XXXX,1,Gosub(ciddial|s|1:${EXTEN:1}|707${EXTEN:1}|30|TW|Zap/1)
+exten => _9NXXXXXX,1,Gosub(ciddial|s|1:1707${EXTEN:1}|707${EXTEN:1}|30|TW|Zap/1)
+exten => _9011.,1,Gosub(ciddial|s|1:${EXTEN:1}|${EXTEN:1}|30|TW|Zap/1)
 exten => _9911,1,Dial(Zap/1/911|30|T)
 exten => _9411,1,Dial(Zap/1/411|30|T)
 
 
 [workfirst]
 ignorepat => 9
-exten => _91NXXNXXXXXX,1,Macro(ciddial2|${EXTEN:1}|${EXTEN:2}|30|TW|Zap/1)
-exten => _9754XXXX,1,Macro(ciddial2|${EXTEN:1}|707${EXTEN:1}|30|TW|Zap/1)
-exten => _9574XXXX,1,Macro(ciddial2|${EXTEN:1}|707${EXTEN:1}|30|TW|Zap/1)
-exten => _9202XXXX,1,Macro(ciddial2|${EXTEN:1}|707${EXTEN:1}|30|TW|Zap/1)
-exten => _9219XXXX,1,Macro(ciddial2|${EXTEN:1}|707${EXTEN:1}|30|TW|Zap/1)
-exten => _9254XXXX,1,Macro(ciddial2|${EXTEN:1}|707${EXTEN:1}|30|TW|Zap/1)
-exten => _9716XXXX,1,Macro(ciddial2|${EXTEN:1}|707${EXTEN:1}|30|TW|Zap/1)
-exten => _9NXXXXXX,1,Macro(ciddial2|1707${EXTEN:1}|707${EXTEN:1}|30|TW|Zap/1)
+exten => _91NXXNXXXXXX,1,Gosub(ciddial2|s|1:${EXTEN:1}|${EXTEN:2}|30|TW|Zap/1)
+exten => _9754XXXX,1,Gosub(ciddial2|s|1:${EXTEN:1}|707${EXTEN:1}|30|TW|Zap/1)
+exten => _9574XXXX,1,Gosub(ciddial2|s|1:${EXTEN:1}|707${EXTEN:1}|30|TW|Zap/1)
+exten => _9202XXXX,1,Gosub(ciddial2|s|1:${EXTEN:1}|707${EXTEN:1}|30|TW|Zap/1)
+exten => _9219XXXX,1,Gosub(ciddial2|s|1:${EXTEN:1}|707${EXTEN:1}|30|TW|Zap/1)
+exten => _9254XXXX,1,Gosub(ciddial2|s|1:${EXTEN:1}|707${EXTEN:1}|30|TW|Zap/1)
+exten => _9716XXXX,1,Gosub(ciddial2|s|1:${EXTEN:1}|707${EXTEN:1}|30|TW|Zap/1)
+exten => _9NXXXXXX,1,Gosub(ciddial2|s|1:1707${EXTEN:1}|707${EXTEN:1}|30|TW|Zap/1)
 exten => _9911,1,Dial(Zap/1/911|30|T)
 exten => _9411,1,Dial(Zap/1/411|30|T)
 
 
 [force_cell]
 ignorepat => 8
-exten => _81NXXNXXXXXX,1,Macro(ciddial|${EXTEN:1}#|${EXTEN:2}|30|TW|Zap/2)
-exten => _8754XXXX,1,Macro(ciddial|${EXTEN:1}#|707${EXTEN:1}|30|TW|Zap/2)
-exten => _8574XXXX,1,Macro(ciddial|${EXTEN:1}#|707${EXTEN:1}|30|TW|Zap/2)
-exten => _8202XXXX,1,Macro(ciddial|${EXTEN:1}#|707${EXTEN:1}|30|TW|Zap/2)
-exten => _8219XXXX,1,Macro(ciddial|${EXTEN:1}#|707${EXTEN:1}|30|TW|Zap/2)
-exten => _8254XXXX,1,Macro(ciddial|${EXTEN:1}#|707${EXTEN:1}|30|TW|Zap/2)
-exten => _8716XXXX,1,Macro(ciddial|${EXTEN:1}#|707${EXTEN:1}|30|TW|Zap/2)
-exten => _8NXXXXXX,1,Macro(ciddial|${EXTEN:1}#|707${EXTEN:1}|30|TW|Zap/2)
+exten => _81NXXNXXXXXX,1,Gosub(ciddial|s|1:${EXTEN:1}#|${EXTEN:2}|30|TW|Zap/2)
+exten => _8754XXXX,1,Gosub(ciddial|s|1:${EXTEN:1}#|707${EXTEN:1}|30|TW|Zap/2)
+exten => _8574XXXX,1,Gosub(ciddial|s|1:${EXTEN:1}#|707${EXTEN:1}|30|TW|Zap/2)
+exten => _8202XXXX,1,Gosub(ciddial|s|1:${EXTEN:1}#|707${EXTEN:1}|30|TW|Zap/2)
+exten => _8219XXXX,1,Gosub(ciddial|s|1:${EXTEN:1}#|707${EXTEN:1}|30|TW|Zap/2)
+exten => _8254XXXX,1,Gosub(ciddial|s|1:${EXTEN:1}#|707${EXTEN:1}|30|TW|Zap/2)
+exten => _8716XXXX,1,Gosub(ciddial|s|1:${EXTEN:1}#|707${EXTEN:1}|30|TW|Zap/2)
+exten => _8NXXXXXX,1,Gosub(ciddial|s|1:${EXTEN:1}#|707${EXTEN:1}|30|TW|Zap/2)
 exten => _8911,1,Dial(Zap/1/911|30|T)
 exten => _8411,1,Dial(Zap/1/411|30|T)
 
 
 [force_home]
 ignorepat => 8
-exten => _81NXXNXXXXXX,1,Macro(ciddial3|${EXTEN:1}#|${EXTEN:2}|30|TW|Zap/1)
-exten => _8754XXXX,1,Macro(ciddial3|${EXTEN:1}#|707${EXTEN:1}|30|TW|Zap/1)
-exten => _8574XXXX,1,Macro(ciddial3|${EXTEN:1}#|707${EXTEN:1}|30|TW|Zap/1)
-exten => _8202XXXX,1,Macro(ciddial3|${EXTEN:1}#|707${EXTEN:1}|30|TW|Zap/1)
-exten => _8219XXXX,1,Macro(ciddial3|${EXTEN:1}#|707${EXTEN:1}|30|TW|Zap/1)
-exten => _8254XXXX,1,Macro(ciddial3|${EXTEN:1}#|707${EXTEN:1}|30|TW|Zap/1)
-exten => _8716XXXX,1,Macro(ciddial3|${EXTEN:1}#|707${EXTEN:1}|30|TW|Zap/1)
-exten => _8NXXXXXX,1,Macro(ciddial3|1707${EXTEN:1}#|707${EXTEN:1}|30|TW|Zap/1)
+exten => _81NXXNXXXXXX,1,Gosub(ciddial3|s|1:${EXTEN:1}#|${EXTEN:2}|30|TW|Zap/1)
+exten => _8754XXXX,1,Gosub(ciddial3|s|1:${EXTEN:1}#|707${EXTEN:1}|30|TW|Zap/1)
+exten => _8574XXXX,1,Gosub(ciddial3|s|1:${EXTEN:1}#|707${EXTEN:1}|30|TW|Zap/1)
+exten => _8202XXXX,1,Gosub(ciddial3|s|1:${EXTEN:1}#|707${EXTEN:1}|30|TW|Zap/1)
+exten => _8219XXXX,1,Gosub(ciddial3|s|1:${EXTEN:1}#|707${EXTEN:1}|30|TW|Zap/1)
+exten => _8254XXXX,1,Gosub(ciddial3|s|1:${EXTEN:1}#|707${EXTEN:1}|30|TW|Zap/1)
+exten => _8716XXXX,1,Gosub(ciddial3|s|1:${EXTEN:1}#|707${EXTEN:1}|30|TW|Zap/1)
+exten => _8NXXXXXX,1,Gosub(ciddial3|s|1:1707${EXTEN:1}#|707${EXTEN:1}|30|TW|Zap/1)
 exten => _8911,1,Dial(Zap/1/911|30|T)
 exten => _8411,1,Dial(Zap/1/411|30|T)
 
@@ -2260,9 +2339,9 @@ include => parkedcalls
 include => homefirst
 include => force_cell
 exten => s,1(loopback),Wait(0)
-exten => 1,1,Macro(std-priv-exten|Zap/3&Zap/5|2|35|mtw|telemarket|telemarket)
+exten => 1,1,Gosub(std-priv-exten|s|1:Zap/3&Zap/5|2|35|mtw|telemarket|telemarket)
 exten => 1,2,Goto(s|loopback)
-exten => 2,1,Macro(std-priv-exten|Zap/6&Zap/5|1|35|mpA(beep3)Tt|telemarket|telemarket)
+exten => 2,1,Gosub(std-priv-exten|s|1:Zap/6&Zap/5|1|35|mpA(beep3)Tt|telemarket|telemarket)
 exten => 2,2,Goto(s|loopback)
 exten => 4,1,VoicemailMain()
 exten => 5,1,Record(recording:gsm)
@@ -2322,55 +2401,55 @@ exten => t,1,Congestion()
 [fromvmhome]
 exten => 1,1,Dial(Zap/6&Sip/murf|20|Tt)
 exten => 2,1,Dial(Zap/3&Zap/5|20|Tt)
-exten => _707202XXXX,1,Macro(ciddial|1${EXTEN:3}|${EXTEN}|30|TW|Zap/1)
-exten => _707219XXXX,1,Macro(ciddial|1${EXTEN:3}|${EXTEN}|30|TW|Zap/1)
-exten => _707254XXXX,1,Macro(ciddial|1${EXTEN:3}|${EXTEN}|30|TW|Zap/1)
-exten => _707716XXXX,1,Macro(ciddial|1${EXTEN:3}|${EXTEN}|30|TW|Zap/1)
-exten => _707754XXXX,1,Macro(ciddial|${EXTEN:3}|${EXTEN}|30|TW|Zap/1)
-exten => _707574XXXX,1,Macro(ciddial|${EXTEN:3}|${EXTEN}|30|TW|Zap/1)
-exten => _NXXNXXXXXX,1,Macro(ciddial|1${EXTEN}|${EXTEN}|30|TW|Zap/1)
-exten => _1NXXNXXXXXX,1,Macro(ciddial|${EXTEN}|${EXTEN:1}|30|TW|Zap/1)
-exten => _754XXXX,1,Macro(ciddial|${EXTEN}|707${EXTEN}|30|TW|Zap/1)
-exten => _574XXXX,1,Macro(ciddial|${EXTEN}|707${EXTEN}|30|TW|Zap/1)
-exten => _NXXXXXX,1,Macro(ciddial|1707${EXTEN}|707${EXTEN}|30|TW|Zap/1)
-exten => _911,1,Macro(ciddial|911|911|30|TW|Zap/1)
-exten => _411,1,Macro(ciddial|411|411|30|TW|Zap/1)
+exten => _707202XXXX,1,Gosub(ciddial|s|1:1${EXTEN:3}|${EXTEN}|30|TW|Zap/1)
+exten => _707219XXXX,1,Gosub(ciddial|s|1:1${EXTEN:3}|${EXTEN}|30|TW|Zap/1)
+exten => _707254XXXX,1,Gosub(ciddial|s|1:1${EXTEN:3}|${EXTEN}|30|TW|Zap/1)
+exten => _707716XXXX,1,Gosub(ciddial|s|1:1${EXTEN:3}|${EXTEN}|30|TW|Zap/1)
+exten => _707754XXXX,1,Gosub(ciddial|s|1:${EXTEN:3}|${EXTEN}|30|TW|Zap/1)
+exten => _707574XXXX,1,Gosub(ciddial|s|1:${EXTEN:3}|${EXTEN}|30|TW|Zap/1)
+exten => _NXXNXXXXXX,1,Gosub(ciddial|s|1:1${EXTEN}|${EXTEN}|30|TW|Zap/1)
+exten => _1NXXNXXXXXX,1,Gosub(ciddial|s|1:${EXTEN}|${EXTEN:1}|30|TW|Zap/1)
+exten => _754XXXX,1,Gosub(ciddial|s|1:${EXTEN}|707${EXTEN}|30|TW|Zap/1)
+exten => _574XXXX,1,Gosub(ciddial|s|1:${EXTEN}|707${EXTEN}|30|TW|Zap/1)
+exten => _NXXXXXX,1,Gosub(ciddial|s|1:1707${EXTEN}|707${EXTEN}|30|TW|Zap/1)
+exten => _911,1,Gosub(ciddial|s|1:911|911|30|TW|Zap/1)
+exten => _411,1,Gosub(ciddial|s|1:411|411|30|TW|Zap/1)
 
 
 [fromvmwork]
 exten => 1,1,Dial(Zap/6&Sip/murf|20|Tt)
 exten => 2,1,Dial(Zap/3&Zap/5|20|Tt)
-exten => _707202XXXX,1,Macro(ciddial|1${EXTEN:3}|${EXTEN}|30|TW|Zap/1)
-exten => _707219XXXX,1,Macro(ciddial|1${EXTEN:3}|${EXTEN}|30|TW|Zap/1)
-exten => _707254XXXX,1,Macro(ciddial|1${EXTEN:3}|${EXTEN}|30|TW|Zap/1)
-exten => _707716XXXX,1,Macro(ciddial|1${EXTEN:3}|${EXTEN}|30|TW|Zap/1)
-exten => _707754XXXX,1,Macro(ciddial|${EXTEN:3}|${EXTEN}|30|TW|Zap/1)
-exten => _707574XXXX,1,Macro(ciddial|${EXTEN:3}|${EXTEN}|30|TW|Zap/1)
-exten => _NXXNXXXXXX,1,Macro(ciddial|1${EXTEN}|${EXTEN}|30|TW|Zap/1)
-exten => _1NXXNXXXXXX,1,Macro(ciddial|${EXTEN}|${EXTEN:1}|30|TW|Zap/1)
-exten => _754XXXX,1,Macro(ciddial|${EXTEN}|707${EXTEN}|30|TW|Zap/1)
-exten => _574XXXX,1,Macro(ciddial|${EXTEN}|707${EXTEN}|30|TW|Zap/1)
-exten => _NXXXXXX,1,Macro(ciddial|1707${EXTEN}|707${EXTEN}|30|TW|Zap/1)
-exten => 911,1,Macro(ciddial|911|911|30|TW|Zap/1)
-exten => 411,1,Macro(ciddial|411|411|30|TW|Zap/1)
+exten => _707202XXXX,1,Gosub(ciddial|s|1:1${EXTEN:3}|${EXTEN}|30|TW|Zap/1)
+exten => _707219XXXX,1,Gosub(ciddial|s|1:1${EXTEN:3}|${EXTEN}|30|TW|Zap/1)
+exten => _707254XXXX,1,Gosub(ciddial|s|1:1${EXTEN:3}|${EXTEN}|30|TW|Zap/1)
+exten => _707716XXXX,1,Gosub(ciddial|s|1:1${EXTEN:3}|${EXTEN}|30|TW|Zap/1)
+exten => _707754XXXX,1,Gosub(ciddial|s|1:${EXTEN:3}|${EXTEN}|30|TW|Zap/1)
+exten => _707574XXXX,1,Gosub(ciddial|s|1:${EXTEN:3}|${EXTEN}|30|TW|Zap/1)
+exten => _NXXNXXXXXX,1,Gosub(ciddial|s|1:1${EXTEN}|${EXTEN}|30|TW|Zap/1)
+exten => _1NXXNXXXXXX,1,Gosub(ciddial|s|1:${EXTEN}|${EXTEN:1}|30|TW|Zap/1)
+exten => _754XXXX,1,Gosub(ciddial|s|1:${EXTEN}|707${EXTEN}|30|TW|Zap/1)
+exten => _574XXXX,1,Gosub(ciddial|s|1:${EXTEN}|707${EXTEN}|30|TW|Zap/1)
+exten => _NXXXXXX,1,Gosub(ciddial|s|1:1707${EXTEN}|707${EXTEN}|30|TW|Zap/1)
+exten => 911,1,Gosub(ciddial|s|1:911|911|30|TW|Zap/1)
+exten => 411,1,Gosub(ciddial|s|1:411|411|30|TW|Zap/1)
 
 
 [fromSeanUniden]
 include => parkedcalls
 exten => 21,1,Dial(IAX2/seaniax|20|T)
-exten => _707202XXXX,1,Macro(ciddial|${EXTEN:3}|${EXTEN}|30|TW|Zap/1)
-exten => _707219XXXX,1,Macro(ciddial|${EXTEN:3}|${EXTEN}|30|TW|Zap/1)
-exten => _707254XXXX,1,Macro(ciddial|${EXTEN:3}|${EXTEN}|30|TW|Zap/1)
-exten => _707716XXXX,1,Macro(ciddial|${EXTEN:3}|${EXTEN}|30|TW|Zap/1)
-exten => _707754XXXX,1,Macro(ciddial|${EXTEN:3}|${EXTEN}|30|TW|Zap/1)
-exten => _707574XXXX,1,Macro(ciddial|${EXTEN:3}|${EXTEN}|30|TW|Zap/1)
-exten => _NXXNXXXXXX,1,Macro(ciddial|1${EXTEN}|${EXTEN}|30|TW|Zap/1)
-exten => _1NXXNXXXXXX,1,Macro(ciddial|${EXTEN}|${EXTEN:1}|30|TW|Zap/1)
-exten => _754XXXX,1,Macro(ciddial|${EXTEN}|707${EXTEN}|30|TW|Zap/1)
-exten => _574XXXX,1,Macro(ciddial|${EXTEN}|707${EXTEN}|30|TW|Zap/1)
-exten => _NXXXXXX,1,Macro(ciddial|1707${EXTEN}|707${EXTEN}|30|TW|Zap/1)
-exten => 911,1,Macro(ciddial|911|911|30|TW|Zap/1)
-exten => 411,1,Macro(ciddial|411|411|30|TW|Zap/1)
+exten => _707202XXXX,1,Gosub(ciddial|s|1:${EXTEN:3}|${EXTEN}|30|TW|Zap/1)
+exten => _707219XXXX,1,Gosub(ciddial|s|1:${EXTEN:3}|${EXTEN}|30|TW|Zap/1)
+exten => _707254XXXX,1,Gosub(ciddial|s|1:${EXTEN:3}|${EXTEN}|30|TW|Zap/1)
+exten => _707716XXXX,1,Gosub(ciddial|s|1:${EXTEN:3}|${EXTEN}|30|TW|Zap/1)
+exten => _707754XXXX,1,Gosub(ciddial|s|1:${EXTEN:3}|${EXTEN}|30|TW|Zap/1)
+exten => _707574XXXX,1,Gosub(ciddial|s|1:${EXTEN:3}|${EXTEN}|30|TW|Zap/1)
+exten => _NXXNXXXXXX,1,Gosub(ciddial|s|1:1${EXTEN}|${EXTEN}|30|TW|Zap/1)
+exten => _1NXXNXXXXXX,1,Gosub(ciddial|s|1:${EXTEN}|${EXTEN:1}|30|TW|Zap/1)
+exten => _754XXXX,1,Gosub(ciddial|s|1:${EXTEN}|707${EXTEN}|30|TW|Zap/1)
+exten => _574XXXX,1,Gosub(ciddial|s|1:${EXTEN}|707${EXTEN}|30|TW|Zap/1)
+exten => _NXXXXXX,1,Gosub(ciddial|s|1:1707${EXTEN}|707${EXTEN}|30|TW|Zap/1)
+exten => 911,1,Gosub(ciddial|s|1:911|911|30|TW|Zap/1)
+exten => 411,1,Gosub(ciddial|s|1:411|411|30|TW|Zap/1)
 
 
 [workext]
index 1594c82..36f6594 100644 (file)
@@ -131,6 +131,10 @@ static int extension_matches(pval *here, const char *exten, const char *pattern)
 static void check_goto(pval *item);
 static void find_pval_goto_item(pval *item, int lev);
 static void find_pval_gotos(pval *item, int lev);
+static int check_break(pval *item);
+static int check_continue(pval *item);
+static void check_label(pval *item);
+static void check_macro_returns(pval *macro);
 
 static struct pval *find_label_in_current_context(char *exten, char *label, pval *curr_cont);
 static struct pval *find_first_label_in_current_context(char *label, pval *curr_cont);
@@ -681,6 +685,49 @@ void traverse_pval_template(pval *item, int depth) /* depth comes in handy for a
 /*   (not all that is syntactically legal is good! */
 
 
+static void check_macro_returns(pval *macro)
+{
+       pval *i;
+       if (!macro->u3.macro_statements)
+       {
+               pval *z = calloc(1, sizeof(struct pval));
+               ast_log(LOG_WARNING, "Warning: file %s, line %d-%d: The macro %s is empty! I will insert a return.\n",
+                               macro->filename, macro->startline, macro->endline, macro->u1.str);
+
+               z->type = PV_RETURN;
+               z->startline = macro->startline;
+               z->endline = macro->endline;
+               z->startcol = macro->startcol;
+               z->endcol = macro->endcol;
+               z->filename = strdup(macro->filename);
+
+               macro->u3.macro_statements = z;
+               return;
+       }
+       for (i=macro->u3.macro_statements; i; i=i->next) {
+               /* if the last statement in the list is not return, then insert a return there */
+               if (i->next == NULL) {
+                       if (i->type != PV_RETURN) {
+                               pval *z = calloc(1, sizeof(struct pval));
+                               ast_log(LOG_WARNING, "Warning: file %s, line %d-%d: The macro %s does not end with a return; I will insert one.\n",
+                                               macro->filename, macro->startline, macro->endline, macro->u1.str);
+
+                               z->type = PV_RETURN;
+                               z->startline = macro->startline;
+                               z->endline = macro->endline;
+                               z->startcol = macro->startcol;
+                               z->endcol = macro->endcol;
+                               z->filename = strdup(macro->filename);
+
+                               i->next = z;
+                               return;
+                       }
+               }
+       }
+       return;
+}
+
+
 
 static int extension_matches(pval *here, const char *exten, const char *pattern)
 {
@@ -688,10 +735,10 @@ static int extension_matches(pval *here, const char *exten, const char *pattern)
        regex_t preg;
        
        /* simple case, they match exactly, the pattern and exten name */
-       if( !strcmp(pattern,exten) == 0 )
+       if (!strcmp(pattern,exten) == 0)
                return 1;
        
-       if ( pattern[0] == '_' ) {
+       if (pattern[0] == '_') {
                char reg1[2000];
                const char *p;
                char *r = reg1;
@@ -1048,16 +1095,64 @@ static int check_continue(pval *item)
        return 0;
 }
 
+static struct pval *in_macro(pval *item)
+{
+       struct pval *curr;
+       curr = item;    
+       while( curr ) {
+               if( curr->type == PV_MACRO  ) {
+                       return curr;
+               }
+               curr = curr->dad;
+       }
+       return 0;
+}
+
+static struct pval *in_context(pval *item)
+{
+       struct pval *curr;
+       curr = item;    
+       while( curr ) {
+               if( curr->type == PV_MACRO || curr->type == PV_CONTEXT ) {
+                       return curr;
+               }
+               curr = curr->dad;
+       }
+       return 0;
+}
+
 
 /* general purpose goto finder */
 
 static void check_label(pval *item)
 {
+       struct pval *curr;
+       struct pval *x;
+       int alright = 0;
+       
+       /* A label outside an extension just plain does not make sense! */
+       
+       curr = item;
+       
+       while( curr ) {
+               if( curr->type == PV_MACRO || curr->type == PV_EXTENSION   ) {
+                       alright = 1;
+                       break;
+               }
+               curr = curr->dad;
+       }
+       if( !alright )
+       {
+               ast_log(LOG_ERROR,"Error: file %s, line %d-%d: Label %s is not within an extension or macro!\n",
+                               item->filename, item->startline, item->endline, item->u1.str);
+               errs++; 
+       }
+       
+       
        /* basically, ensure that a label is not repeated in a context. Period.
           The method:  well, for each label, find the first label in the context
           with the same name. If it's not the current label, then throw an error. */
-       struct pval *curr;
-       struct pval *x;
+
        
        /* printf("==== check_label:   ====\n"); */
        if( !current_extension )
@@ -1231,12 +1326,34 @@ static void check_goto(pval *item)
                                                ast_log(LOG_ERROR,"Error: file %s, line %d-%d: goto:  no label %s|%s exists in the context %s or its inclusions!\n",
                                                                item->filename, item->startline, item->endline, item->u1.list->next->u1.str, item->u1.list->next->next->u1.str, item->u1.list->u1.str );
                                                errs++;
+                                       } else {
+                                               struct pval *mac = in_macro(item); /* is this goto inside a macro? */
+                                               if( mac ) {    /* yes! */
+                                                       struct pval *targ = in_context(found);
+                                                       if( mac != targ )
+                                                       {
+                                                               ast_log(LOG_WARNING, "Warning: file %s, line %d-%d: It's bad form to have a goto in a macro to a target outside the macro!\n",
+                                                                               item->filename, item->startline, item->endline);
+                                                               warns++;                                                                
+                                                       }
+                                               }
                                        }
                                } else {
                                        ast_log(LOG_ERROR,"Error: file %s, line %d-%d: goto:  no context %s could be found that matches the goto target!\n",
                                                        item->filename, item->startline, item->endline, item->u1.list->u1.str);
                                        errs++;
                                }
+                       } else {
+                               struct pval *mac = in_macro(item); /* is this goto inside a macro? */
+                               if( mac ) {    /* yes! */
+                                       struct pval *targ = in_context(x);
+                                       if( mac != targ )
+                                       {
+                                               ast_log(LOG_WARNING, "Warning: file %s, line %d-%d: It's bad form to have a goto in a macro to a target outside the macro!\n",
+                                                               item->filename, item->startline, item->endline);
+                                               warns++;                                                                
+                                       }
+                               }
                        }
                }
        }
@@ -2188,7 +2305,7 @@ void check_pval_item(pval *item, struct argapp *apps, int in_globals)
 #endif
        struct pval *macro_def;
        struct pval *app_def;
-       
+
        char errmsg[4096];
        char *strp;
        
@@ -2209,6 +2326,9 @@ void check_pval_item(pval *item, struct argapp *apps, int in_globals)
                in_abstract_context = 0;
                current_context = item;
                current_extension = 0;
+
+               check_macro_returns(item);
+               
                for (lp=item->u2.arglist; lp; lp=lp->next) {
                
                }
@@ -2282,11 +2402,32 @@ void check_pval_item(pval *item, struct argapp *apps, int in_globals)
                        || strcasecmp(item->u1.str,"while") == 0
                        || strcasecmp(item->u1.str,"endwhile") == 0
                        || strcasecmp(item->u1.str,"random") == 0
+                       || strcasecmp(item->u1.str,"gosub") == 0
+                       || strcasecmp(item->u1.str,"return") == 0
+                       || strcasecmp(item->u1.str,"gosubif") == 0
+                       || strcasecmp(item->u1.str,"continuewhile") == 0
+                       || strcasecmp(item->u1.str,"endwhile") == 0
+                       || strcasecmp(item->u1.str,"execif") == 0
+                       || strcasecmp(item->u1.str,"execiftime") == 0
+                       || strcasecmp(item->u1.str,"exitwhile") == 0
+                       || strcasecmp(item->u1.str,"goto") == 0
+                       || strcasecmp(item->u1.str,"macro") == 0
+                       || strcasecmp(item->u1.str,"macroexclusive") == 0
+                       || strcasecmp(item->u1.str,"macroif") == 0
+                       || strcasecmp(item->u1.str,"stackpop") == 0
                        || strcasecmp(item->u1.str,"execIf") == 0 ) {
-                       ast_log(LOG_WARNING,"Warning: file %s, line %d-%d: application call to %s needs to be re-written using AEL if, while, goto, etc. keywords instead!\n",
+                       ast_log(LOG_WARNING,"Warning: file %s, line %d-%d: application call to %s affects flow of control, and needs to be re-written using AEL if, while, goto, etc. keywords instead!\n",
                                        item->filename, item->startline, item->endline, item->u1.str);
                        warns++;
                }
+               if (strcasecmp(item->u1.str,"macroexit") == 0) {
+                               ast_log(LOG_WARNING, "Warning: file %s, line %d-%d: I am converting the MacroExit call here to a return statement.\n",
+                                               item->filename, item->startline, item->endline);
+                               item->type = PV_RETURN;
+                               free(item->u1.str);
+                               item->u1.str = 0;
+               }
+               
 #ifdef AAL_ARGCHECK
                found = 0;
                for (app=apps; app; app=app->next) {
@@ -2775,6 +2916,7 @@ static void gen_prios(struct ael_extension *exten, char *label, pval *statement,
        char new_label[2000];
        int default_exists;
        int local_control_statement_count;
+       int first;
        struct ael_priority *loop_break_save;
        struct ael_priority *loop_continue_save;
        struct ael_extension *switch_case;
@@ -3022,7 +3164,7 @@ static void gen_prios(struct ael_extension *exten, char *label, pval *statement,
                                                        linkprio(switch_case, fall_thru);
                                                }
                                        }
-                                       if (switch_case->return_needed) {
+                                       if (switch_case->return_needed) { /* returns don't generate a goto eoe (end of extension) any more, just a Return() app call) */
                                                char buf[2000];
                                                struct ael_priority *np2 = new_prio();
                                                np2->type = AEL_APPCALL;
@@ -3083,7 +3225,7 @@ static void gen_prios(struct ael_extension *exten, char *label, pval *statement,
                                                        linkprio(switch_case, fall_thru);
                                                }
                                        }
-                                       if (switch_case->return_needed) {
+                                       if (switch_case->return_needed) { /* returns don't generate a goto eoe (end of extension) any more, just a Return() app call) */
                                                char buf[2000];
                                                struct ael_priority *np2 = new_prio();
                                                np2->type = AEL_APPCALL;
@@ -3146,7 +3288,7 @@ static void gen_prios(struct ael_extension *exten, char *label, pval *statement,
                                                        linkprio(switch_case, fall_thru);
                                                }
                                        }
-                                       if (switch_case->return_needed) {
+                                       if (switch_case->return_needed) { /* returns don't generate a goto eoe (end of extension) any more, just a Return() app call) */
                                                char buf[2000];
                                                struct ael_priority *np2 = new_prio();
                                                np2->type = AEL_APPCALL;
@@ -3170,12 +3312,19 @@ static void gen_prios(struct ael_extension *exten, char *label, pval *statement,
                case PV_MACRO_CALL:
                        pr = new_prio();
                        pr->type = AEL_APPCALL;
-                       snprintf(buf1,sizeof(buf1),"%s", p->u1.str);
+                       snprintf(buf1,sizeof(buf1),"%s|s|1", p->u1.str);
+                       first = 1;
                        for (p2 = p->u2.arglist; p2; p2 = p2->next) {
-                               strcat(buf1,"|");
+                               if( first )
+                               {
+                                       strcat(buf1,":");
+                                       first = 0;
+                               }
+                               else
+                                       strcat(buf1,"|");
                                strcat(buf1,p2->u1.str);
                        }
-                       pr->app = strdup("Macro");
+                       pr->app = strdup("Gosub");
                        pr->appargs = strdup(buf1);
                        pr->origin = p;
                        linkprio(exten, pr);
@@ -3206,9 +3355,9 @@ static void gen_prios(struct ael_extension *exten, char *label, pval *statement,
 
                case PV_RETURN: /* hmmmm */
                        pr = new_prio();
-                       pr->type = AEL_RETURN; /* simple goto */
-                       exten->return_needed++;
-                       pr->app = strdup("Goto");
+                       pr->type = AEL_RETURN; /* simple Return */
+                       /* exten->return_needed++; */
+                       pr->app = strdup("Return");
                        pr->appargs = strdup("");
                        pr->origin = p;
                        linkprio(exten, pr);
@@ -3222,46 +3371,6 @@ static void gen_prios(struct ael_extension *exten, char *label, pval *statement,
                        linkprio(exten, pr);
                        break;
 
-#ifdef OLD_RAND_ACTION
-               case PV_RANDOM:
-                       control_statement_count++;
-                       snprintf(new_label,sizeof(new_label),"rand-%s-%d", label, control_statement_count);
-                       rand_test = new_prio();
-                       rand_test->type = AEL_RAND_CONTROL;
-                       snprintf(buf1,sizeof(buf1),"$[%s]",
-                                        p->u1.str );
-                       rand_test->app = 0;
-                       rand_test->appargs = strdup(buf1);
-                       rand_test->origin = p;
-                       
-                       rand_end = new_prio();
-                       rand_end->type = AEL_APPCALL;
-                       snprintf(buf1,sizeof(buf1),"Finish rand-%s-%d", label, control_statement_count);
-                       rand_end->app = strdup("NoOp");
-                       rand_end->appargs = strdup(buf1);
-                       
-                       rand_skip = new_prio();
-                       rand_skip->type = AEL_CONTROL1; /* simple goto */
-                       rand_skip->goto_true = rand_end;
-                       rand_skip->origin  = p;
-
-                       rand_test->goto_true = rand_skip; /* +1, really */
-
-                       linkprio(exten, rand_test);
-                       
-                       if (p->u3.else_statements) {
-                               gen_prios(exten, new_label, p->u3.else_statements, mother_exten, this_context); /* this will link in all the else statements here */
-                       }
-                       
-                       linkprio(exten, rand_skip);
-                       
-                       gen_prios(exten, new_label, p->u2.statements, mother_exten, this_context); /* this will link in all the "true" statements here */
-
-                       linkprio(exten, rand_end);
-                       
-                       break;
-#endif                 
-
                case PV_IFTIME:
                        control_statement_count++;
                        snprintf(new_label,sizeof(new_label),"iftime-%s-%d", label, control_statement_count);
@@ -3383,7 +3492,7 @@ static void gen_prios(struct ael_extension *exten, char *label, pval *statement,
                        snprintf(new_label,sizeof(new_label),"catch-%s-%d",p->u1.str, control_statement_count);
                        
                        gen_prios(switch_case, new_label, p->u2.statements,mother_exten,this_context); /* this will link in all the catch body statements here */
-                       if (switch_case->return_needed) {
+                       if (switch_case->return_needed) { /* returns now generate a Return() app call, no longer a goto to the end of the exten */
                                char buf[2000];
                                struct ael_priority *np2 = new_prio();
                                np2->type = AEL_APPCALL;
@@ -3500,8 +3609,8 @@ void add_extensions(struct ael_extension *exten)
                                break;
 
                        case AEL_RETURN:
-                               strcpy(app,"Goto");
-                               snprintf(appargs,sizeof(appargs), "%d", exten->return_target->priority_num);
+                               strcpy(app,"Return");
+                               appargs[0] = 0;
                                break;
                                
                        default:
@@ -3619,9 +3728,8 @@ void ast_compile_ael2(struct ast_context **local_contexts, struct pval *root)
                
                switch (p->type) {
                case PV_MACRO:
-                       strcpy(buf,"macro-");
-                       strcat(buf,p->u1.str);
-                       context = ast_context_create(local_contexts, buf, registrar);
+                       
+                       context = ast_context_create(local_contexts, p->u1.str, registrar);
                        
                        exten = new_exten();
                        exten->context = context;
@@ -3640,7 +3748,7 @@ void ast_compile_ael2(struct ast_context **local_contexts, struct pval *root)
                        
                        /* CONTAINS APPCALLS, CATCH, just like extensions... */
                        gen_prios(exten, p->u1.str, p->u3.macro_statements, 0, context );
-                       if (exten->return_needed) {
+                       if (exten->return_needed) {  /* most likely, this will go away */
                                struct ael_priority *np2 = new_prio();
                                np2->type = AEL_APPCALL;
                                np2->app = strdup("NoOp");
@@ -3687,7 +3795,7 @@ void ast_compile_ael2(struct ast_context **local_contexts, struct pval *root)
                                                exten->hints = strdup(p2->u3.hints);
                                        exten->regexten = p2->u4.regexten;
                                        gen_prios(exten, p->u1.str, p2->u2.statements, 0, context );
-                                       if (exten->return_needed) {
+                                       if (exten->return_needed) { /* returns don't generate a goto eoe (end of extension) any more, just a Return() app call) */
                                                struct ael_priority *np2 = new_prio();
                                                np2->type = AEL_APPCALL;
                                                np2->app = strdup("NoOp");