From 35b951d2ac43bdee8f52ce384d81b8159b34c3b5 Mon Sep 17 00:00:00 2001 From: Steve Murphy Date: Wed, 27 Sep 2006 03:45:22 +0000 Subject: This commits the changes to AEL to use the gosub-with-args from Tilghman to perform macro calls. This results in substantially smaller stack footprint, which allows macro call depths in excess of 100,000 levels, rather than the limit of 7 calls deep, which the Macro app is subject to. git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@43747 65c4cc65-6c06-0410-ace0-fbb531ad65f3 --- CHANGES | 8 + pbx/ael/ael-test/ael-test11/extensions.ael | 1 + pbx/ael/ael-test/ael-test3/extensions.ael | 1 + pbx/ael/ael-test/ael-test5/extensions.ael | 27 +- pbx/ael/ael-test/ref.ael-ntest10 | 253 +++++++++-------- pbx/ael/ael-test/ref.ael-test1 | 24 +- pbx/ael/ael-test/ref.ael-test2 | 36 ++- pbx/ael/ael-test/ref.ael-test3 | 110 +++++++- pbx/ael/ael-test/ref.ael-test4 | 36 ++- pbx/ael/ael-test/ref.ael-test5 | 19 +- pbx/ael/ael-test/ref.ael-test6 | 32 ++- pbx/ael/ael-test/ref.ael-test7 | 26 +- pbx/ael/ael-test/ref.ael-vtest13 | 429 +++++++++++++++++------------ pbx/pbx_ael.c | 234 +++++++++++----- 14 files changed, 785 insertions(+), 451 deletions(-) diff --git a/CHANGES b/CHANGES index 04d02942b..db9c17523 100644 --- 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. + diff --git a/pbx/ael/ael-test/ael-test11/extensions.ael b/pbx/ael/ael-test/ael-test11/extensions.ael index 886a51eb5..a6b2226f8 100644 --- a/pbx/ael/ael-test/ael-test11/extensions.ael +++ b/pbx/ael/ael-test/ael-test11/extensions.ael @@ -53,4 +53,5 @@ ptr1: // <-- duplicate label (macros are about the equiv of an extension) Noop(esac) ; } } + return; } diff --git a/pbx/ael/ael-test/ael-test3/extensions.ael b/pbx/ael/ael-test/ael-test3/extensions.ael index dd77c0531..14b24ce51 100755 --- a/pbx/ael/ael-test/ael-test3/extensions.ael +++ b/pbx/ael/ael-test/ael-test3/extensions.ael @@ -14,6 +14,7 @@ globals macro std-exten( ext , dev ) { Dial(${dev}/${ext},20); + goto privacyManagerFailed|s|begin; switch(${DIALSTATUS}) { case BUSY: diff --git a/pbx/ael/ael-test/ael-test5/extensions.ael b/pbx/ael/ael-test/ael-test5/extensions.ael index 304275a00..00a91fd44 100644 --- a/pbx/ael/ael-test/ael-test5/extensions.ael +++ b/pbx/ael/ael-test/ael-test5/extensions.ael @@ -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); diff --git a/pbx/ael/ael-test/ref.ael-ntest10 b/pbx/ael/ael-test/ref.ael-ntest10 index e7eaa5b06..c26e393e2 100644 --- a/pbx/ael/ael-test/ref.ael-ntest10 +++ b/pbx/ael/ael-test/ref.ael-ntest10 @@ -5,125 +5,138 @@ (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 diff --git a/pbx/ael/ael-test/ref.ael-test1 b/pbx/ael/ael-test/ref.ael-test1 index 0c7b31913..0b3a890f4 100644 --- a/pbx/ael/ael-test/ref.ael-test1 +++ b/pbx/ael/ael-test/ref.ael-test1 @@ -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 diff --git a/pbx/ael/ael-test/ref.ael-test2 b/pbx/ael/ael-test/ref.ael-test2 index fd6c286e9..a940ada3b 100644 --- a/pbx/ael/ael-test/ref.ael-test2 +++ b/pbx/ael/ael-test/ref.ael-test2 @@ -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 diff --git a/pbx/ael/ael-test/ref.ael-test3 b/pbx/ael/ael-test/ref.ael-test3 index ebdacba5c..f562a4eec 100644 --- a/pbx/ael/ael-test/ref.ael-test3 +++ b/pbx/ael/ael-test/ref.ael-test3 @@ -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 diff --git a/pbx/ael/ael-test/ref.ael-test4 b/pbx/ael/ael-test/ref.ael-test4 index fd6c286e9..a940ada3b 100644 --- a/pbx/ael/ael-test/ref.ael-test4 +++ b/pbx/ael/ael-test/ref.ael-test4 @@ -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 diff --git a/pbx/ael/ael-test/ref.ael-test5 b/pbx/ael/ael-test/ref.ael-test5 index 06bae94fc..b0b7523db 100644 --- a/pbx/ael/ael-test/ref.ael-test5 +++ b/pbx/ael/ael-test/ref.ael-test5 @@ -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 diff --git a/pbx/ael/ael-test/ref.ael-test6 b/pbx/ael/ael-test/ref.ael-test6 index 998ce3b06..bb8a8ba69 100644 --- a/pbx/ael/ael-test/ref.ael-test6 +++ b/pbx/ael/ael-test/ref.ael-test6 @@ -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 diff --git a/pbx/ael/ael-test/ref.ael-test7 b/pbx/ael/ael-test/ref.ael-test7 index a9a1b77f8..fb7f92ce5 100644 --- a/pbx/ael/ael-test/ref.ael-test7 +++ b/pbx/ael/ael-test/ref.ael-test7 @@ -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 diff --git a/pbx/ael/ael-test/ref.ael-vtest13 b/pbx/ael/ael-test/ref.ael-vtest13 index 8da228e8f..ad48e1dd3 100644 --- a/pbx/ael/ael-test/ref.ael-vtest13 +++ b/pbx/ael/ael-test/ref.ael-vtest13 @@ -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] diff --git a/pbx/pbx_ael.c b/pbx/pbx_ael.c index 1594c82b3..36f65945f 100644 --- a/pbx/pbx_ael.c +++ b/pbx/pbx_ael.c @@ -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"); -- cgit v1.2.3