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
This commit is contained in:
Steve Murphy 2006-09-27 03:45:22 +00:00
parent 2b7debf368
commit 35b951d2ac
14 changed files with 785 additions and 451 deletions

View File

@ -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.

View File

@ -53,4 +53,5 @@ ptr1: // <-- duplicate label (macros are about the equiv of an extension)
Noop(esac) ;
}
}
return;
}

View File

@ -14,6 +14,7 @@ globals
macro std-exten( ext , dev )
{
Dial(${dev}/${ext},20);
goto privacyManagerFailed|s|begin;
switch(${DIALSTATUS})
{
case BUSY:

View File

@ -10,7 +10,7 @@ context hd-queue {
0 => goto default|0|1;
1 => {
Dial(u41950@svm1.shsu.edu);
Dial(u41950@ixtlchochitl.zvbwu.edu);
Congestion(10);
Hangup;
};
@ -116,12 +116,13 @@ context huntsville-calling {
macro dialout( number ) {
Realtime(call_info,exten,${CALLERIDNUM:5},mon_);
if ("${mon_monitor}" = "YES") {
Dial(SIP/${number}@sgw1.shsu.edu,,wW);
Dial(SIP/${number}@sgw2.shsu.edu,,wW);
Dial(SIP/${number}@zgw1.zvbwu.edu,,wW);
Dial(SIP/${number}@zgw2.zvbwu.edu,,wW);
} else {
Dial(SIP/${number}@sgw1.shsu.edu);
Dial(SIP/${number}@sgw2.shsu.edu);
Dial(SIP/${number}@zgw1.zvbwu.edu);
Dial(SIP/${number}@zgw2.zvbwu.edu);
};
return;
};
// Standard extension macro:
@ -151,7 +152,7 @@ macro stdexten( ext ) {
&checkcfb(${ext});
break;
case "CHANUNAVAIL":
Dial(IAX2/asterisk:password@scm2.shsu.edu/${info_forwardto},25,wW);
Dial(IAX2/asterisk:password@ixtlchochitl.zvbwu.edu/${info_forwardto},25,wW);
MailboxExists(${ext});
// if ("${VMBOXEXISTSSTATUS}" = "FAILED") {
// Congestion(10);
@ -182,7 +183,7 @@ macro stdexten( ext ) {
};
macro uvm( ext ) {
Dial(SIP/u${ext}@svm1.shsu.edu);
Dial(SIP/u${ext}@ixtlchochitl.zvbwu.edu);
Playback(im-sorry);
Playback(voice-mail-system);
Playback(down);
@ -191,7 +192,7 @@ macro uvm( ext ) {
};
macro bvm( ext ) {
Dial(SIP/b${ext}@svm1.shsu.edu);
Dial(SIP/b${ext}@ixtlchochitl.zvbwu.edu);
Playback(im-sorry);
Playback(voice-mail-system);
Playback(down);
@ -204,6 +205,7 @@ macro checkdnd( ext ) {
NoOp(Do Not Disturb is not active);
} else
&uvm(${ext});
return;
};
macro checkcf( ext ) {
@ -213,6 +215,7 @@ macro checkcf( ext ) {
} else {
Set(info_forwardto=${ext}&SIP/${ext}w);
};
return;
};
macro checkcfb( ext ) {
@ -227,6 +230,7 @@ macro checkcfb( ext ) {
Hangup;
};
&stdexten(${info_forwardbusy});
return;
};
///////////////////////////////////////////////////////////////////////////////
@ -691,6 +695,7 @@ macro check-psd-exists ( ext ) {
System(/usr/local/bin/create_psd.sh ${ext});
} else
NoOp(PSD set for ${ext});
return;
};
context app-psd {
@ -798,7 +803,7 @@ context vm-include {
context vm-direct {
s => {
Dial(SIP/5555@svm1.shsu.edu,20);
Dial(SIP/5555@ixtlchochitl.zvbwu.edu,20);
Playback(im-sorry);
Playback(voice-mail-system);
Playback(down);
@ -810,7 +815,7 @@ context vm-direct {
context vm-extension {
s => {
Dial(SIP/62100@svm1.shsu.edu,20);
Dial(SIP/62100@ixtlchochitl.zvbwu.edu,20);
Playback(im-sorry);
Playback(voice-mail-system);
Playback(down);
@ -822,7 +827,7 @@ context vm-extension {
context vm-directory {
5556 => {
Dial(SIP/5556@svm1.shsu.edu);
Dial(SIP/5556@ixtlchochitl.zvbwu.edu);
Playback(im-sorry);
Playback(voice-mail-system);
Playback(down);

View File

@ -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

View File

@ -2,13 +2,17 @@
(If you find progress and other non-error messages irritating, you can use -q to suppress them)
(You can use the -w option to dump extensions.conf format to extensions.conf.aeldump)
LOG: lev:2 file:../pbx/pbx_ael.c line:3747 func: pbx_load_module Starting AEL load process.
LOG: lev:2 file:../pbx/pbx_ael.c line:3754 func: pbx_load_module AEL load process: calculated config file name './extensions.ael'.
LOG: lev:2 file:../pbx/pbx_ael.c line:3757 func: pbx_load_module AEL load process: parsed config file name './extensions.ael'.
LOG: lev:3 file:../pbx/pbx_ael.c line:899 func: check_dow Warning: file ./extensions.ael, line 67-67: The day (m0n) must be one of 'sun', 'mon', 'tue', 'wed', 'thu', 'fri', or 'sat'!
LOG: lev:3 file:../pbx/pbx_ael.c line:857 func: check_timerange Warning: file ./extensions.ael, line 78-78: The end time (25:00) is out of range!
LOG: lev:2 file:../pbx/pbx_ael.c line:3760 func: pbx_load_module AEL load process: checked config file name './extensions.ael'.
LOG: lev:2 file:../pbx/pbx_ael.c line:3762 func: pbx_load_module AEL load process: compiled config file name './extensions.ael'.
LOG: lev:2 file:../pbx/pbx_ael.c line:3765 func: pbx_load_module AEL load process: merged config file name './extensions.ael'.
LOG: lev:2 file:../pbx/pbx_ael.c line:3768 func: pbx_load_module AEL load process: verified config file name './extensions.ael'.
LOG: lev:4 file:ael2_parse line:458 func: main 5 contexts, 13 extensions, 156 priorities
LOG: lev:2 file:../pbx/pbx_ael.c line:3904 func: pbx_load_module Starting AEL load process.
LOG: lev:2 file:../pbx/pbx_ael.c line:3911 func: pbx_load_module AEL load process: calculated config file name './extensions.ael'.
LOG: lev:2 file:../pbx/pbx_ael.c line:3914 func: pbx_load_module AEL load process: parsed config file name './extensions.ael'.
LOG: lev:3 file:../pbx/pbx_ael.c line:711 func: check_macro_returns Warning: file ./extensions.ael, line 2-16: The macro testdial does not end with a return; I will insert one.
LOG: lev:3 file:../pbx/pbx_ael.c line:711 func: check_macro_returns Warning: file ./extensions.ael, line 18-25: The macro exten-gen does not end with a return; I will insert one.
LOG: lev:3 file:../pbx/pbx_ael.c line:1349 func: check_goto Warning: file ./extensions.ael, line 21-21: It's bad form to have a goto in a macro to a target outside the macro!
LOG: lev:3 file:../pbx/pbx_ael.c line:1349 func: check_goto Warning: file ./extensions.ael, line 23-23: It's bad form to have a goto in a macro to a target outside the macro!
LOG: lev:3 file:../pbx/pbx_ael.c line:943 func: check_dow Warning: file ./extensions.ael, line 67-67: The day (m0n) must be one of 'sun', 'mon', 'tue', 'wed', 'thu', 'fri', or 'sat'!
LOG: lev:3 file:../pbx/pbx_ael.c line:901 func: check_timerange Warning: file ./extensions.ael, line 78-78: The end time (25:00) is out of range!
LOG: lev:2 file:../pbx/pbx_ael.c line:3917 func: pbx_load_module AEL load process: checked config file name './extensions.ael'.
LOG: lev:2 file:../pbx/pbx_ael.c line:3919 func: pbx_load_module AEL load process: compiled config file name './extensions.ael'.
LOG: lev:2 file:../pbx/pbx_ael.c line:3922 func: pbx_load_module AEL load process: merged config file name './extensions.ael'.
LOG: lev:2 file:../pbx/pbx_ael.c line:3925 func: pbx_load_module AEL load process: verified config file name './extensions.ael'.
LOG: lev:4 file:ael2_parse line:479 func: main 5 contexts, 13 extensions, 154 priorities

View File

@ -2,17 +2,25 @@
(If you find progress and other non-error messages irritating, you can use -q to suppress them)
(You can use the -w option to dump extensions.conf format to extensions.conf.aeldump)
LOG: lev:2 file:../pbx/pbx_ael.c line:3747 func: pbx_load_module Starting AEL load process.
LOG: lev:2 file:../pbx/pbx_ael.c line:3754 func: pbx_load_module AEL load process: calculated config file name './extensions.ael'.
LOG: lev:2 file:ael.flex line:422 func: ael_yylex --Read in included file ./apptest.ael2, 3474 chars
LOG: lev:3 file:ael.y line:512 func: ael_yyparse ==== File: ./apptest.ael2, Line 46, Cols: 8-11: Suggestion: Use the goto statement instead of the Goto() application call in AEL.
LOG: lev:2 file:../pbx/pbx_ael.c line:3757 func: pbx_load_module AEL load process: parsed config file name './extensions.ael'.
LOG: lev:3 file:../pbx/pbx_ael.c line:2247 func: check_pval_item Warning: file ./apptest.ael2, line 35-35: application call to EndWhile needs to be re-written using AEL if, while, goto, etc. keywords instead!
LOG: lev:3 file:../pbx/pbx_ael.c line:2247 func: check_pval_item Warning: file ./apptest.ael2, line 37-37: application call to ExecIf needs to be re-written using AEL if, while, goto, etc. keywords instead!
LOG: lev:4 file:../pbx/pbx_ael.c line:1197 func: check_goto Error: file ./apptest.ael2, line 46-46: goto: no context cont could be found that matches the goto target!
LOG: lev:3 file:../pbx/pbx_ael.c line:2247 func: check_pval_item Warning: file ./apptest.ael2, line 47-47: application call to GotoIf needs to be re-written using AEL if, while, goto, etc. keywords instead!
LOG: lev:3 file:../pbx/pbx_ael.c line:2247 func: check_pval_item Warning: file ./apptest.ael2, line 48-48: application call to GotoIfTime needs to be re-written using AEL if, while, goto, etc. keywords instead!
LOG: lev:3 file:../pbx/pbx_ael.c line:2247 func: check_pval_item Warning: file ./apptest.ael2, line 85-85: application call to Random needs to be re-written using AEL if, while, goto, etc. keywords instead!
LOG: lev:3 file:../pbx/pbx_ael.c line:2247 func: check_pval_item Warning: file ./apptest.ael2, line 141-141: application call to While needs to be re-written using AEL if, while, goto, etc. keywords instead!
LOG: lev:4 file:../pbx/pbx_ael.c line:3770 func: pbx_load_module Sorry, but 0 syntax errors and 1 semantic errors were detected. It doesn't make sense to compile.
LOG: lev:4 file:ael2_parse line:458 func: main 0 contexts, 0 extensions, 0 priorities
LOG: lev:2 file:../pbx/pbx_ael.c line:3856 func: pbx_load_module Starting AEL load process.
LOG: lev:2 file:../pbx/pbx_ael.c line:3863 func: pbx_load_module AEL load process: calculated config file name './extensions.ael'.
LOG: lev:2 file:ael.flex line:429 func: ael_yylex --Read in included file ./apptest.ael2, 3474 chars
LOG: lev:3 file:ael.y line:523 func: ael_yyparse ==== File: ./apptest.ael2, Line 46, Cols: 8-11: Suggestion: Use the goto statement instead of the Goto() application call in AEL.
LOG: lev:2 file:../pbx/pbx_ael.c line:3866 func: pbx_load_module AEL load process: parsed config file name './extensions.ael'.
LOG: lev:3 file:../pbx/pbx_ael.c line:2368 func: check_pval_item Warning: file ./apptest.ael2, line 35-35: application call to EndWhile affects flow of control, and needs to be re-written using AEL if, while, goto, etc. keywords instead!
LOG: lev:3 file:../pbx/pbx_ael.c line:2368 func: check_pval_item Warning: file ./apptest.ael2, line 37-37: application call to ExecIf affects flow of control, and needs to be re-written using AEL if, while, goto, etc. keywords instead!
LOG: lev:3 file:../pbx/pbx_ael.c line:2368 func: check_pval_item Warning: file ./apptest.ael2, line 38-38: application call to ExecIfTime affects flow of control, and needs to be re-written using AEL if, while, goto, etc. keywords instead!
LOG: lev:3 file:../pbx/pbx_ael.c line:2368 func: check_pval_item Warning: file ./apptest.ael2, line 44-44: application call to Gosub affects flow of control, and needs to be re-written using AEL if, while, goto, etc. keywords instead!
LOG: lev:3 file:../pbx/pbx_ael.c line:2368 func: check_pval_item Warning: file ./apptest.ael2, line 45-45: application call to GosubIf affects flow of control, and needs to be re-written using AEL if, while, goto, etc. keywords instead!
LOG: lev:4 file:../pbx/pbx_ael.c line:1302 func: check_goto Error: file ./apptest.ael2, line 46-46: goto: no context cont could be found that matches the goto target!
LOG: lev:3 file:../pbx/pbx_ael.c line:2368 func: check_pval_item Warning: file ./apptest.ael2, line 47-47: application call to GotoIf affects flow of control, and needs to be re-written using AEL if, while, goto, etc. keywords instead!
LOG: lev:3 file:../pbx/pbx_ael.c line:2368 func: check_pval_item Warning: file ./apptest.ael2, line 48-48: application call to GotoIfTime affects flow of control, and needs to be re-written using AEL if, while, goto, etc. keywords instead!
LOG: lev:3 file:../pbx/pbx_ael.c line:2368 func: check_pval_item Warning: file ./apptest.ael2, line 58-58: application call to Macro affects flow of control, and needs to be re-written using AEL if, while, goto, etc. keywords instead!
LOG: lev:3 file:../pbx/pbx_ael.c line:2373 func: check_pval_item Warning: file ./apptest.ael2, line 59-59: I am converting the MacroExit call here to a return statement.
LOG: lev:3 file:../pbx/pbx_ael.c line:2368 func: check_pval_item Warning: file ./apptest.ael2, line 60-60: application call to MacroIf affects flow of control, and needs to be re-written using AEL if, while, goto, etc. keywords instead!
LOG: lev:3 file:../pbx/pbx_ael.c line:2368 func: check_pval_item Warning: file ./apptest.ael2, line 85-85: application call to Random affects flow of control, and needs to be re-written using AEL if, while, goto, etc. keywords instead!
LOG: lev:3 file:../pbx/pbx_ael.c line:2368 func: check_pval_item Warning: file ./apptest.ael2, line 94-94: application call to Return affects flow of control, and needs to be re-written using AEL if, while, goto, etc. keywords instead!
LOG: lev:3 file:../pbx/pbx_ael.c line:2368 func: check_pval_item Warning: file ./apptest.ael2, line 119-119: application call to StackPop affects flow of control, and needs to be re-written using AEL if, while, goto, etc. keywords instead!
LOG: lev:3 file:../pbx/pbx_ael.c line:2368 func: check_pval_item Warning: file ./apptest.ael2, line 141-141: application call to While affects flow of control, and needs to be re-written using AEL if, while, goto, etc. keywords instead!
LOG: lev:4 file:../pbx/pbx_ael.c line:3879 func: pbx_load_module Sorry, but 0 syntax errors and 1 semantic errors were detected. It doesn't make sense to compile.
LOG: lev:4 file:ael2_parse line:479 func: main 0 contexts, 0 extensions, 0 priorities

View File

@ -2,17 +2,99 @@
(If you find progress and other non-error messages irritating, you can use -q to suppress them)
(You can use the -w option to dump extensions.conf format to extensions.conf.aeldump)
LOG: lev:2 file:../pbx/pbx_ael.c line:3797 func: pbx_load_module Starting AEL load process.
LOG: lev:2 file:../pbx/pbx_ael.c line:3804 func: pbx_load_module AEL load process: calculated config file name './extensions.ael'.
LOG: lev:2 file:ael.flex line:431 func: ael_yylex --Read in included file ./include1.ael2, 78 chars
LOG: lev:2 file:ael.flex line:431 func: ael_yylex --Read in included file ./include2.ael2, 98 chars
LOG: lev:2 file:ael.flex line:431 func: ael_yylex --Read in included file ./include3.ael2, 57 chars
LOG: lev:2 file:ael.flex line:431 func: ael_yylex --Read in included file ./include5.ael2, 56 chars
LOG: lev:2 file:ael.flex line:431 func: ael_yylex --Read in included file ./include4.ael2, 87 chars
LOG: lev:2 file:ael.flex line:431 func: ael_yylex --Read in included file ./telemarket_torture.ael2, 28036 chars
LOG: lev:2 file:../pbx/pbx_ael.c line:3807 func: pbx_load_module AEL load process: parsed config file name './extensions.ael'.
LOG: lev:2 file:../pbx/pbx_ael.c line:3810 func: pbx_load_module AEL load process: checked config file name './extensions.ael'.
LOG: lev:2 file:../pbx/pbx_ael.c line:3812 func: pbx_load_module AEL load process: compiled config file name './extensions.ael'.
LOG: lev:2 file:../pbx/pbx_ael.c line:3815 func: pbx_load_module AEL load process: merged config file name './extensions.ael'.
LOG: lev:2 file:../pbx/pbx_ael.c line:3818 func: pbx_load_module AEL load process: verified config file name './extensions.ael'.
LOG: lev:4 file:ael2_parse line:479 func: main 172 contexts, 858 extensions, 2326 priorities
LOG: lev:2 file:../pbx/pbx_ael.c line:3904 func: pbx_load_module Starting AEL load process.
LOG: lev:2 file:../pbx/pbx_ael.c line:3911 func: pbx_load_module AEL load process: calculated config file name './extensions.ael'.
LOG: lev:2 file:ael.flex line:429 func: ael_yylex --Read in included file ./include1.ael2, 78 chars
LOG: lev:2 file:ael.flex line:429 func: ael_yylex --Read in included file ./include2.ael2, 98 chars
LOG: lev:2 file:ael.flex line:429 func: ael_yylex --Read in included file ./include3.ael2, 57 chars
LOG: lev:2 file:ael.flex line:429 func: ael_yylex --Read in included file ./include5.ael2, 56 chars
LOG: lev:2 file:ael.flex line:429 func: ael_yylex --Read in included file ./include4.ael2, 87 chars
LOG: lev:2 file:ael.flex line:429 func: ael_yylex --Read in included file ./telemarket_torture.ael2, 28036 chars
LOG: lev:2 file:../pbx/pbx_ael.c line:3914 func: pbx_load_module AEL load process: parsed config file name './extensions.ael'.
LOG: lev:3 file:../pbx/pbx_ael.c line:711 func: check_macro_returns Warning: file ./extensions.ael, line 14-34: The macro std-exten does not end with a return; I will insert one.
LOG: lev:3 file:../pbx/pbx_ael.c line:1349 func: check_goto Warning: file ./extensions.ael, line 17-17: It's bad form to have a goto in a macro to a target outside the macro!
LOG: lev:3 file:../pbx/pbx_ael.c line:711 func: check_macro_returns Warning: file ./extensions.ael, line 36-59: The macro std-priv-exten_1 does not end with a return; I will insert one.
LOG: lev:3 file:../pbx/pbx_ael.c line:711 func: check_macro_returns Warning: file ./extensions.ael, line 62-85: The macro std-priv-exten_2 does not end with a return; I will insert one.
LOG: lev:3 file:../pbx/pbx_ael.c line:711 func: check_macro_returns Warning: file ./extensions.ael, line 88-111: The macro std-priv-exten_3 does not end with a return; I will insert one.
LOG: lev:3 file:../pbx/pbx_ael.c line:711 func: check_macro_returns Warning: file ./extensions.ael, line 114-137: The macro std-priv-exten_4 does not end with a return; I will insert one.
LOG: lev:3 file:../pbx/pbx_ael.c line:711 func: check_macro_returns Warning: file ./extensions.ael, line 140-163: The macro std-priv-exten_5 does not end with a return; I will insert one.
LOG: lev:3 file:../pbx/pbx_ael.c line:711 func: check_macro_returns Warning: file ./extensions.ael, line 166-189: The macro std-priv-exten_6 does not end with a return; I will insert one.
LOG: lev:3 file:../pbx/pbx_ael.c line:711 func: check_macro_returns Warning: file ./extensions.ael, line 192-215: The macro std-priv-exten_7 does not end with a return; I will insert one.
LOG: lev:3 file:../pbx/pbx_ael.c line:711 func: check_macro_returns Warning: file ./extensions.ael, line 218-241: The macro std-priv-exten_8 does not end with a return; I will insert one.
LOG: lev:3 file:../pbx/pbx_ael.c line:711 func: check_macro_returns Warning: file ./extensions.ael, line 244-267: The macro std-priv-exten_9 does not end with a return; I will insert one.
LOG: lev:3 file:../pbx/pbx_ael.c line:711 func: check_macro_returns Warning: file ./extensions.ael, line 270-293: The macro std-priv-exten_10 does not end with a return; I will insert one.
LOG: lev:3 file:../pbx/pbx_ael.c line:711 func: check_macro_returns Warning: file ./extensions.ael, line 296-319: The macro std-priv-exten_11 does not end with a return; I will insert one.
LOG: lev:3 file:../pbx/pbx_ael.c line:711 func: check_macro_returns Warning: file ./extensions.ael, line 322-345: The macro std-priv-exten_12 does not end with a return; I will insert one.
LOG: lev:3 file:../pbx/pbx_ael.c line:711 func: check_macro_returns Warning: file ./extensions.ael, line 348-371: The macro std-priv-exten_13 does not end with a return; I will insert one.
LOG: lev:3 file:../pbx/pbx_ael.c line:711 func: check_macro_returns Warning: file ./extensions.ael, line 374-397: The macro std-priv-exten_14 does not end with a return; I will insert one.
LOG: lev:3 file:../pbx/pbx_ael.c line:711 func: check_macro_returns Warning: file ./extensions.ael, line 400-423: The macro std-priv-exten_15 does not end with a return; I will insert one.
LOG: lev:3 file:../pbx/pbx_ael.c line:711 func: check_macro_returns Warning: file ./extensions.ael, line 426-449: The macro std-priv-exten_16 does not end with a return; I will insert one.
LOG: lev:3 file:../pbx/pbx_ael.c line:711 func: check_macro_returns Warning: file ./extensions.ael, line 452-475: The macro std-priv-exten_17 does not end with a return; I will insert one.
LOG: lev:3 file:../pbx/pbx_ael.c line:711 func: check_macro_returns Warning: file ./extensions.ael, line 478-501: The macro std-priv-exten_18 does not end with a return; I will insert one.
LOG: lev:3 file:../pbx/pbx_ael.c line:711 func: check_macro_returns Warning: file ./extensions.ael, line 504-527: The macro std-priv-exten_19 does not end with a return; I will insert one.
LOG: lev:3 file:../pbx/pbx_ael.c line:711 func: check_macro_returns Warning: file ./extensions.ael, line 530-553: The macro std-priv-exten_20 does not end with a return; I will insert one.
LOG: lev:3 file:../pbx/pbx_ael.c line:711 func: check_macro_returns Warning: file ./extensions.ael, line 556-579: The macro std-priv-exten_21 does not end with a return; I will insert one.
LOG: lev:3 file:../pbx/pbx_ael.c line:711 func: check_macro_returns Warning: file ./extensions.ael, line 582-605: The macro std-priv-exten_22 does not end with a return; I will insert one.
LOG: lev:3 file:../pbx/pbx_ael.c line:711 func: check_macro_returns Warning: file ./extensions.ael, line 608-631: The macro std-priv-exten_23 does not end with a return; I will insert one.
LOG: lev:3 file:../pbx/pbx_ael.c line:711 func: check_macro_returns Warning: file ./extensions.ael, line 634-657: The macro std-priv-exten_24 does not end with a return; I will insert one.
LOG: lev:3 file:../pbx/pbx_ael.c line:711 func: check_macro_returns Warning: file ./extensions.ael, line 660-683: The macro std-priv-exten_25 does not end with a return; I will insert one.
LOG: lev:3 file:../pbx/pbx_ael.c line:711 func: check_macro_returns Warning: file ./extensions.ael, line 686-709: The macro std-priv-exten_26 does not end with a return; I will insert one.
LOG: lev:3 file:../pbx/pbx_ael.c line:711 func: check_macro_returns Warning: file ./extensions.ael, line 712-735: The macro std-priv-exten_27 does not end with a return; I will insert one.
LOG: lev:3 file:../pbx/pbx_ael.c line:711 func: check_macro_returns Warning: file ./extensions.ael, line 738-761: The macro std-priv-exten_28 does not end with a return; I will insert one.
LOG: lev:3 file:../pbx/pbx_ael.c line:711 func: check_macro_returns Warning: file ./extensions.ael, line 764-787: The macro std-priv-exten_29 does not end with a return; I will insert one.
LOG: lev:3 file:../pbx/pbx_ael.c line:711 func: check_macro_returns Warning: file ./extensions.ael, line 790-813: The macro std-priv-exten_30 does not end with a return; I will insert one.
LOG: lev:3 file:../pbx/pbx_ael.c line:711 func: check_macro_returns Warning: file ./extensions.ael, line 816-839: The macro std-priv-exten_31 does not end with a return; I will insert one.
LOG: lev:3 file:../pbx/pbx_ael.c line:711 func: check_macro_returns Warning: file ./extensions.ael, line 842-865: The macro std-priv-exten_32 does not end with a return; I will insert one.
LOG: lev:3 file:../pbx/pbx_ael.c line:711 func: check_macro_returns Warning: file ./extensions.ael, line 868-891: The macro std-priv-exten_33 does not end with a return; I will insert one.
LOG: lev:3 file:../pbx/pbx_ael.c line:711 func: check_macro_returns Warning: file ./extensions.ael, line 894-917: The macro std-priv-exten_34 does not end with a return; I will insert one.
LOG: lev:3 file:../pbx/pbx_ael.c line:711 func: check_macro_returns Warning: file ./extensions.ael, line 920-943: The macro std-priv-exten_35 does not end with a return; I will insert one.
LOG: lev:3 file:../pbx/pbx_ael.c line:711 func: check_macro_returns Warning: file ./extensions.ael, line 946-969: The macro std-priv-exten_36 does not end with a return; I will insert one.
LOG: lev:3 file:../pbx/pbx_ael.c line:711 func: check_macro_returns Warning: file ./extensions.ael, line 972-995: The macro std-priv-exten_37 does not end with a return; I will insert one.
LOG: lev:3 file:../pbx/pbx_ael.c line:711 func: check_macro_returns Warning: file ./extensions.ael, line 998-1021: The macro std-priv-exten_38 does not end with a return; I will insert one.
LOG: lev:3 file:../pbx/pbx_ael.c line:711 func: check_macro_returns Warning: file ./extensions.ael, line 1024-1047: The macro std-priv-exten_39 does not end with a return; I will insert one.
LOG: lev:3 file:../pbx/pbx_ael.c line:711 func: check_macro_returns Warning: file ./extensions.ael, line 1050-1073: The macro std-priv-exten_40 does not end with a return; I will insert one.
LOG: lev:3 file:../pbx/pbx_ael.c line:711 func: check_macro_returns Warning: file ./extensions.ael, line 1076-1099: The macro std-priv-exten_41 does not end with a return; I will insert one.
LOG: lev:3 file:../pbx/pbx_ael.c line:711 func: check_macro_returns Warning: file ./extensions.ael, line 1102-1125: The macro std-priv-exten_42 does not end with a return; I will insert one.
LOG: lev:3 file:../pbx/pbx_ael.c line:711 func: check_macro_returns Warning: file ./extensions.ael, line 1128-1151: The macro std-priv-exten_43 does not end with a return; I will insert one.
LOG: lev:3 file:../pbx/pbx_ael.c line:711 func: check_macro_returns Warning: file ./extensions.ael, line 1154-1177: The macro std-priv-exten_44 does not end with a return; I will insert one.
LOG: lev:3 file:../pbx/pbx_ael.c line:711 func: check_macro_returns Warning: file ./extensions.ael, line 1180-1203: The macro std-priv-exten_45 does not end with a return; I will insert one.
LOG: lev:3 file:../pbx/pbx_ael.c line:711 func: check_macro_returns Warning: file ./extensions.ael, line 1206-1229: The macro std-priv-exten_46 does not end with a return; I will insert one.
LOG: lev:3 file:../pbx/pbx_ael.c line:711 func: check_macro_returns Warning: file ./extensions.ael, line 1232-1255: The macro std-priv-exten_47 does not end with a return; I will insert one.
LOG: lev:3 file:../pbx/pbx_ael.c line:711 func: check_macro_returns Warning: file ./extensions.ael, line 1258-1281: The macro std-priv-exten_48 does not end with a return; I will insert one.
LOG: lev:3 file:../pbx/pbx_ael.c line:711 func: check_macro_returns Warning: file ./extensions.ael, line 1284-1307: The macro std-priv-exten_49 does not end with a return; I will insert one.
LOG: lev:3 file:../pbx/pbx_ael.c line:711 func: check_macro_returns Warning: file ./extensions.ael, line 1310-1333: The macro std-priv-exten_50 does not end with a return; I will insert one.
LOG: lev:3 file:../pbx/pbx_ael.c line:711 func: check_macro_returns Warning: file ./extensions.ael, line 1336-1359: The macro std-priv-exten_51 does not end with a return; I will insert one.
LOG: lev:3 file:../pbx/pbx_ael.c line:711 func: check_macro_returns Warning: file ./extensions.ael, line 1362-1385: The macro std-priv-exten_52 does not end with a return; I will insert one.
LOG: lev:3 file:../pbx/pbx_ael.c line:711 func: check_macro_returns Warning: file ./extensions.ael, line 1388-1411: The macro std-priv-exten_53 does not end with a return; I will insert one.
LOG: lev:3 file:../pbx/pbx_ael.c line:711 func: check_macro_returns Warning: file ./extensions.ael, line 1414-1437: The macro std-priv-exten_54 does not end with a return; I will insert one.
LOG: lev:3 file:../pbx/pbx_ael.c line:711 func: check_macro_returns Warning: file ./extensions.ael, line 1440-1463: The macro std-priv-exten_55 does not end with a return; I will insert one.
LOG: lev:3 file:../pbx/pbx_ael.c line:711 func: check_macro_returns Warning: file ./extensions.ael, line 1466-1489: The macro std-priv-exten_56 does not end with a return; I will insert one.
LOG: lev:3 file:../pbx/pbx_ael.c line:711 func: check_macro_returns Warning: file ./extensions.ael, line 1492-1515: The macro std-priv-exten_57 does not end with a return; I will insert one.
LOG: lev:3 file:../pbx/pbx_ael.c line:711 func: check_macro_returns Warning: file ./extensions.ael, line 1518-1541: The macro std-priv-exten_58 does not end with a return; I will insert one.
LOG: lev:3 file:../pbx/pbx_ael.c line:711 func: check_macro_returns Warning: file ./extensions.ael, line 1544-1567: The macro std-priv-exten_59 does not end with a return; I will insert one.
LOG: lev:3 file:../pbx/pbx_ael.c line:711 func: check_macro_returns Warning: file ./extensions.ael, line 1570-1593: The macro std-priv-exten_60 does not end with a return; I will insert one.
LOG: lev:3 file:../pbx/pbx_ael.c line:711 func: check_macro_returns Warning: file ./extensions.ael, line 1596-1619: The macro std-priv-exten_61 does not end with a return; I will insert one.
LOG: lev:3 file:../pbx/pbx_ael.c line:711 func: check_macro_returns Warning: file ./extensions.ael, line 1622-1645: The macro std-priv-exten_62 does not end with a return; I will insert one.
LOG: lev:3 file:../pbx/pbx_ael.c line:711 func: check_macro_returns Warning: file ./extensions.ael, line 1648-1671: The macro std-priv-exten_63 does not end with a return; I will insert one.
LOG: lev:3 file:../pbx/pbx_ael.c line:711 func: check_macro_returns Warning: file ./extensions.ael, line 1674-1697: The macro std-priv-exten_64 does not end with a return; I will insert one.
LOG: lev:3 file:../pbx/pbx_ael.c line:711 func: check_macro_returns Warning: file ./extensions.ael, line 1700-1723: The macro std-priv-exten_65 does not end with a return; I will insert one.
LOG: lev:3 file:../pbx/pbx_ael.c line:711 func: check_macro_returns Warning: file ./extensions.ael, line 1726-1749: The macro std-priv-exten_66 does not end with a return; I will insert one.
LOG: lev:3 file:../pbx/pbx_ael.c line:711 func: check_macro_returns Warning: file ./extensions.ael, line 1752-1775: The macro std-priv-exten_67 does not end with a return; I will insert one.
LOG: lev:3 file:../pbx/pbx_ael.c line:711 func: check_macro_returns Warning: file ./extensions.ael, line 1778-1801: The macro std-priv-exten_68 does not end with a return; I will insert one.
LOG: lev:3 file:../pbx/pbx_ael.c line:711 func: check_macro_returns Warning: file ./extensions.ael, line 1804-1827: The macro std-priv-exten_69 does not end with a return; I will insert one.
LOG: lev:3 file:../pbx/pbx_ael.c line:711 func: check_macro_returns Warning: file ./extensions.ael, line 1830-1853: The macro std-priv-exten_70 does not end with a return; I will insert one.
LOG: lev:3 file:../pbx/pbx_ael.c line:711 func: check_macro_returns Warning: file ./extensions.ael, line 1856-1879: The macro std-priv-exten_71 does not end with a return; I will insert one.
LOG: lev:3 file:../pbx/pbx_ael.c line:711 func: check_macro_returns Warning: file ./extensions.ael, line 1882-1905: The macro std-priv-exten_72 does not end with a return; I will insert one.
LOG: lev:3 file:../pbx/pbx_ael.c line:711 func: check_macro_returns Warning: file ./extensions.ael, line 1908-1931: The macro std-priv-exten_73 does not end with a return; I will insert one.
LOG: lev:3 file:../pbx/pbx_ael.c line:711 func: check_macro_returns Warning: file ./extensions.ael, line 1934-1957: The macro std-priv-exten does not end with a return; I will insert one.
LOG: lev:3 file:../pbx/pbx_ael.c line:711 func: check_macro_returns Warning: file ./extensions.ael, line 1959-1995: The macro fillcidname does not end with a return; I will insert one.
LOG: lev:3 file:../pbx/pbx_ael.c line:711 func: check_macro_returns Warning: file ./extensions.ael, line 1997-2015: The macro ciddial does not end with a return; I will insert one.
LOG: lev:3 file:../pbx/pbx_ael.c line:711 func: check_macro_returns Warning: file ./extensions.ael, line 2017-2028: The macro ciddial3 does not end with a return; I will insert one.
LOG: lev:3 file:../pbx/pbx_ael.c line:711 func: check_macro_returns Warning: file ./extensions.ael, line 2030-2048: The macro ciddial2 does not end with a return; I will insert one.
LOG: lev:3 file:../pbx/pbx_ael.c line:711 func: check_macro_returns Warning: file ./extensions.ael, line 2050-2065: The macro callerid-liar does not end with a return; I will insert one.
LOG: lev:3 file:../pbx/pbx_ael.c line:711 func: check_macro_returns Warning: file ./extensions.ael, line 2067-2072: The macro callerid-bad does not end with a return; I will insert one.
LOG: lev:2 file:../pbx/pbx_ael.c line:3917 func: pbx_load_module AEL load process: checked config file name './extensions.ael'.
LOG: lev:2 file:../pbx/pbx_ael.c line:3919 func: pbx_load_module AEL load process: compiled config file name './extensions.ael'.
LOG: lev:2 file:../pbx/pbx_ael.c line:3922 func: pbx_load_module AEL load process: merged config file name './extensions.ael'.
LOG: lev:2 file:../pbx/pbx_ael.c line:3925 func: pbx_load_module AEL load process: verified config file name './extensions.ael'.
LOG: lev:4 file:ael2_parse line:479 func: main 172 contexts, 858 extensions, 2406 priorities

View File

@ -2,17 +2,25 @@
(If you find progress and other non-error messages irritating, you can use -q to suppress them)
(You can use the -w option to dump extensions.conf format to extensions.conf.aeldump)
LOG: lev:2 file:../pbx/pbx_ael.c line:3747 func: pbx_load_module Starting AEL load process.
LOG: lev:2 file:../pbx/pbx_ael.c line:3754 func: pbx_load_module AEL load process: calculated config file name './extensions.ael'.
LOG: lev:2 file:ael.flex line:422 func: ael_yylex --Read in included file ./apptest.ael2, 3474 chars
LOG: lev:3 file:ael.y line:512 func: ael_yyparse ==== File: ./apptest.ael2, Line 46, Cols: 8-11: Suggestion: Use the goto statement instead of the Goto() application call in AEL.
LOG: lev:2 file:../pbx/pbx_ael.c line:3757 func: pbx_load_module AEL load process: parsed config file name './extensions.ael'.
LOG: lev:3 file:../pbx/pbx_ael.c line:2247 func: check_pval_item Warning: file ./apptest.ael2, line 35-35: application call to EndWhile needs to be re-written using AEL if, while, goto, etc. keywords instead!
LOG: lev:3 file:../pbx/pbx_ael.c line:2247 func: check_pval_item Warning: file ./apptest.ael2, line 37-37: application call to ExecIf needs to be re-written using AEL if, while, goto, etc. keywords instead!
LOG: lev:4 file:../pbx/pbx_ael.c line:1197 func: check_goto Error: file ./apptest.ael2, line 46-46: goto: no context cont could be found that matches the goto target!
LOG: lev:3 file:../pbx/pbx_ael.c line:2247 func: check_pval_item Warning: file ./apptest.ael2, line 47-47: application call to GotoIf needs to be re-written using AEL if, while, goto, etc. keywords instead!
LOG: lev:3 file:../pbx/pbx_ael.c line:2247 func: check_pval_item Warning: file ./apptest.ael2, line 48-48: application call to GotoIfTime needs to be re-written using AEL if, while, goto, etc. keywords instead!
LOG: lev:3 file:../pbx/pbx_ael.c line:2247 func: check_pval_item Warning: file ./apptest.ael2, line 85-85: application call to Random needs to be re-written using AEL if, while, goto, etc. keywords instead!
LOG: lev:3 file:../pbx/pbx_ael.c line:2247 func: check_pval_item Warning: file ./apptest.ael2, line 141-141: application call to While needs to be re-written using AEL if, while, goto, etc. keywords instead!
LOG: lev:4 file:../pbx/pbx_ael.c line:3770 func: pbx_load_module Sorry, but 0 syntax errors and 1 semantic errors were detected. It doesn't make sense to compile.
LOG: lev:4 file:ael2_parse line:458 func: main 0 contexts, 0 extensions, 0 priorities
LOG: lev:2 file:../pbx/pbx_ael.c line:3856 func: pbx_load_module Starting AEL load process.
LOG: lev:2 file:../pbx/pbx_ael.c line:3863 func: pbx_load_module AEL load process: calculated config file name './extensions.ael'.
LOG: lev:2 file:ael.flex line:429 func: ael_yylex --Read in included file ./apptest.ael2, 3474 chars
LOG: lev:3 file:ael.y line:523 func: ael_yyparse ==== File: ./apptest.ael2, Line 46, Cols: 8-11: Suggestion: Use the goto statement instead of the Goto() application call in AEL.
LOG: lev:2 file:../pbx/pbx_ael.c line:3866 func: pbx_load_module AEL load process: parsed config file name './extensions.ael'.
LOG: lev:3 file:../pbx/pbx_ael.c line:2368 func: check_pval_item Warning: file ./apptest.ael2, line 35-35: application call to EndWhile affects flow of control, and needs to be re-written using AEL if, while, goto, etc. keywords instead!
LOG: lev:3 file:../pbx/pbx_ael.c line:2368 func: check_pval_item Warning: file ./apptest.ael2, line 37-37: application call to ExecIf affects flow of control, and needs to be re-written using AEL if, while, goto, etc. keywords instead!
LOG: lev:3 file:../pbx/pbx_ael.c line:2368 func: check_pval_item Warning: file ./apptest.ael2, line 38-38: application call to ExecIfTime affects flow of control, and needs to be re-written using AEL if, while, goto, etc. keywords instead!
LOG: lev:3 file:../pbx/pbx_ael.c line:2368 func: check_pval_item Warning: file ./apptest.ael2, line 44-44: application call to Gosub affects flow of control, and needs to be re-written using AEL if, while, goto, etc. keywords instead!
LOG: lev:3 file:../pbx/pbx_ael.c line:2368 func: check_pval_item Warning: file ./apptest.ael2, line 45-45: application call to GosubIf affects flow of control, and needs to be re-written using AEL if, while, goto, etc. keywords instead!
LOG: lev:4 file:../pbx/pbx_ael.c line:1302 func: check_goto Error: file ./apptest.ael2, line 46-46: goto: no context cont could be found that matches the goto target!
LOG: lev:3 file:../pbx/pbx_ael.c line:2368 func: check_pval_item Warning: file ./apptest.ael2, line 47-47: application call to GotoIf affects flow of control, and needs to be re-written using AEL if, while, goto, etc. keywords instead!
LOG: lev:3 file:../pbx/pbx_ael.c line:2368 func: check_pval_item Warning: file ./apptest.ael2, line 48-48: application call to GotoIfTime affects flow of control, and needs to be re-written using AEL if, while, goto, etc. keywords instead!
LOG: lev:3 file:../pbx/pbx_ael.c line:2368 func: check_pval_item Warning: file ./apptest.ael2, line 58-58: application call to Macro affects flow of control, and needs to be re-written using AEL if, while, goto, etc. keywords instead!
LOG: lev:3 file:../pbx/pbx_ael.c line:2373 func: check_pval_item Warning: file ./apptest.ael2, line 59-59: I am converting the MacroExit call here to a return statement.
LOG: lev:3 file:../pbx/pbx_ael.c line:2368 func: check_pval_item Warning: file ./apptest.ael2, line 60-60: application call to MacroIf affects flow of control, and needs to be re-written using AEL if, while, goto, etc. keywords instead!
LOG: lev:3 file:../pbx/pbx_ael.c line:2368 func: check_pval_item Warning: file ./apptest.ael2, line 85-85: application call to Random affects flow of control, and needs to be re-written using AEL if, while, goto, etc. keywords instead!
LOG: lev:3 file:../pbx/pbx_ael.c line:2368 func: check_pval_item Warning: file ./apptest.ael2, line 94-94: application call to Return affects flow of control, and needs to be re-written using AEL if, while, goto, etc. keywords instead!
LOG: lev:3 file:../pbx/pbx_ael.c line:2368 func: check_pval_item Warning: file ./apptest.ael2, line 119-119: application call to StackPop affects flow of control, and needs to be re-written using AEL if, while, goto, etc. keywords instead!
LOG: lev:3 file:../pbx/pbx_ael.c line:2368 func: check_pval_item Warning: file ./apptest.ael2, line 141-141: application call to While affects flow of control, and needs to be re-written using AEL if, while, goto, etc. keywords instead!
LOG: lev:4 file:../pbx/pbx_ael.c line:3879 func: pbx_load_module Sorry, but 0 syntax errors and 1 semantic errors were detected. It doesn't make sense to compile.
LOG: lev:4 file:ael2_parse line:479 func: main 0 contexts, 0 extensions, 0 priorities

View File

@ -2,11 +2,14 @@
(If you find progress and other non-error messages irritating, you can use -q to suppress them)
(You can use the -w option to dump extensions.conf format to extensions.conf.aeldump)
LOG: lev:2 file:../pbx/pbx_ael.c line:3747 func: pbx_load_module Starting AEL load process.
LOG: lev:2 file:../pbx/pbx_ael.c line:3754 func: pbx_load_module AEL load process: calculated config file name './extensions.ael'.
LOG: lev:2 file:../pbx/pbx_ael.c line:3757 func: pbx_load_module AEL load process: parsed config file name './extensions.ael'.
LOG: lev:2 file:../pbx/pbx_ael.c line:3760 func: pbx_load_module AEL load process: checked config file name './extensions.ael'.
LOG: lev:2 file:../pbx/pbx_ael.c line:3762 func: pbx_load_module AEL load process: compiled config file name './extensions.ael'.
LOG: lev:2 file:../pbx/pbx_ael.c line:3765 func: pbx_load_module AEL load process: merged config file name './extensions.ael'.
LOG: lev:2 file:../pbx/pbx_ael.c line:3768 func: pbx_load_module AEL load process: verified config file name './extensions.ael'.
LOG: lev:4 file:ael2_parse line:458 func: main 38 contexts, 90 extensions, 484 priorities
LOG: lev:2 file:../pbx/pbx_ael.c line:3850 func: pbx_load_module Starting AEL load process.
LOG: lev:2 file:../pbx/pbx_ael.c line:3857 func: pbx_load_module AEL load process: calculated config file name './extensions.ael'.
LOG: lev:2 file:../pbx/pbx_ael.c line:3860 func: pbx_load_module AEL load process: parsed config file name './extensions.ael'.
LOG: lev:3 file:../pbx/pbx_ael.c line:712 func: check_macro_returns Warning: file ./extensions.ael, line 130-183: The macro stdexten does not end with a return; I will insert one.
LOG: lev:3 file:../pbx/pbx_ael.c line:712 func: check_macro_returns Warning: file ./extensions.ael, line 185-192: The macro uvm does not end with a return; I will insert one.
LOG: lev:3 file:../pbx/pbx_ael.c line:712 func: check_macro_returns Warning: file ./extensions.ael, line 194-201: The macro bvm does not end with a return; I will insert one.
LOG: lev:2 file:../pbx/pbx_ael.c line:3863 func: pbx_load_module AEL load process: checked config file name './extensions.ael'.
LOG: lev:2 file:../pbx/pbx_ael.c line:3865 func: pbx_load_module AEL load process: compiled config file name './extensions.ael'.
LOG: lev:2 file:../pbx/pbx_ael.c line:3868 func: pbx_load_module AEL load process: merged config file name './extensions.ael'.
LOG: lev:2 file:../pbx/pbx_ael.c line:3871 func: pbx_load_module AEL load process: verified config file name './extensions.ael'.
LOG: lev:4 file:ael2_parse line:479 func: main 38 contexts, 90 extensions, 492 priorities

View File

@ -2,15 +2,23 @@
(If you find progress and other non-error messages irritating, you can use -q to suppress them)
(You can use the -w option to dump extensions.conf format to extensions.conf.aeldump)
LOG: lev:2 file:../pbx/pbx_ael.c line:3747 func: pbx_load_module Starting AEL load process.
LOG: lev:2 file:../pbx/pbx_ael.c line:3754 func: pbx_load_module AEL load process: calculated config file name './extensions.ael'.
LOG: lev:4 file:ael.flex line:269 func: ael_yylex File=./extensions.ael, line=165, column=49: Mismatched '}' in expression!
LOG: lev:4 file:ael.y line:735 func: ael_yyerror ==== File: ./extensions.ael, Line 165, Cols: 51-51: Error: syntax error, unexpected '=', expecting ')'
LOG: lev:4 file:ael.y line:735 func: ael_yyerror ==== File: ./extensions.ael, Line 169, Cols: 24-24: Error: syntax error, unexpected '&'
LOG: lev:4 file:ael.flex line:269 func: ael_yylex File=./extensions.ael, line=222, column=41: Mismatched '}' in expression!
LOG: lev:4 file:ael.y line:735 func: ael_yyerror ==== File: ./extensions.ael, Line 222, Cols: 43-43: Error: syntax error, unexpected '=', expecting ')'
LOG: lev:4 file:ael.y line:735 func: ael_yyerror ==== File: ./extensions.ael, Line 226, Cols: 16-16: Error: syntax error, unexpected '&'
LOG: lev:4 file:ael.y line:735 func: ael_yyerror ==== File: ./extensions.ael, Line 291, Cols: 21-28: Error: syntax error, unexpected word, expecting '(' or ';' or '=' or ':'
LOG: lev:2 file:../pbx/pbx_ael.c line:3757 func: pbx_load_module AEL load process: parsed config file name './extensions.ael'.
LOG: lev:4 file:../pbx/pbx_ael.c line:3770 func: pbx_load_module Sorry, but 5 syntax errors and 0 semantic errors were detected. It doesn't make sense to compile.
LOG: lev:4 file:ael2_parse line:458 func: main 0 contexts, 0 extensions, 0 priorities
LOG: lev:2 file:../pbx/pbx_ael.c line:3850 func: pbx_load_module Starting AEL load process.
LOG: lev:2 file:../pbx/pbx_ael.c line:3857 func: pbx_load_module AEL load process: calculated config file name './extensions.ael'.
LOG: lev:4 file:ael.flex line:276 func: ael_yylex File=./extensions.ael, line=165, column=49: Mismatched '}' in expression!
LOG: lev:4 file:ael.y line:746 func: ael_yyerror ==== File: ./extensions.ael, Line 165, Cols: 51-51: Error: syntax error, unexpected '=', expecting ')'
LOG: lev:4 file:ael.y line:746 func: ael_yyerror ==== File: ./extensions.ael, Line 169, Cols: 24-24: Error: syntax error, unexpected '&'
LOG: lev:4 file:ael.flex line:276 func: ael_yylex File=./extensions.ael, line=222, column=41: Mismatched '}' in expression!
LOG: lev:4 file:ael.y line:746 func: ael_yyerror ==== File: ./extensions.ael, Line 222, Cols: 43-43: Error: syntax error, unexpected '=', expecting ')'
LOG: lev:4 file:ael.y line:746 func: ael_yyerror ==== File: ./extensions.ael, Line 226, Cols: 16-16: Error: syntax error, unexpected '&'
LOG: lev:4 file:ael.y line:746 func: ael_yyerror ==== File: ./extensions.ael, Line 291, Cols: 21-28: Error: syntax error, unexpected word, expecting '(' or ';' or '=' or ':'
LOG: lev:2 file:../pbx/pbx_ael.c line:3860 func: pbx_load_module AEL load process: parsed config file name './extensions.ael'.
LOG: lev:3 file:../pbx/pbx_ael.c line:712 func: check_macro_returns Warning: file ./extensions.ael, line 116-125: The macro dialout does not end with a return; I will insert one.
LOG: lev:3 file:../pbx/pbx_ael.c line:712 func: check_macro_returns Warning: file ./extensions.ael, line 129-168: The macro stdexten does not end with a return; I will insert one.
LOG: lev:3 file:../pbx/pbx_ael.c line:712 func: check_macro_returns Warning: file ./extensions.ael, line 184-191: The macro uvm does not end with a return; I will insert one.
LOG: lev:3 file:../pbx/pbx_ael.c line:712 func: check_macro_returns Warning: file ./extensions.ael, line 193-200: The macro bvm does not end with a return; I will insert one.
LOG: lev:3 file:../pbx/pbx_ael.c line:712 func: check_macro_returns Warning: file ./extensions.ael, line 202-207: The macro checkdnd does not end with a return; I will insert one.
LOG: lev:3 file:../pbx/pbx_ael.c line:712 func: check_macro_returns Warning: file ./extensions.ael, line 209-216: The macro checkcf does not end with a return; I will insert one.
LOG: lev:3 file:../pbx/pbx_ael.c line:712 func: check_macro_returns Warning: file ./extensions.ael, line 218-225: The macro checkcfb does not end with a return; I will insert one.
LOG: lev:3 file:../pbx/pbx_ael.c line:712 func: check_macro_returns Warning: file ./extensions.ael, line 688-694: The macro check-psd-exists does not end with a return; I will insert one.
LOG: lev:4 file:../pbx/pbx_ael.c line:3873 func: pbx_load_module Sorry, but 5 syntax errors and 0 semantic errors were detected. It doesn't make sense to compile.
LOG: lev:4 file:ael2_parse line:479 func: main 0 contexts, 0 extensions, 0 priorities

View File

@ -2,13 +2,19 @@
(If you find progress and other non-error messages irritating, you can use -q to suppress them)
(You can use the -w option to dump extensions.conf format to extensions.conf.aeldump)
LOG: lev:2 file:../pbx/pbx_ael.c line:3747 func: pbx_load_module Starting AEL load process.
LOG: lev:2 file:../pbx/pbx_ael.c line:3754 func: pbx_load_module AEL load process: calculated config file name './extensions.ael'.
LOG: lev:2 file:../pbx/pbx_ael.c line:3757 func: pbx_load_module AEL load process: parsed config file name './extensions.ael'.
LOG: lev:4 file:../pbx/pbx_ael.c line:2221 func: check_pval_item Error: file ./extensions.ael, line 98-98: The macro call to checkanddial has 5 arguments, but the macro definition has 7 arguments
LOG: lev:4 file:../pbx/pbx_ael.c line:2221 func: check_pval_item Error: file ./extensions.ael, line 107-107: The macro call to checkanddial has 5 arguments, but the macro definition has 7 arguments
LOG: lev:4 file:../pbx/pbx_ael.c line:2221 func: check_pval_item Error: file ./extensions.ael, line 284-284: The macro call to checkanddial has 5 arguments, but the macro definition has 7 arguments
LOG: lev:4 file:../pbx/pbx_ael.c line:2221 func: check_pval_item Error: file ./extensions.ael, line 287-287: The macro call to checkanddial has 5 arguments, but the macro definition has 7 arguments
LOG: lev:4 file:../pbx/pbx_ael.c line:2202 func: check_pval_item Error: file ./extensions.ael, line 452-452: macro call to non-existent std-exten-ael !
LOG: lev:4 file:../pbx/pbx_ael.c line:3770 func: pbx_load_module Sorry, but 0 syntax errors and 5 semantic errors were detected. It doesn't make sense to compile.
LOG: lev:4 file:ael2_parse line:458 func: main 0 contexts, 0 extensions, 0 priorities
LOG: lev:2 file:../pbx/pbx_ael.c line:3850 func: pbx_load_module Starting AEL load process.
LOG: lev:2 file:../pbx/pbx_ael.c line:3857 func: pbx_load_module AEL load process: calculated config file name './extensions.ael'.
LOG: lev:2 file:../pbx/pbx_ael.c line:3860 func: pbx_load_module AEL load process: parsed config file name './extensions.ael'.
LOG: lev:3 file:../pbx/pbx_ael.c line:712 func: check_macro_returns Warning: file ./extensions.ael, line 22-42: The macro stdexten does not end with a return; I will insert one.
LOG: lev:3 file:../pbx/pbx_ael.c line:712 func: check_macro_returns Warning: file ./extensions.ael, line 44-49: The macro announce_minutes does not end with a return; I will insert one.
LOG: lev:3 file:../pbx/pbx_ael.c line:712 func: check_macro_returns Warning: file ./extensions.ael, line 59-89: The macro checkanddial does not end with a return; I will insert one.
LOG: lev:3 file:../pbx/pbx_ael.c line:712 func: check_macro_returns Warning: file ./extensions.ael, line 91-100: The macro trunkdial does not end with a return; I will insert one.
LOG: lev:4 file:../pbx/pbx_ael.c line:2330 func: check_pval_item Error: file ./extensions.ael, line 98-98: The macro call to checkanddial has 5 arguments, but the macro definition has 7 arguments
LOG: lev:3 file:../pbx/pbx_ael.c line:712 func: check_macro_returns Warning: file ./extensions.ael, line 102-112: The macro checklocal does not end with a return; I will insert one.
LOG: lev:4 file:../pbx/pbx_ael.c line:2330 func: check_pval_item Error: file ./extensions.ael, line 107-107: The macro call to checkanddial has 5 arguments, but the macro definition has 7 arguments
LOG: lev:3 file:../pbx/pbx_ael.c line:712 func: check_macro_returns Warning: file ./extensions.ael, line 114-119: The macro autodial does not end with a return; I will insert one.
LOG: lev:4 file:../pbx/pbx_ael.c line:2330 func: check_pval_item Error: file ./extensions.ael, line 284-284: The macro call to checkanddial has 5 arguments, but the macro definition has 7 arguments
LOG: lev:4 file:../pbx/pbx_ael.c line:2330 func: check_pval_item Error: file ./extensions.ael, line 287-287: The macro call to checkanddial has 5 arguments, but the macro definition has 7 arguments
LOG: lev:4 file:../pbx/pbx_ael.c line:2311 func: check_pval_item Error: file ./extensions.ael, line 452-452: macro call to non-existent std-exten-ael !
LOG: lev:4 file:../pbx/pbx_ael.c line:3873 func: pbx_load_module Sorry, but 0 syntax errors and 5 semantic errors were detected. It doesn't make sense to compile.
LOG: lev:4 file:ael2_parse line:479 func: main 0 contexts, 0 extensions, 0 priorities

File diff suppressed because it is too large Load Diff

View File

@ -131,6 +131,10 @@ static int extension_matches(pval *here, const char *exten, const char *pattern)
static void check_goto(pval *item);
static void find_pval_goto_item(pval *item, int lev);
static void find_pval_gotos(pval *item, int lev);
static int check_break(pval *item);
static int check_continue(pval *item);
static void check_label(pval *item);
static void check_macro_returns(pval *macro);
static struct pval *find_label_in_current_context(char *exten, char *label, pval *curr_cont);
static struct pval *find_first_label_in_current_context(char *label, pval *curr_cont);
@ -681,6 +685,49 @@ void traverse_pval_template(pval *item, int depth) /* depth comes in handy for a
/* (not all that is syntactically legal is good! */
static void check_macro_returns(pval *macro)
{
pval *i;
if (!macro->u3.macro_statements)
{
pval *z = calloc(1, sizeof(struct pval));
ast_log(LOG_WARNING, "Warning: file %s, line %d-%d: The macro %s is empty! I will insert a return.\n",
macro->filename, macro->startline, macro->endline, macro->u1.str);
z->type = PV_RETURN;
z->startline = macro->startline;
z->endline = macro->endline;
z->startcol = macro->startcol;
z->endcol = macro->endcol;
z->filename = strdup(macro->filename);
macro->u3.macro_statements = z;
return;
}
for (i=macro->u3.macro_statements; i; i=i->next) {
/* if the last statement in the list is not return, then insert a return there */
if (i->next == NULL) {
if (i->type != PV_RETURN) {
pval *z = calloc(1, sizeof(struct pval));
ast_log(LOG_WARNING, "Warning: file %s, line %d-%d: The macro %s does not end with a return; I will insert one.\n",
macro->filename, macro->startline, macro->endline, macro->u1.str);
z->type = PV_RETURN;
z->startline = macro->startline;
z->endline = macro->endline;
z->startcol = macro->startcol;
z->endcol = macro->endcol;
z->filename = strdup(macro->filename);
i->next = z;
return;
}
}
}
return;
}
static int extension_matches(pval *here, const char *exten, const char *pattern)
{
@ -688,10 +735,10 @@ static int extension_matches(pval *here, const char *exten, const char *pattern)
regex_t preg;
/* simple case, they match exactly, the pattern and exten name */
if( !strcmp(pattern,exten) == 0 )
if (!strcmp(pattern,exten) == 0)
return 1;
if ( pattern[0] == '_' ) {
if (pattern[0] == '_') {
char reg1[2000];
const char *p;
char *r = reg1;
@ -1048,16 +1095,64 @@ static int check_continue(pval *item)
return 0;
}
static struct pval *in_macro(pval *item)
{
struct pval *curr;
curr = item;
while( curr ) {
if( curr->type == PV_MACRO ) {
return curr;
}
curr = curr->dad;
}
return 0;
}
static struct pval *in_context(pval *item)
{
struct pval *curr;
curr = item;
while( curr ) {
if( curr->type == PV_MACRO || curr->type == PV_CONTEXT ) {
return curr;
}
curr = curr->dad;
}
return 0;
}
/* general purpose goto finder */
static void check_label(pval *item)
{
struct pval *curr;
struct pval *x;
int alright = 0;
/* A label outside an extension just plain does not make sense! */
curr = item;
while( curr ) {
if( curr->type == PV_MACRO || curr->type == PV_EXTENSION ) {
alright = 1;
break;
}
curr = curr->dad;
}
if( !alright )
{
ast_log(LOG_ERROR,"Error: file %s, line %d-%d: Label %s is not within an extension or macro!\n",
item->filename, item->startline, item->endline, item->u1.str);
errs++;
}
/* basically, ensure that a label is not repeated in a context. Period.
The method: well, for each label, find the first label in the context
with the same name. If it's not the current label, then throw an error. */
struct pval *curr;
struct pval *x;
/* printf("==== check_label: ====\n"); */
if( !current_extension )
@ -1231,12 +1326,34 @@ static void check_goto(pval *item)
ast_log(LOG_ERROR,"Error: file %s, line %d-%d: goto: no label %s|%s exists in the context %s or its inclusions!\n",
item->filename, item->startline, item->endline, item->u1.list->next->u1.str, item->u1.list->next->next->u1.str, item->u1.list->u1.str );
errs++;
} else {
struct pval *mac = in_macro(item); /* is this goto inside a macro? */
if( mac ) { /* yes! */
struct pval *targ = in_context(found);
if( mac != targ )
{
ast_log(LOG_WARNING, "Warning: file %s, line %d-%d: It's bad form to have a goto in a macro to a target outside the macro!\n",
item->filename, item->startline, item->endline);
warns++;
}
}
}
} else {
ast_log(LOG_ERROR,"Error: file %s, line %d-%d: goto: no context %s could be found that matches the goto target!\n",
item->filename, item->startline, item->endline, item->u1.list->u1.str);
errs++;
}
} else {
struct pval *mac = in_macro(item); /* is this goto inside a macro? */
if( mac ) { /* yes! */
struct pval *targ = in_context(x);
if( mac != targ )
{
ast_log(LOG_WARNING, "Warning: file %s, line %d-%d: It's bad form to have a goto in a macro to a target outside the macro!\n",
item->filename, item->startline, item->endline);
warns++;
}
}
}
}
}
@ -2188,7 +2305,7 @@ void check_pval_item(pval *item, struct argapp *apps, int in_globals)
#endif
struct pval *macro_def;
struct pval *app_def;
char errmsg[4096];
char *strp;
@ -2209,6 +2326,9 @@ void check_pval_item(pval *item, struct argapp *apps, int in_globals)
in_abstract_context = 0;
current_context = item;
current_extension = 0;
check_macro_returns(item);
for (lp=item->u2.arglist; lp; lp=lp->next) {
}
@ -2282,11 +2402,32 @@ void check_pval_item(pval *item, struct argapp *apps, int in_globals)
|| strcasecmp(item->u1.str,"while") == 0
|| strcasecmp(item->u1.str,"endwhile") == 0
|| strcasecmp(item->u1.str,"random") == 0
|| strcasecmp(item->u1.str,"gosub") == 0
|| strcasecmp(item->u1.str,"return") == 0
|| strcasecmp(item->u1.str,"gosubif") == 0
|| strcasecmp(item->u1.str,"continuewhile") == 0
|| strcasecmp(item->u1.str,"endwhile") == 0
|| strcasecmp(item->u1.str,"execif") == 0
|| strcasecmp(item->u1.str,"execiftime") == 0
|| strcasecmp(item->u1.str,"exitwhile") == 0
|| strcasecmp(item->u1.str,"goto") == 0
|| strcasecmp(item->u1.str,"macro") == 0
|| strcasecmp(item->u1.str,"macroexclusive") == 0
|| strcasecmp(item->u1.str,"macroif") == 0
|| strcasecmp(item->u1.str,"stackpop") == 0
|| strcasecmp(item->u1.str,"execIf") == 0 ) {
ast_log(LOG_WARNING,"Warning: file %s, line %d-%d: application call to %s needs to be re-written using AEL if, while, goto, etc. keywords instead!\n",
ast_log(LOG_WARNING,"Warning: file %s, line %d-%d: application call to %s affects flow of control, and needs to be re-written using AEL if, while, goto, etc. keywords instead!\n",
item->filename, item->startline, item->endline, item->u1.str);
warns++;
}
if (strcasecmp(item->u1.str,"macroexit") == 0) {
ast_log(LOG_WARNING, "Warning: file %s, line %d-%d: I am converting the MacroExit call here to a return statement.\n",
item->filename, item->startline, item->endline);
item->type = PV_RETURN;
free(item->u1.str);
item->u1.str = 0;
}
#ifdef AAL_ARGCHECK
found = 0;
for (app=apps; app; app=app->next) {
@ -2775,6 +2916,7 @@ static void gen_prios(struct ael_extension *exten, char *label, pval *statement,
char new_label[2000];
int default_exists;
int local_control_statement_count;
int first;
struct ael_priority *loop_break_save;
struct ael_priority *loop_continue_save;
struct ael_extension *switch_case;
@ -3022,7 +3164,7 @@ static void gen_prios(struct ael_extension *exten, char *label, pval *statement,
linkprio(switch_case, fall_thru);
}
}
if (switch_case->return_needed) {
if (switch_case->return_needed) { /* returns don't generate a goto eoe (end of extension) any more, just a Return() app call) */
char buf[2000];
struct ael_priority *np2 = new_prio();
np2->type = AEL_APPCALL;
@ -3083,7 +3225,7 @@ static void gen_prios(struct ael_extension *exten, char *label, pval *statement,
linkprio(switch_case, fall_thru);
}
}
if (switch_case->return_needed) {
if (switch_case->return_needed) { /* returns don't generate a goto eoe (end of extension) any more, just a Return() app call) */
char buf[2000];
struct ael_priority *np2 = new_prio();
np2->type = AEL_APPCALL;
@ -3146,7 +3288,7 @@ static void gen_prios(struct ael_extension *exten, char *label, pval *statement,
linkprio(switch_case, fall_thru);
}
}
if (switch_case->return_needed) {
if (switch_case->return_needed) { /* returns don't generate a goto eoe (end of extension) any more, just a Return() app call) */
char buf[2000];
struct ael_priority *np2 = new_prio();
np2->type = AEL_APPCALL;
@ -3170,12 +3312,19 @@ static void gen_prios(struct ael_extension *exten, char *label, pval *statement,
case PV_MACRO_CALL:
pr = new_prio();
pr->type = AEL_APPCALL;
snprintf(buf1,sizeof(buf1),"%s", p->u1.str);
snprintf(buf1,sizeof(buf1),"%s|s|1", p->u1.str);
first = 1;
for (p2 = p->u2.arglist; p2; p2 = p2->next) {
strcat(buf1,"|");
if( first )
{
strcat(buf1,":");
first = 0;
}
else
strcat(buf1,"|");
strcat(buf1,p2->u1.str);
}
pr->app = strdup("Macro");
pr->app = strdup("Gosub");
pr->appargs = strdup(buf1);
pr->origin = p;
linkprio(exten, pr);
@ -3206,9 +3355,9 @@ static void gen_prios(struct ael_extension *exten, char *label, pval *statement,
case PV_RETURN: /* hmmmm */
pr = new_prio();
pr->type = AEL_RETURN; /* simple goto */
exten->return_needed++;
pr->app = strdup("Goto");
pr->type = AEL_RETURN; /* simple Return */
/* exten->return_needed++; */
pr->app = strdup("Return");
pr->appargs = strdup("");
pr->origin = p;
linkprio(exten, pr);
@ -3222,46 +3371,6 @@ static void gen_prios(struct ael_extension *exten, char *label, pval *statement,
linkprio(exten, pr);
break;
#ifdef OLD_RAND_ACTION
case PV_RANDOM:
control_statement_count++;
snprintf(new_label,sizeof(new_label),"rand-%s-%d", label, control_statement_count);
rand_test = new_prio();
rand_test->type = AEL_RAND_CONTROL;
snprintf(buf1,sizeof(buf1),"$[%s]",
p->u1.str );
rand_test->app = 0;
rand_test->appargs = strdup(buf1);
rand_test->origin = p;
rand_end = new_prio();
rand_end->type = AEL_APPCALL;
snprintf(buf1,sizeof(buf1),"Finish rand-%s-%d", label, control_statement_count);
rand_end->app = strdup("NoOp");
rand_end->appargs = strdup(buf1);
rand_skip = new_prio();
rand_skip->type = AEL_CONTROL1; /* simple goto */
rand_skip->goto_true = rand_end;
rand_skip->origin = p;
rand_test->goto_true = rand_skip; /* +1, really */
linkprio(exten, rand_test);
if (p->u3.else_statements) {
gen_prios(exten, new_label, p->u3.else_statements, mother_exten, this_context); /* this will link in all the else statements here */
}
linkprio(exten, rand_skip);
gen_prios(exten, new_label, p->u2.statements, mother_exten, this_context); /* this will link in all the "true" statements here */
linkprio(exten, rand_end);
break;
#endif
case PV_IFTIME:
control_statement_count++;
snprintf(new_label,sizeof(new_label),"iftime-%s-%d", label, control_statement_count);
@ -3383,7 +3492,7 @@ static void gen_prios(struct ael_extension *exten, char *label, pval *statement,
snprintf(new_label,sizeof(new_label),"catch-%s-%d",p->u1.str, control_statement_count);
gen_prios(switch_case, new_label, p->u2.statements,mother_exten,this_context); /* this will link in all the catch body statements here */
if (switch_case->return_needed) {
if (switch_case->return_needed) { /* returns now generate a Return() app call, no longer a goto to the end of the exten */
char buf[2000];
struct ael_priority *np2 = new_prio();
np2->type = AEL_APPCALL;
@ -3500,8 +3609,8 @@ void add_extensions(struct ael_extension *exten)
break;
case AEL_RETURN:
strcpy(app,"Goto");
snprintf(appargs,sizeof(appargs), "%d", exten->return_target->priority_num);
strcpy(app,"Return");
appargs[0] = 0;
break;
default:
@ -3619,9 +3728,8 @@ void ast_compile_ael2(struct ast_context **local_contexts, struct pval *root)
switch (p->type) {
case PV_MACRO:
strcpy(buf,"macro-");
strcat(buf,p->u1.str);
context = ast_context_create(local_contexts, buf, registrar);
context = ast_context_create(local_contexts, p->u1.str, registrar);
exten = new_exten();
exten->context = context;
@ -3640,7 +3748,7 @@ void ast_compile_ael2(struct ast_context **local_contexts, struct pval *root)
/* CONTAINS APPCALLS, CATCH, just like extensions... */
gen_prios(exten, p->u1.str, p->u3.macro_statements, 0, context );
if (exten->return_needed) {
if (exten->return_needed) { /* most likely, this will go away */
struct ael_priority *np2 = new_prio();
np2->type = AEL_APPCALL;
np2->app = strdup("NoOp");
@ -3687,7 +3795,7 @@ void ast_compile_ael2(struct ast_context **local_contexts, struct pval *root)
exten->hints = strdup(p2->u3.hints);
exten->regexten = p2->u4.regexten;
gen_prios(exten, p->u1.str, p2->u2.statements, 0, context );
if (exten->return_needed) {
if (exten->return_needed) { /* returns don't generate a goto eoe (end of extension) any more, just a Return() app call) */
struct ael_priority *np2 = new_prio();
np2->type = AEL_APPCALL;
np2->app = strdup("NoOp");