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:
parent
2b7debf368
commit
35b951d2ac
8
CHANGES
8
CHANGES
|
@ -5,3 +5,11 @@ Changes since Asterisk 1.4-beta was branched:
|
|||
* Ability to set process limits without restarting Asterisk
|
||||
* SS7 support in chan_zap (via libss7 library)
|
||||
* Proper codec support in chan_skinny.
|
||||
* AEL upgraded to use the Gosub with Arguments instead
|
||||
of Macro application, to hopefully reduce the problems
|
||||
seen with the artificially low stack ceiling that
|
||||
Macro bumps into. Macros can only call other Macros
|
||||
to a depth of 7. Tests run using gosub, show depths
|
||||
limited only by virtual memory. A small test demonstrated
|
||||
recursive call depths of 100,000 without problems.
|
||||
|
||||
|
|
|
@ -53,4 +53,5 @@ ptr1: // <-- duplicate label (macros are about the equiv of an extension)
|
|||
Noop(esac) ;
|
||||
}
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
|
|
@ -14,6 +14,7 @@ globals
|
|||
macro std-exten( ext , dev )
|
||||
{
|
||||
Dial(${dev}/${ext},20);
|
||||
goto privacyManagerFailed|s|begin;
|
||||
switch(${DIALSTATUS})
|
||||
{
|
||||
case BUSY:
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
232
pbx/pbx_ael.c
232
pbx/pbx_ael.c
|
@ -131,6 +131,10 @@ static int extension_matches(pval *here, const char *exten, const char *pattern)
|
|||
static void check_goto(pval *item);
|
||||
static void find_pval_goto_item(pval *item, int lev);
|
||||
static void find_pval_gotos(pval *item, int lev);
|
||||
static int check_break(pval *item);
|
||||
static int check_continue(pval *item);
|
||||
static void check_label(pval *item);
|
||||
static void check_macro_returns(pval *macro);
|
||||
|
||||
static struct pval *find_label_in_current_context(char *exten, char *label, pval *curr_cont);
|
||||
static struct pval *find_first_label_in_current_context(char *label, pval *curr_cont);
|
||||
|
@ -681,6 +685,49 @@ void traverse_pval_template(pval *item, int depth) /* depth comes in handy for a
|
|||
/* (not all that is syntactically legal is good! */
|
||||
|
||||
|
||||
static void check_macro_returns(pval *macro)
|
||||
{
|
||||
pval *i;
|
||||
if (!macro->u3.macro_statements)
|
||||
{
|
||||
pval *z = calloc(1, sizeof(struct pval));
|
||||
ast_log(LOG_WARNING, "Warning: file %s, line %d-%d: The macro %s is empty! I will insert a return.\n",
|
||||
macro->filename, macro->startline, macro->endline, macro->u1.str);
|
||||
|
||||
z->type = PV_RETURN;
|
||||
z->startline = macro->startline;
|
||||
z->endline = macro->endline;
|
||||
z->startcol = macro->startcol;
|
||||
z->endcol = macro->endcol;
|
||||
z->filename = strdup(macro->filename);
|
||||
|
||||
macro->u3.macro_statements = z;
|
||||
return;
|
||||
}
|
||||
for (i=macro->u3.macro_statements; i; i=i->next) {
|
||||
/* if the last statement in the list is not return, then insert a return there */
|
||||
if (i->next == NULL) {
|
||||
if (i->type != PV_RETURN) {
|
||||
pval *z = calloc(1, sizeof(struct pval));
|
||||
ast_log(LOG_WARNING, "Warning: file %s, line %d-%d: The macro %s does not end with a return; I will insert one.\n",
|
||||
macro->filename, macro->startline, macro->endline, macro->u1.str);
|
||||
|
||||
z->type = PV_RETURN;
|
||||
z->startline = macro->startline;
|
||||
z->endline = macro->endline;
|
||||
z->startcol = macro->startcol;
|
||||
z->endcol = macro->endcol;
|
||||
z->filename = strdup(macro->filename);
|
||||
|
||||
i->next = z;
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
|
||||
static int extension_matches(pval *here, const char *exten, const char *pattern)
|
||||
{
|
||||
|
@ -688,10 +735,10 @@ static int extension_matches(pval *here, const char *exten, const char *pattern)
|
|||
regex_t preg;
|
||||
|
||||
/* simple case, they match exactly, the pattern and exten name */
|
||||
if( !strcmp(pattern,exten) == 0 )
|
||||
if (!strcmp(pattern,exten) == 0)
|
||||
return 1;
|
||||
|
||||
if ( pattern[0] == '_' ) {
|
||||
if (pattern[0] == '_') {
|
||||
char reg1[2000];
|
||||
const char *p;
|
||||
char *r = reg1;
|
||||
|
@ -1048,16 +1095,64 @@ static int check_continue(pval *item)
|
|||
return 0;
|
||||
}
|
||||
|
||||
static struct pval *in_macro(pval *item)
|
||||
{
|
||||
struct pval *curr;
|
||||
curr = item;
|
||||
while( curr ) {
|
||||
if( curr->type == PV_MACRO ) {
|
||||
return curr;
|
||||
}
|
||||
curr = curr->dad;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
static struct pval *in_context(pval *item)
|
||||
{
|
||||
struct pval *curr;
|
||||
curr = item;
|
||||
while( curr ) {
|
||||
if( curr->type == PV_MACRO || curr->type == PV_CONTEXT ) {
|
||||
return curr;
|
||||
}
|
||||
curr = curr->dad;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
/* general purpose goto finder */
|
||||
|
||||
static void check_label(pval *item)
|
||||
{
|
||||
struct pval *curr;
|
||||
struct pval *x;
|
||||
int alright = 0;
|
||||
|
||||
/* A label outside an extension just plain does not make sense! */
|
||||
|
||||
curr = item;
|
||||
|
||||
while( curr ) {
|
||||
if( curr->type == PV_MACRO || curr->type == PV_EXTENSION ) {
|
||||
alright = 1;
|
||||
break;
|
||||
}
|
||||
curr = curr->dad;
|
||||
}
|
||||
if( !alright )
|
||||
{
|
||||
ast_log(LOG_ERROR,"Error: file %s, line %d-%d: Label %s is not within an extension or macro!\n",
|
||||
item->filename, item->startline, item->endline, item->u1.str);
|
||||
errs++;
|
||||
}
|
||||
|
||||
|
||||
/* basically, ensure that a label is not repeated in a context. Period.
|
||||
The method: well, for each label, find the first label in the context
|
||||
with the same name. If it's not the current label, then throw an error. */
|
||||
struct pval *curr;
|
||||
struct pval *x;
|
||||
|
||||
|
||||
/* printf("==== check_label: ====\n"); */
|
||||
if( !current_extension )
|
||||
|
@ -1231,12 +1326,34 @@ static void check_goto(pval *item)
|
|||
ast_log(LOG_ERROR,"Error: file %s, line %d-%d: goto: no label %s|%s exists in the context %s or its inclusions!\n",
|
||||
item->filename, item->startline, item->endline, item->u1.list->next->u1.str, item->u1.list->next->next->u1.str, item->u1.list->u1.str );
|
||||
errs++;
|
||||
} else {
|
||||
struct pval *mac = in_macro(item); /* is this goto inside a macro? */
|
||||
if( mac ) { /* yes! */
|
||||
struct pval *targ = in_context(found);
|
||||
if( mac != targ )
|
||||
{
|
||||
ast_log(LOG_WARNING, "Warning: file %s, line %d-%d: It's bad form to have a goto in a macro to a target outside the macro!\n",
|
||||
item->filename, item->startline, item->endline);
|
||||
warns++;
|
||||
}
|
||||
}
|
||||
}
|
||||
} else {
|
||||
ast_log(LOG_ERROR,"Error: file %s, line %d-%d: goto: no context %s could be found that matches the goto target!\n",
|
||||
item->filename, item->startline, item->endline, item->u1.list->u1.str);
|
||||
errs++;
|
||||
}
|
||||
} else {
|
||||
struct pval *mac = in_macro(item); /* is this goto inside a macro? */
|
||||
if( mac ) { /* yes! */
|
||||
struct pval *targ = in_context(x);
|
||||
if( mac != targ )
|
||||
{
|
||||
ast_log(LOG_WARNING, "Warning: file %s, line %d-%d: It's bad form to have a goto in a macro to a target outside the macro!\n",
|
||||
item->filename, item->startline, item->endline);
|
||||
warns++;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -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");
|
||||
|
|
Loading…
Reference in New Issue