aboutsummaryrefslogtreecommitdiffstats
path: root/pbx
diff options
context:
space:
mode:
authormurf <murf@f38db490-d61c-443f-a65b-d21fe96a405b>2007-10-03 14:23:00 +0000
committermurf <murf@f38db490-d61c-443f-a65b-d21fe96a405b>2007-10-03 14:23:00 +0000
commit2c43029b2864b4befe2db02f5da03295ef5db0e1 (patch)
tree77c53f1593077d7549e95ae3553476aec4f4ee18 /pbx
parent22d0a866a731dda20485e5c442a6b4761420f3cb (diff)
closes issue #10834 ; where a null input to a switch statement results in a hangup; since switch is implemented with extensions, and the default case is implemented with a '.', and the '.' matches 1 or more remaining characters, the case where 0 characters exist isn't matched, and the extension isn't matched, and the goto fails, and a hangup occurs. Now, when a default case is generated, it also generates a single fixed extension that will match a null input. That extension just does a goto to the default extension for that switch. I played with an alternate solution, where I just tack an extra char onto all the patterns and the goto, but not the default case's pattern. Then even a null input will still have at least one char in it. But it made me nervous, having that extra char in , even if that's a pretty secret and low-level issue.
git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.4@84511 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'pbx')
-rw-r--r--pbx/ael/ael-test/ref.ael-ntest1026
-rw-r--r--pbx/ael/ael-test/ref.ael-test116
-rw-r--r--pbx/ael/ael-test/ref.ael-test1816
-rw-r--r--pbx/ael/ael-test/ref.ael-test316
-rw-r--r--pbx/ael/ael-test/ref.ael-test516
-rw-r--r--pbx/ael/ael-test/ref.ael-test816
-rw-r--r--pbx/ael/ael-test/ref.ael-vtest1376
-rw-r--r--pbx/ael/ael-test/ref.ael-vtest171
-rw-r--r--pbx/pbx_ael.c27
9 files changed, 158 insertions, 52 deletions
diff --git a/pbx/ael/ael-test/ref.ael-ntest10 b/pbx/ael/ael-test/ref.ael-ntest10
index 7f52eb074..72a0c8172 100644
--- a/pbx/ael/ael-test/ref.ael-ntest10
+++ b/pbx/ael/ael-test/ref.ael-ntest10
@@ -5,9 +5,9 @@
(You can use the -w option to dump extensions.conf format to extensions.conf.aeldump)
-LOG: lev:2 file:pbx_ael.c line:3978 func: pbx_load_module Starting AEL load process.
-LOG: lev:2 file:pbx_ael.c line:3985 func: pbx_load_module AEL load process: calculated config file name './extensions.ael'.
-LOG: lev:2 file:pbx_ael.c line:3993 func: pbx_load_module AEL load process: parsed config file name './extensions.ael'.
+LOG: lev:2 file:pbx_ael.c line:4069 func: pbx_load_module Starting AEL load process.
+LOG: lev:2 file:pbx_ael.c line:4076 func: pbx_load_module AEL load process: calculated config file name './extensions.ael'.
+LOG: lev:2 file:pbx_ael.c line:4084 func: pbx_load_module AEL load process: parsed config file name './extensions.ael'.
LOG: lev:3 file:pbx_ael.c line:2234 func: check_switch_expr Warning: file ./extensions.ael, line 13-13: A default case was automatically added to the switch.
LOG: lev:3 file:pbx_ael.c line:2234 func: check_switch_expr Warning: file ./extensions.ael, line 36-36: A default case was automatically added to the switch.
LOG: lev:3 file:pbx_ael.c line:2234 func: check_switch_expr Warning: file ./extensions.ael, line 48-48: A default case was automatically added to the switch.
@@ -18,7 +18,7 @@ LOG: lev:3 file:pbx_ael.c line:2234 func: check_switch_expr Warning: file ./ex
LOG: lev:3 file:pbx_ael.c line:2234 func: check_switch_expr Warning: file ./extensions.ael, line 106-106: A default case was automatically added to the switch.
LOG: lev:3 file:pbx_ael.c line:2234 func: check_switch_expr Warning: file ./extensions.ael, line 119-119: A default case was automatically added to the switch.
LOG: lev:3 file:pbx_ael.c line:2234 func: check_switch_expr Warning: file ./extensions.ael, line 122-122: A default case was automatically added to the switch.
-LOG: lev:2 file:pbx_ael.c line:3996 func: pbx_load_module AEL load process: checked config file name './extensions.ael'.
+LOG: lev:2 file:pbx_ael.c line:4087 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);
@@ -33,6 +33,7 @@ Executed ast_add_extension2(context=macro-endcall, rep=0, exten=s, priority=1, l
Executed ast_add_extension2(context=macro-endcall, rep=0, exten=s, priority=2, label=(null), callerid=(null), appl=Goto, data=sw-1-${type}|10, 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-., priority=10, 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-, priority=10, label=(null), callerid=(null), appl=Goto, data=sw-1-.|10, FREE, registrar=pbx_ael);
Executed ast_add_extension2(context=macro-endcall, rep=0, exten=sw-1-out, priority=10, 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=11, label=(null), callerid=(null), appl=GotoIf, data=$[${testnotnull}]?12:15, FREE, registrar=pbx_ael);
Executed ast_add_extension2(context=macro-endcall, rep=0, exten=sw-1-out, priority=12, label=(null), callerid=(null), appl=Macro, data=endsess, FREE, registrar=pbx_ael);
@@ -47,6 +48,7 @@ Executed ast_add_extension2(context=macro-endcall2, rep=0, exten=s, priority=1,
Executed ast_add_extension2(context=macro-endcall2, rep=0, exten=s, priority=2, label=(null), callerid=(null), appl=Goto, data=sw-3-${type}|10, 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-., 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=sw-3-, priority=10, label=(null), callerid=(null), appl=Goto, data=sw-3-.|10, FREE, registrar=pbx_ael);
Executed ast_add_extension2(context=macro-endcall2, rep=0, exten=sw-3-out2, priority=10, 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=11, 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=12, label=(null), callerid=(null), appl=Noop, data=esac, FREE, registrar=pbx_ael);
@@ -66,6 +68,7 @@ Executed ast_add_extension2(context=macro-endcall3, rep=0, exten=s, priority=6,
Executed ast_add_extension2(context=macro-endcall3, rep=0, exten=s, priority=7, label=(null), callerid=(null), appl=Goto, data=sw-8-${type}|10, 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-., priority=10, 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-, priority=10, label=(null), callerid=(null), appl=Goto, data=sw-8-.|10, FREE, registrar=pbx_ael);
Executed ast_add_extension2(context=macro-endcall3, rep=0, exten=sw-8-out, priority=10, label=(null), callerid=(null), appl=GotoIf, data=$[${testnotnull}]?11:13, FREE, registrar=pbx_ael);
Executed ast_add_extension2(context=macro-endcall3, rep=0, exten=sw-8-out, priority=11, 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=12, label=(null), callerid=(null), appl=Goto, data=s|8, FREE, registrar=pbx_ael);
@@ -73,6 +76,7 @@ Executed ast_add_extension2(context=macro-endcall3, rep=0, exten=sw-8-out, prior
Executed ast_add_extension2(context=macro-endcall3, rep=0, exten=sw-8-out, priority=14, 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=15, label=(null), callerid=(null), appl=Goto, data=sw-8-.|10, FREE, registrar=pbx_ael);
Executed ast_add_extension2(context=macro-endcall3, rep=0, exten=_sw-5-., priority=10, label=(null), callerid=(null), appl=Goto, data=s|3, FREE, registrar=pbx_ael);
+Executed ast_add_extension2(context=macro-endcall3, rep=0, exten=sw-5-, priority=10, label=(null), callerid=(null), appl=Goto, data=sw-5-.|10, FREE, registrar=pbx_ael);
Executed ast_add_extension2(context=macro-endcall3, rep=0, exten=sw-5-out, priority=10, 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=11, label=(null), callerid=(null), appl=GotoIf, data=$[${testnotnull}]?12:14, FREE, registrar=pbx_ael);
Executed ast_add_extension2(context=macro-endcall3, rep=0, exten=sw-5-out, priority=12, label=(null), callerid=(null), appl=Macro, data=endsess, FREE, registrar=pbx_ael);
@@ -89,10 +93,12 @@ Executed ast_add_extension2(context=macro-endcall4, rep=0, exten=s, priority=6,
Executed ast_add_extension2(context=macro-endcall4, rep=0, exten=s, priority=7, label=(null), callerid=(null), appl=Goto, data=sw-13-${type}|10, 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-., priority=10, label=(null), callerid=(null), appl=Goto, data=s|8, FREE, registrar=pbx_ael);
+Executed ast_add_extension2(context=macro-endcall4, rep=0, exten=sw-13-, priority=10, label=(null), callerid=(null), appl=Goto, data=sw-13-.|10, FREE, registrar=pbx_ael);
Executed ast_add_extension2(context=macro-endcall4, rep=0, exten=sw-13-out, priority=10, label=(null), callerid=(null), appl=Goto, data=sw-14-${type}|10, FREE, registrar=pbx_ael);
Executed ast_add_extension2(context=macro-endcall4, rep=0, exten=sw-13-out, priority=11, 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=12, label=(null), callerid=(null), appl=Goto, data=sw-13-.|10, FREE, registrar=pbx_ael);
Executed ast_add_extension2(context=macro-endcall4, rep=0, exten=_sw-14-., priority=10, label=(null), callerid=(null), appl=Goto, data=sw-13-out|11, FREE, registrar=pbx_ael);
+Executed ast_add_extension2(context=macro-endcall4, rep=0, exten=sw-14-, priority=10, label=(null), callerid=(null), appl=Goto, data=sw-14-.|10, FREE, registrar=pbx_ael);
Executed ast_add_extension2(context=macro-endcall4, rep=0, exten=sw-14-in, priority=10, label=(null), callerid=(null), appl=GotoIf, data=$[${testnotnull}]?11:13, FREE, registrar=pbx_ael);
Executed ast_add_extension2(context=macro-endcall4, rep=0, exten=sw-14-in, priority=11, 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=12, label=(null), callerid=(null), appl=Goto, data=sw-13-out|11, FREE, registrar=pbx_ael);
@@ -100,6 +106,7 @@ Executed ast_add_extension2(context=macro-endcall4, rep=0, exten=sw-14-in, prior
Executed ast_add_extension2(context=macro-endcall4, rep=0, exten=sw-14-in, priority=14, 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=15, label=(null), callerid=(null), appl=Goto, data=sw-14-.|10, FREE, registrar=pbx_ael);
Executed ast_add_extension2(context=macro-endcall4, rep=0, exten=_sw-10-., priority=10, label=(null), callerid=(null), appl=Goto, data=s|3, FREE, registrar=pbx_ael);
+Executed ast_add_extension2(context=macro-endcall4, rep=0, exten=sw-10-, priority=10, label=(null), callerid=(null), appl=Goto, data=sw-10-.|10, FREE, registrar=pbx_ael);
Executed ast_add_extension2(context=macro-endcall4, rep=0, exten=sw-10-out, priority=10, 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=11, label=(null), callerid=(null), appl=GotoIf, data=$[${testnotnull}]?12:14, FREE, registrar=pbx_ael);
Executed ast_add_extension2(context=macro-endcall4, rep=0, exten=sw-10-out, priority=12, label=(null), callerid=(null), appl=Macro, data=endsess, FREE, registrar=pbx_ael);
@@ -116,10 +123,12 @@ Executed ast_add_extension2(context=macro-endcall5, rep=0, exten=s, priority=6,
Executed ast_add_extension2(context=macro-endcall5, rep=0, exten=s, priority=7, label=(null), callerid=(null), appl=Goto, data=sw-20-${type}|10, 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-., priority=10, label=(null), callerid=(null), appl=Goto, data=s|8, FREE, registrar=pbx_ael);
+Executed ast_add_extension2(context=macro-endcall5, rep=0, exten=sw-20-, priority=10, label=(null), callerid=(null), appl=Goto, data=sw-20-.|10, FREE, registrar=pbx_ael);
Executed ast_add_extension2(context=macro-endcall5, rep=0, exten=sw-20-out, priority=10, label=(null), callerid=(null), appl=Goto, data=sw-21-${type}|10, FREE, registrar=pbx_ael);
Executed ast_add_extension2(context=macro-endcall5, rep=0, exten=sw-20-out, priority=11, 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=12, label=(null), callerid=(null), appl=Goto, data=sw-20-.|10, FREE, registrar=pbx_ael);
Executed ast_add_extension2(context=macro-endcall5, rep=0, exten=_sw-21-., priority=10, label=(null), callerid=(null), appl=Goto, data=sw-20-out|11, FREE, registrar=pbx_ael);
+Executed ast_add_extension2(context=macro-endcall5, rep=0, exten=sw-21-, priority=10, label=(null), callerid=(null), appl=Goto, data=sw-21-.|10, FREE, registrar=pbx_ael);
Executed ast_add_extension2(context=macro-endcall5, rep=0, exten=sw-21-in, priority=10, label=(null), callerid=(null), appl=GotoIf, data=$[${testnotnull}]?11:13, FREE, registrar=pbx_ael);
Executed ast_add_extension2(context=macro-endcall5, rep=0, exten=sw-21-in, priority=11, 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=12, label=(null), callerid=(null), appl=Goto, data=sw-20-out|11, FREE, registrar=pbx_ael);
@@ -127,6 +136,7 @@ Executed ast_add_extension2(context=macro-endcall5, rep=0, exten=sw-21-in, prior
Executed ast_add_extension2(context=macro-endcall5, rep=0, exten=sw-21-in, priority=14, 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=15, label=(null), callerid=(null), appl=Goto, data=sw-21-.|10, FREE, registrar=pbx_ael);
Executed ast_add_extension2(context=macro-endcall5, rep=0, exten=_sw-16-., priority=10, 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-, priority=10, label=(null), callerid=(null), appl=Goto, data=sw-16-.|10, FREE, registrar=pbx_ael);
Executed ast_add_extension2(context=macro-endcall5, rep=0, exten=sw-16-in, priority=10, 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=11, label=ptr2, callerid=(null), appl=GotoIf, data=$[${testnotnull}]?12:14, FREE, registrar=pbx_ael);
Executed ast_add_extension2(context=macro-endcall5, rep=0, exten=sw-16-in, priority=12, label=(null), callerid=(null), appl=Macro, data=endsess, FREE, registrar=pbx_ael);
@@ -140,9 +150,9 @@ Executed ast_add_extension2(context=macro-endcall5, rep=0, exten=sw-16-out, prio
Executed ast_add_extension2(context=macro-endcall5, rep=0, exten=sw-16-out, priority=13, 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=14, 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=15, label=(null), callerid=(null), appl=Goto, data=sw-16-in|10, FREE, registrar=pbx_ael);
-LOG: lev:2 file:pbx_ael.c line:3998 func: pbx_load_module AEL load process: compiled config file name './extensions.ael'.
+LOG: lev:2 file:pbx_ael.c line:4089 func: pbx_load_module AEL load process: compiled config file name './extensions.ael'.
Executed ast_merge_contexts_and_delete();
-LOG: lev:2 file:pbx_ael.c line:4001 func: pbx_load_module AEL load process: merged config file name './extensions.ael'.
+LOG: lev:2 file:pbx_ael.c line:4092 func: pbx_load_module AEL load process: merged config file name './extensions.ael'.
Executed ast_walk_contexts();
-LOG: lev:2 file:pbx_ael.c line:4004 func: pbx_load_module AEL load process: verified config file name './extensions.ael'.
-LOG: lev:4 file:ael2_parse line:523 func: main 7 contexts, 27 extensions, 114 priorities
+LOG: lev:2 file:pbx_ael.c line:4095 func: pbx_load_module AEL load process: verified config file name './extensions.ael'.
+LOG: lev:4 file:ael2_parse line:527 func: main 7 contexts, 37 extensions, 124 priorities
diff --git a/pbx/ael/ael-test/ref.ael-test1 b/pbx/ael/ael-test/ref.ael-test1
index 7047bae5a..91ed1217f 100644
--- a/pbx/ael/ael-test/ref.ael-test1
+++ b/pbx/ael/ael-test/ref.ael-test1
@@ -2,14 +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_ael.c line:3978 func: pbx_load_module Starting AEL load process.
-LOG: lev:2 file:pbx_ael.c line:3985 func: pbx_load_module AEL load process: calculated config file name './extensions.ael'.
-LOG: lev:2 file:pbx_ael.c line:3993 func: pbx_load_module AEL load process: parsed config file name './extensions.ael'.
+LOG: lev:2 file:pbx_ael.c line:4069 func: pbx_load_module Starting AEL load process.
+LOG: lev:2 file:pbx_ael.c line:4076 func: pbx_load_module AEL load process: calculated config file name './extensions.ael'.
+LOG: lev:2 file:pbx_ael.c line:4084 func: pbx_load_module AEL load process: parsed config file name './extensions.ael'.
LOG: lev:3 file:pbx_ael.c line:2234 func: check_switch_expr Warning: file ./extensions.ael, line 58-58: A default case was automatically added to the switch.
LOG: lev:3 file:pbx_ael.c line:937 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_ael.c line:895 func: check_timerange Warning: file ./extensions.ael, line 78-78: The end time (25:00) is out of range!
-LOG: lev:2 file:pbx_ael.c line:3996 func: pbx_load_module AEL load process: checked config file name './extensions.ael'.
-LOG: lev:2 file:pbx_ael.c line:3998 func: pbx_load_module AEL load process: compiled config file name './extensions.ael'.
-LOG: lev:2 file:pbx_ael.c line:4001 func: pbx_load_module AEL load process: merged config file name './extensions.ael'.
-LOG: lev:2 file:pbx_ael.c line:4004 func: pbx_load_module AEL load process: verified config file name './extensions.ael'.
-LOG: lev:4 file:ael2_parse line:523 func: main 5 contexts, 14 extensions, 157 priorities
+LOG: lev:2 file:pbx_ael.c line:4087 func: pbx_load_module AEL load process: checked config file name './extensions.ael'.
+LOG: lev:2 file:pbx_ael.c line:4089 func: pbx_load_module AEL load process: compiled config file name './extensions.ael'.
+LOG: lev:2 file:pbx_ael.c line:4092 func: pbx_load_module AEL load process: merged config file name './extensions.ael'.
+LOG: lev:2 file:pbx_ael.c line:4095 func: pbx_load_module AEL load process: verified config file name './extensions.ael'.
+LOG: lev:4 file:ael2_parse line:527 func: main 5 contexts, 16 extensions, 159 priorities
diff --git a/pbx/ael/ael-test/ref.ael-test18 b/pbx/ael/ael-test/ref.ael-test18
index 8e8eb42f4..a0972f55e 100644
--- a/pbx/ael/ael-test/ref.ael-test18
+++ b/pbx/ael/ael-test/ref.ael-test18
@@ -2,11 +2,11 @@
(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_ael.c line:3970 func: pbx_load_module Starting AEL load process.
-LOG: lev:2 file:pbx_ael.c line:3977 func: pbx_load_module AEL load process: calculated config file name './extensions.ael'.
-LOG: lev:2 file:pbx_ael.c line:3985 func: pbx_load_module AEL load process: parsed config file name './extensions.ael'.
-LOG: lev:2 file:pbx_ael.c line:3988 func: pbx_load_module AEL load process: checked config file name './extensions.ael'.
-LOG: lev:2 file:pbx_ael.c line:3990 func: pbx_load_module AEL load process: compiled config file name './extensions.ael'.
-LOG: lev:2 file:pbx_ael.c line:3993 func: pbx_load_module AEL load process: merged config file name './extensions.ael'.
-LOG: lev:2 file:pbx_ael.c line:3996 func: pbx_load_module AEL load process: verified config file name './extensions.ael'.
-LOG: lev:4 file:ael2_parse line:483 func: main 1 contexts, 5 extensions, 25 priorities
+LOG: lev:2 file:pbx_ael.c line:4069 func: pbx_load_module Starting AEL load process.
+LOG: lev:2 file:pbx_ael.c line:4076 func: pbx_load_module AEL load process: calculated config file name './extensions.ael'.
+LOG: lev:2 file:pbx_ael.c line:4084 func: pbx_load_module AEL load process: parsed config file name './extensions.ael'.
+LOG: lev:2 file:pbx_ael.c line:4087 func: pbx_load_module AEL load process: checked config file name './extensions.ael'.
+LOG: lev:2 file:pbx_ael.c line:4089 func: pbx_load_module AEL load process: compiled config file name './extensions.ael'.
+LOG: lev:2 file:pbx_ael.c line:4092 func: pbx_load_module AEL load process: merged config file name './extensions.ael'.
+LOG: lev:2 file:pbx_ael.c line:4095 func: pbx_load_module AEL load process: verified config file name './extensions.ael'.
+LOG: lev:4 file:ael2_parse line:527 func: main 1 contexts, 7 extensions, 27 priorities
diff --git a/pbx/ael/ael-test/ref.ael-test3 b/pbx/ael/ael-test/ref.ael-test3
index 57c39fe25..c36cd0d3a 100644
--- a/pbx/ael/ael-test/ref.ael-test3
+++ b/pbx/ael/ael-test/ref.ael-test3
@@ -2,17 +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_ael.c line:4048 func: pbx_load_module Starting AEL load process.
-LOG: lev:2 file:pbx_ael.c line:4055 func: pbx_load_module AEL load process: calculated config file name './extensions.ael'.
+LOG: lev:2 file:pbx_ael.c line:4069 func: pbx_load_module Starting AEL load process.
+LOG: lev:2 file:pbx_ael.c line:4076 func: pbx_load_module AEL load process: calculated config file name './extensions.ael'.
LOG: lev:2 file:ael.flex line:654 func: setup_filestack --Read in included file ./include1.ael2, 78 chars
LOG: lev:2 file:ael.flex line:654 func: setup_filestack --Read in included file ./include2.ael2, 98 chars
LOG: lev:2 file:ael.flex line:654 func: setup_filestack --Read in included file ./include3.ael2, 57 chars
LOG: lev:2 file:ael.flex line:654 func: setup_filestack --Read in included file ./include5.ael2, 56 chars
LOG: lev:2 file:ael.flex line:654 func: setup_filestack --Read in included file ./include4.ael2, 87 chars
LOG: lev:2 file:ael.flex line:654 func: setup_filestack --Read in included file ./telemarket_torture.ael2, 28036 chars
-LOG: lev:2 file:pbx_ael.c line:4063 func: pbx_load_module AEL load process: parsed config file name './extensions.ael'.
-LOG: lev:2 file:pbx_ael.c line:4066 func: pbx_load_module AEL load process: checked config file name './extensions.ael'.
-LOG: lev:2 file:pbx_ael.c line:4068 func: pbx_load_module AEL load process: compiled config file name './extensions.ael'.
-LOG: lev:2 file:pbx_ael.c line:4071 func: pbx_load_module AEL load process: merged config file name './extensions.ael'.
-LOG: lev:2 file:pbx_ael.c line:4074 func: pbx_load_module AEL load process: verified config file name './extensions.ael'.
-LOG: lev:4 file:ael2_parse line:527 func: main 172 contexts, 858 extensions, 2326 priorities
+LOG: lev:2 file:pbx_ael.c line:4084 func: pbx_load_module AEL load process: parsed config file name './extensions.ael'.
+LOG: lev:2 file:pbx_ael.c line:4087 func: pbx_load_module AEL load process: checked config file name './extensions.ael'.
+LOG: lev:2 file:pbx_ael.c line:4089 func: pbx_load_module AEL load process: compiled config file name './extensions.ael'.
+LOG: lev:2 file:pbx_ael.c line:4092 func: pbx_load_module AEL load process: merged config file name './extensions.ael'.
+LOG: lev:2 file:pbx_ael.c line:4095 func: pbx_load_module AEL load process: verified config file name './extensions.ael'.
+LOG: lev:4 file:ael2_parse line:527 func: main 172 contexts, 934 extensions, 2402 priorities
diff --git a/pbx/ael/ael-test/ref.ael-test5 b/pbx/ael/ael-test/ref.ael-test5
index 2cf53e5c4..e7550e842 100644
--- a/pbx/ael/ael-test/ref.ael-test5
+++ b/pbx/ael/ael-test/ref.ael-test5
@@ -2,11 +2,11 @@
(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_ael.c line:3803 func: pbx_load_module Starting AEL load process.
-LOG: lev:2 file:pbx_ael.c line:3810 func: pbx_load_module AEL load process: calculated config file name './extensions.ael'.
-LOG: lev:2 file:pbx_ael.c line:3818 func: pbx_load_module AEL load process: parsed config file name './extensions.ael'.
-LOG: lev:2 file:pbx_ael.c line:3821 func: pbx_load_module AEL load process: checked config file name './extensions.ael'.
-LOG: lev:2 file:pbx_ael.c line:3823 func: pbx_load_module AEL load process: compiled config file name './extensions.ael'.
-LOG: lev:2 file:pbx_ael.c line:3826 func: pbx_load_module AEL load process: merged config file name './extensions.ael'.
-LOG: lev:2 file:pbx_ael.c line:3829 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, 484 priorities
+LOG: lev:2 file:pbx_ael.c line:4069 func: pbx_load_module Starting AEL load process.
+LOG: lev:2 file:pbx_ael.c line:4076 func: pbx_load_module AEL load process: calculated config file name './extensions.ael'.
+LOG: lev:2 file:pbx_ael.c line:4084 func: pbx_load_module AEL load process: parsed config file name './extensions.ael'.
+LOG: lev:2 file:pbx_ael.c line:4087 func: pbx_load_module AEL load process: checked config file name './extensions.ael'.
+LOG: lev:2 file:pbx_ael.c line:4089 func: pbx_load_module AEL load process: compiled config file name './extensions.ael'.
+LOG: lev:2 file:pbx_ael.c line:4092 func: pbx_load_module AEL load process: merged config file name './extensions.ael'.
+LOG: lev:2 file:pbx_ael.c line:4095 func: pbx_load_module AEL load process: verified config file name './extensions.ael'.
+LOG: lev:4 file:ael2_parse line:527 func: main 38 contexts, 91 extensions, 485 priorities
diff --git a/pbx/ael/ael-test/ref.ael-test8 b/pbx/ael/ael-test/ref.ael-test8
index fc0a237f9..267b6a579 100644
--- a/pbx/ael/ael-test/ref.ael-test8
+++ b/pbx/ael/ael-test/ref.ael-test8
@@ -2,11 +2,11 @@
(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_ael.c line:3803 func: pbx_load_module Starting AEL load process.
-LOG: lev:2 file:pbx_ael.c line:3810 func: pbx_load_module AEL load process: calculated config file name './extensions.ael'.
-LOG: lev:2 file:pbx_ael.c line:3818 func: pbx_load_module AEL load process: parsed config file name './extensions.ael'.
-LOG: lev:2 file:pbx_ael.c line:3821 func: pbx_load_module AEL load process: checked config file name './extensions.ael'.
-LOG: lev:2 file:pbx_ael.c line:3823 func: pbx_load_module AEL load process: compiled config file name './extensions.ael'.
-LOG: lev:2 file:pbx_ael.c line:3826 func: pbx_load_module AEL load process: merged config file name './extensions.ael'.
-LOG: lev:2 file:pbx_ael.c line:3829 func: pbx_load_module AEL load process: verified config file name './extensions.ael'.
-LOG: lev:4 file:ael2_parse line:479 func: main 1 contexts, 5 extensions, 15 priorities
+LOG: lev:2 file:pbx_ael.c line:4069 func: pbx_load_module Starting AEL load process.
+LOG: lev:2 file:pbx_ael.c line:4076 func: pbx_load_module AEL load process: calculated config file name './extensions.ael'.
+LOG: lev:2 file:pbx_ael.c line:4084 func: pbx_load_module AEL load process: parsed config file name './extensions.ael'.
+LOG: lev:2 file:pbx_ael.c line:4087 func: pbx_load_module AEL load process: checked config file name './extensions.ael'.
+LOG: lev:2 file:pbx_ael.c line:4089 func: pbx_load_module AEL load process: compiled config file name './extensions.ael'.
+LOG: lev:2 file:pbx_ael.c line:4092 func: pbx_load_module AEL load process: merged config file name './extensions.ael'.
+LOG: lev:2 file:pbx_ael.c line:4095 func: pbx_load_module AEL load process: verified config file name './extensions.ael'.
+LOG: lev:4 file:ael2_parse line:527 func: main 1 contexts, 7 extensions, 17 priorities
diff --git a/pbx/ael/ael-test/ref.ael-vtest13 b/pbx/ael/ael-test/ref.ael-vtest13
index 2022155a9..1e65df293 100644
--- a/pbx/ael/ael-test/ref.ael-vtest13
+++ b/pbx/ael/ael-test/ref.ael-vtest13
@@ -19,6 +19,7 @@ exten => s,5,NoOp(Finish switch-std-exten-1)
exten => a,1,VoiceMailMain(${ext})
exten => _sw-1-.,10,Voicemail(u${ext})
exten => _sw-1-.,11,Goto(s|5)
+exten => sw-1-,10,Goto(sw-1-.|10)
exten => sw-1-ANSWER,10,Goto(s|5)
exten => sw-1-NOANSWER,10,Voicemail(u${ext})
exten => sw-1-NOANSWER,11,Goto(s|5)
@@ -39,6 +40,7 @@ exten => s,9,Goto(sw-3-${DIALSTATUS}|10)
exten => s,10,NoOp(Finish switch-std-priv-exten_1-3)
exten => _sw-3-.,10,Voicemail(u${ext})
exten => _sw-3-.,11,Goto(s|10)
+exten => sw-3-,10,Goto(sw-3-.|10)
exten => sw-3-NOANSWER,10,Voicemail(u${ext})
exten => sw-3-NOANSWER,11,Goto(s|10)
exten => sw-3-ANSWER,10,Goto(s|10)
@@ -63,6 +65,7 @@ exten => s,9,Goto(sw-4-${DIALSTATUS}|10)
exten => s,10,NoOp(Finish switch-std-priv-exten_2-4)
exten => _sw-4-.,10,Voicemail(u${ext})
exten => _sw-4-.,11,Goto(s|10)
+exten => sw-4-,10,Goto(sw-4-.|10)
exten => sw-4-NOANSWER,10,Voicemail(u${ext})
exten => sw-4-NOANSWER,11,Goto(s|10)
exten => sw-4-ANSWER,10,Goto(s|10)
@@ -87,6 +90,7 @@ exten => s,9,Goto(sw-5-${DIALSTATUS}|10)
exten => s,10,NoOp(Finish switch-std-priv-exten_3-5)
exten => _sw-5-.,10,Voicemail(u${ext})
exten => _sw-5-.,11,Goto(s|10)
+exten => sw-5-,10,Goto(sw-5-.|10)
exten => sw-5-NOANSWER,10,Voicemail(u${ext})
exten => sw-5-NOANSWER,11,Goto(s|10)
exten => sw-5-ANSWER,10,Goto(s|10)
@@ -111,6 +115,7 @@ exten => s,9,Goto(sw-6-${DIALSTATUS}|10)
exten => s,10,NoOp(Finish switch-std-priv-exten_4-6)
exten => _sw-6-.,10,Voicemail(u${ext})
exten => _sw-6-.,11,Goto(s|10)
+exten => sw-6-,10,Goto(sw-6-.|10)
exten => sw-6-NOANSWER,10,Voicemail(u${ext})
exten => sw-6-NOANSWER,11,Goto(s|10)
exten => sw-6-ANSWER,10,Goto(s|10)
@@ -135,6 +140,7 @@ exten => s,9,Goto(sw-7-${DIALSTATUS}|10)
exten => s,10,NoOp(Finish switch-std-priv-exten_5-7)
exten => _sw-7-.,10,Voicemail(u${ext})
exten => _sw-7-.,11,Goto(s|10)
+exten => sw-7-,10,Goto(sw-7-.|10)
exten => sw-7-NOANSWER,10,Voicemail(u${ext})
exten => sw-7-NOANSWER,11,Goto(s|10)
exten => sw-7-ANSWER,10,Goto(s|10)
@@ -159,6 +165,7 @@ exten => s,9,Goto(sw-8-${DIALSTATUS}|10)
exten => s,10,NoOp(Finish switch-std-priv-exten_6-8)
exten => _sw-8-.,10,Voicemail(u${ext})
exten => _sw-8-.,11,Goto(s|10)
+exten => sw-8-,10,Goto(sw-8-.|10)
exten => sw-8-NOANSWER,10,Voicemail(u${ext})
exten => sw-8-NOANSWER,11,Goto(s|10)
exten => sw-8-ANSWER,10,Goto(s|10)
@@ -183,6 +190,7 @@ exten => s,9,Goto(sw-9-${DIALSTATUS}|10)
exten => s,10,NoOp(Finish switch-std-priv-exten_7-9)
exten => _sw-9-.,10,Voicemail(u${ext})
exten => _sw-9-.,11,Goto(s|10)
+exten => sw-9-,10,Goto(sw-9-.|10)
exten => sw-9-NOANSWER,10,Voicemail(u${ext})
exten => sw-9-NOANSWER,11,Goto(s|10)
exten => sw-9-ANSWER,10,Goto(s|10)
@@ -207,6 +215,7 @@ exten => s,9,Goto(sw-10-${DIALSTATUS}|10)
exten => s,10,NoOp(Finish switch-std-priv-exten_8-10)
exten => _sw-10-.,10,Voicemail(u${ext})
exten => _sw-10-.,11,Goto(s|10)
+exten => sw-10-,10,Goto(sw-10-.|10)
exten => sw-10-NOANSWER,10,Voicemail(u${ext})
exten => sw-10-NOANSWER,11,Goto(s|10)
exten => sw-10-ANSWER,10,Goto(s|10)
@@ -231,6 +240,7 @@ exten => s,9,Goto(sw-11-${DIALSTATUS}|10)
exten => s,10,NoOp(Finish switch-std-priv-exten_9-11)
exten => _sw-11-.,10,Voicemail(u${ext})
exten => _sw-11-.,11,Goto(s|10)
+exten => sw-11-,10,Goto(sw-11-.|10)
exten => sw-11-NOANSWER,10,Voicemail(u${ext})
exten => sw-11-NOANSWER,11,Goto(s|10)
exten => sw-11-ANSWER,10,Goto(s|10)
@@ -255,6 +265,7 @@ exten => s,9,Goto(sw-12-${DIALSTATUS}|10)
exten => s,10,NoOp(Finish switch-std-priv-exten_10-12)
exten => _sw-12-.,10,Voicemail(u${ext})
exten => _sw-12-.,11,Goto(s|10)
+exten => sw-12-,10,Goto(sw-12-.|10)
exten => sw-12-NOANSWER,10,Voicemail(u${ext})
exten => sw-12-NOANSWER,11,Goto(s|10)
exten => sw-12-ANSWER,10,Goto(s|10)
@@ -279,6 +290,7 @@ exten => s,9,Goto(sw-13-${DIALSTATUS}|10)
exten => s,10,NoOp(Finish switch-std-priv-exten_11-13)
exten => _sw-13-.,10,Voicemail(u${ext})
exten => _sw-13-.,11,Goto(s|10)
+exten => sw-13-,10,Goto(sw-13-.|10)
exten => sw-13-NOANSWER,10,Voicemail(u${ext})
exten => sw-13-NOANSWER,11,Goto(s|10)
exten => sw-13-ANSWER,10,Goto(s|10)
@@ -303,6 +315,7 @@ exten => s,9,Goto(sw-14-${DIALSTATUS}|10)
exten => s,10,NoOp(Finish switch-std-priv-exten_12-14)
exten => _sw-14-.,10,Voicemail(u${ext})
exten => _sw-14-.,11,Goto(s|10)
+exten => sw-14-,10,Goto(sw-14-.|10)
exten => sw-14-NOANSWER,10,Voicemail(u${ext})
exten => sw-14-NOANSWER,11,Goto(s|10)
exten => sw-14-ANSWER,10,Goto(s|10)
@@ -327,6 +340,7 @@ exten => s,9,Goto(sw-15-${DIALSTATUS}|10)
exten => s,10,NoOp(Finish switch-std-priv-exten_13-15)
exten => _sw-15-.,10,Voicemail(u${ext})
exten => _sw-15-.,11,Goto(s|10)
+exten => sw-15-,10,Goto(sw-15-.|10)
exten => sw-15-NOANSWER,10,Voicemail(u${ext})
exten => sw-15-NOANSWER,11,Goto(s|10)
exten => sw-15-ANSWER,10,Goto(s|10)
@@ -351,6 +365,7 @@ exten => s,9,Goto(sw-16-${DIALSTATUS}|10)
exten => s,10,NoOp(Finish switch-std-priv-exten_14-16)
exten => _sw-16-.,10,Voicemail(u${ext})
exten => _sw-16-.,11,Goto(s|10)
+exten => sw-16-,10,Goto(sw-16-.|10)
exten => sw-16-NOANSWER,10,Voicemail(u${ext})
exten => sw-16-NOANSWER,11,Goto(s|10)
exten => sw-16-ANSWER,10,Goto(s|10)
@@ -375,6 +390,7 @@ exten => s,9,Goto(sw-17-${DIALSTATUS}|10)
exten => s,10,NoOp(Finish switch-std-priv-exten_15-17)
exten => _sw-17-.,10,Voicemail(u${ext})
exten => _sw-17-.,11,Goto(s|10)
+exten => sw-17-,10,Goto(sw-17-.|10)
exten => sw-17-NOANSWER,10,Voicemail(u${ext})
exten => sw-17-NOANSWER,11,Goto(s|10)
exten => sw-17-ANSWER,10,Goto(s|10)
@@ -399,6 +415,7 @@ exten => s,9,Goto(sw-18-${DIALSTATUS}|10)
exten => s,10,NoOp(Finish switch-std-priv-exten_16-18)
exten => _sw-18-.,10,Voicemail(u${ext})
exten => _sw-18-.,11,Goto(s|10)
+exten => sw-18-,10,Goto(sw-18-.|10)
exten => sw-18-NOANSWER,10,Voicemail(u${ext})
exten => sw-18-NOANSWER,11,Goto(s|10)
exten => sw-18-ANSWER,10,Goto(s|10)
@@ -423,6 +440,7 @@ exten => s,9,Goto(sw-19-${DIALSTATUS}|10)
exten => s,10,NoOp(Finish switch-std-priv-exten_17-19)
exten => _sw-19-.,10,Voicemail(u${ext})
exten => _sw-19-.,11,Goto(s|10)
+exten => sw-19-,10,Goto(sw-19-.|10)
exten => sw-19-NOANSWER,10,Voicemail(u${ext})
exten => sw-19-NOANSWER,11,Goto(s|10)
exten => sw-19-ANSWER,10,Goto(s|10)
@@ -447,6 +465,7 @@ exten => s,9,Goto(sw-20-${DIALSTATUS}|10)
exten => s,10,NoOp(Finish switch-std-priv-exten_18-20)
exten => _sw-20-.,10,Voicemail(u${ext})
exten => _sw-20-.,11,Goto(s|10)
+exten => sw-20-,10,Goto(sw-20-.|10)
exten => sw-20-NOANSWER,10,Voicemail(u${ext})
exten => sw-20-NOANSWER,11,Goto(s|10)
exten => sw-20-ANSWER,10,Goto(s|10)
@@ -471,6 +490,7 @@ exten => s,9,Goto(sw-21-${DIALSTATUS}|10)
exten => s,10,NoOp(Finish switch-std-priv-exten_19-21)
exten => _sw-21-.,10,Voicemail(u${ext})
exten => _sw-21-.,11,Goto(s|10)
+exten => sw-21-,10,Goto(sw-21-.|10)
exten => sw-21-NOANSWER,10,Voicemail(u${ext})
exten => sw-21-NOANSWER,11,Goto(s|10)
exten => sw-21-ANSWER,10,Goto(s|10)
@@ -495,6 +515,7 @@ exten => s,9,Goto(sw-22-${DIALSTATUS}|10)
exten => s,10,NoOp(Finish switch-std-priv-exten_20-22)
exten => _sw-22-.,10,Voicemail(u${ext})
exten => _sw-22-.,11,Goto(s|10)
+exten => sw-22-,10,Goto(sw-22-.|10)
exten => sw-22-NOANSWER,10,Voicemail(u${ext})
exten => sw-22-NOANSWER,11,Goto(s|10)
exten => sw-22-ANSWER,10,Goto(s|10)
@@ -519,6 +540,7 @@ exten => s,9,Goto(sw-23-${DIALSTATUS}|10)
exten => s,10,NoOp(Finish switch-std-priv-exten_21-23)
exten => _sw-23-.,10,Voicemail(u${ext})
exten => _sw-23-.,11,Goto(s|10)
+exten => sw-23-,10,Goto(sw-23-.|10)
exten => sw-23-NOANSWER,10,Voicemail(u${ext})
exten => sw-23-NOANSWER,11,Goto(s|10)
exten => sw-23-ANSWER,10,Goto(s|10)
@@ -543,6 +565,7 @@ exten => s,9,Goto(sw-24-${DIALSTATUS}|10)
exten => s,10,NoOp(Finish switch-std-priv-exten_22-24)
exten => _sw-24-.,10,Voicemail(u${ext})
exten => _sw-24-.,11,Goto(s|10)
+exten => sw-24-,10,Goto(sw-24-.|10)
exten => sw-24-NOANSWER,10,Voicemail(u${ext})
exten => sw-24-NOANSWER,11,Goto(s|10)
exten => sw-24-ANSWER,10,Goto(s|10)
@@ -567,6 +590,7 @@ exten => s,9,Goto(sw-25-${DIALSTATUS}|10)
exten => s,10,NoOp(Finish switch-std-priv-exten_23-25)
exten => _sw-25-.,10,Voicemail(u${ext})
exten => _sw-25-.,11,Goto(s|10)
+exten => sw-25-,10,Goto(sw-25-.|10)
exten => sw-25-NOANSWER,10,Voicemail(u${ext})
exten => sw-25-NOANSWER,11,Goto(s|10)
exten => sw-25-ANSWER,10,Goto(s|10)
@@ -591,6 +615,7 @@ exten => s,9,Goto(sw-26-${DIALSTATUS}|10)
exten => s,10,NoOp(Finish switch-std-priv-exten_24-26)
exten => _sw-26-.,10,Voicemail(u${ext})
exten => _sw-26-.,11,Goto(s|10)
+exten => sw-26-,10,Goto(sw-26-.|10)
exten => sw-26-NOANSWER,10,Voicemail(u${ext})
exten => sw-26-NOANSWER,11,Goto(s|10)
exten => sw-26-ANSWER,10,Goto(s|10)
@@ -615,6 +640,7 @@ exten => s,9,Goto(sw-27-${DIALSTATUS}|10)
exten => s,10,NoOp(Finish switch-std-priv-exten_25-27)
exten => _sw-27-.,10,Voicemail(u${ext})
exten => _sw-27-.,11,Goto(s|10)
+exten => sw-27-,10,Goto(sw-27-.|10)
exten => sw-27-NOANSWER,10,Voicemail(u${ext})
exten => sw-27-NOANSWER,11,Goto(s|10)
exten => sw-27-ANSWER,10,Goto(s|10)
@@ -639,6 +665,7 @@ exten => s,9,Goto(sw-28-${DIALSTATUS}|10)
exten => s,10,NoOp(Finish switch-std-priv-exten_26-28)
exten => _sw-28-.,10,Voicemail(u${ext})
exten => _sw-28-.,11,Goto(s|10)
+exten => sw-28-,10,Goto(sw-28-.|10)
exten => sw-28-NOANSWER,10,Voicemail(u${ext})
exten => sw-28-NOANSWER,11,Goto(s|10)
exten => sw-28-ANSWER,10,Goto(s|10)
@@ -663,6 +690,7 @@ exten => s,9,Goto(sw-29-${DIALSTATUS}|10)
exten => s,10,NoOp(Finish switch-std-priv-exten_27-29)
exten => _sw-29-.,10,Voicemail(u${ext})
exten => _sw-29-.,11,Goto(s|10)
+exten => sw-29-,10,Goto(sw-29-.|10)
exten => sw-29-NOANSWER,10,Voicemail(u${ext})
exten => sw-29-NOANSWER,11,Goto(s|10)
exten => sw-29-ANSWER,10,Goto(s|10)
@@ -687,6 +715,7 @@ exten => s,9,Goto(sw-30-${DIALSTATUS}|10)
exten => s,10,NoOp(Finish switch-std-priv-exten_28-30)
exten => _sw-30-.,10,Voicemail(u${ext})
exten => _sw-30-.,11,Goto(s|10)
+exten => sw-30-,10,Goto(sw-30-.|10)
exten => sw-30-NOANSWER,10,Voicemail(u${ext})
exten => sw-30-NOANSWER,11,Goto(s|10)
exten => sw-30-ANSWER,10,Goto(s|10)
@@ -711,6 +740,7 @@ exten => s,9,Goto(sw-31-${DIALSTATUS}|10)
exten => s,10,NoOp(Finish switch-std-priv-exten_29-31)
exten => _sw-31-.,10,Voicemail(u${ext})
exten => _sw-31-.,11,Goto(s|10)
+exten => sw-31-,10,Goto(sw-31-.|10)
exten => sw-31-NOANSWER,10,Voicemail(u${ext})
exten => sw-31-NOANSWER,11,Goto(s|10)
exten => sw-31-ANSWER,10,Goto(s|10)
@@ -735,6 +765,7 @@ exten => s,9,Goto(sw-32-${DIALSTATUS}|10)
exten => s,10,NoOp(Finish switch-std-priv-exten_30-32)
exten => _sw-32-.,10,Voicemail(u${ext})
exten => _sw-32-.,11,Goto(s|10)
+exten => sw-32-,10,Goto(sw-32-.|10)
exten => sw-32-NOANSWER,10,Voicemail(u${ext})
exten => sw-32-NOANSWER,11,Goto(s|10)
exten => sw-32-ANSWER,10,Goto(s|10)
@@ -759,6 +790,7 @@ exten => s,9,Goto(sw-33-${DIALSTATUS}|10)
exten => s,10,NoOp(Finish switch-std-priv-exten_31-33)
exten => _sw-33-.,10,Voicemail(u${ext})
exten => _sw-33-.,11,Goto(s|10)
+exten => sw-33-,10,Goto(sw-33-.|10)
exten => sw-33-NOANSWER,10,Voicemail(u${ext})
exten => sw-33-NOANSWER,11,Goto(s|10)
exten => sw-33-ANSWER,10,Goto(s|10)
@@ -783,6 +815,7 @@ exten => s,9,Goto(sw-34-${DIALSTATUS}|10)
exten => s,10,NoOp(Finish switch-std-priv-exten_32-34)
exten => _sw-34-.,10,Voicemail(u${ext})
exten => _sw-34-.,11,Goto(s|10)
+exten => sw-34-,10,Goto(sw-34-.|10)
exten => sw-34-NOANSWER,10,Voicemail(u${ext})
exten => sw-34-NOANSWER,11,Goto(s|10)
exten => sw-34-ANSWER,10,Goto(s|10)
@@ -807,6 +840,7 @@ exten => s,9,Goto(sw-35-${DIALSTATUS}|10)
exten => s,10,NoOp(Finish switch-std-priv-exten_33-35)
exten => _sw-35-.,10,Voicemail(u${ext})
exten => _sw-35-.,11,Goto(s|10)
+exten => sw-35-,10,Goto(sw-35-.|10)
exten => sw-35-NOANSWER,10,Voicemail(u${ext})
exten => sw-35-NOANSWER,11,Goto(s|10)
exten => sw-35-ANSWER,10,Goto(s|10)
@@ -831,6 +865,7 @@ exten => s,9,Goto(sw-36-${DIALSTATUS}|10)
exten => s,10,NoOp(Finish switch-std-priv-exten_34-36)
exten => _sw-36-.,10,Voicemail(u${ext})
exten => _sw-36-.,11,Goto(s|10)
+exten => sw-36-,10,Goto(sw-36-.|10)
exten => sw-36-NOANSWER,10,Voicemail(u${ext})
exten => sw-36-NOANSWER,11,Goto(s|10)
exten => sw-36-ANSWER,10,Goto(s|10)
@@ -855,6 +890,7 @@ exten => s,9,Goto(sw-37-${DIALSTATUS}|10)
exten => s,10,NoOp(Finish switch-std-priv-exten_35-37)
exten => _sw-37-.,10,Voicemail(u${ext})
exten => _sw-37-.,11,Goto(s|10)
+exten => sw-37-,10,Goto(sw-37-.|10)
exten => sw-37-NOANSWER,10,Voicemail(u${ext})
exten => sw-37-NOANSWER,11,Goto(s|10)
exten => sw-37-ANSWER,10,Goto(s|10)
@@ -879,6 +915,7 @@ exten => s,9,Goto(sw-38-${DIALSTATUS}|10)
exten => s,10,NoOp(Finish switch-std-priv-exten_36-38)
exten => _sw-38-.,10,Voicemail(u${ext})
exten => _sw-38-.,11,Goto(s|10)
+exten => sw-38-,10,Goto(sw-38-.|10)
exten => sw-38-NOANSWER,10,Voicemail(u${ext})
exten => sw-38-NOANSWER,11,Goto(s|10)
exten => sw-38-ANSWER,10,Goto(s|10)
@@ -903,6 +940,7 @@ exten => s,9,Goto(sw-39-${DIALSTATUS}|10)
exten => s,10,NoOp(Finish switch-std-priv-exten_37-39)
exten => _sw-39-.,10,Voicemail(u${ext})
exten => _sw-39-.,11,Goto(s|10)
+exten => sw-39-,10,Goto(sw-39-.|10)
exten => sw-39-NOANSWER,10,Voicemail(u${ext})
exten => sw-39-NOANSWER,11,Goto(s|10)
exten => sw-39-ANSWER,10,Goto(s|10)
@@ -927,6 +965,7 @@ exten => s,9,Goto(sw-40-${DIALSTATUS}|10)
exten => s,10,NoOp(Finish switch-std-priv-exten_38-40)
exten => _sw-40-.,10,Voicemail(u${ext})
exten => _sw-40-.,11,Goto(s|10)
+exten => sw-40-,10,Goto(sw-40-.|10)
exten => sw-40-NOANSWER,10,Voicemail(u${ext})
exten => sw-40-NOANSWER,11,Goto(s|10)
exten => sw-40-ANSWER,10,Goto(s|10)
@@ -951,6 +990,7 @@ exten => s,9,Goto(sw-41-${DIALSTATUS}|10)
exten => s,10,NoOp(Finish switch-std-priv-exten_39-41)
exten => _sw-41-.,10,Voicemail(u${ext})
exten => _sw-41-.,11,Goto(s|10)
+exten => sw-41-,10,Goto(sw-41-.|10)
exten => sw-41-NOANSWER,10,Voicemail(u${ext})
exten => sw-41-NOANSWER,11,Goto(s|10)
exten => sw-41-ANSWER,10,Goto(s|10)
@@ -975,6 +1015,7 @@ exten => s,9,Goto(sw-42-${DIALSTATUS}|10)
exten => s,10,NoOp(Finish switch-std-priv-exten_40-42)
exten => _sw-42-.,10,Voicemail(u${ext})
exten => _sw-42-.,11,Goto(s|10)
+exten => sw-42-,10,Goto(sw-42-.|10)
exten => sw-42-NOANSWER,10,Voicemail(u${ext})
exten => sw-42-NOANSWER,11,Goto(s|10)
exten => sw-42-ANSWER,10,Goto(s|10)
@@ -999,6 +1040,7 @@ exten => s,9,Goto(sw-43-${DIALSTATUS}|10)
exten => s,10,NoOp(Finish switch-std-priv-exten_41-43)
exten => _sw-43-.,10,Voicemail(u${ext})
exten => _sw-43-.,11,Goto(s|10)
+exten => sw-43-,10,Goto(sw-43-.|10)
exten => sw-43-NOANSWER,10,Voicemail(u${ext})
exten => sw-43-NOANSWER,11,Goto(s|10)
exten => sw-43-ANSWER,10,Goto(s|10)
@@ -1023,6 +1065,7 @@ exten => s,9,Goto(sw-44-${DIALSTATUS}|10)
exten => s,10,NoOp(Finish switch-std-priv-exten_42-44)
exten => _sw-44-.,10,Voicemail(u${ext})
exten => _sw-44-.,11,Goto(s|10)
+exten => sw-44-,10,Goto(sw-44-.|10)
exten => sw-44-NOANSWER,10,Voicemail(u${ext})
exten => sw-44-NOANSWER,11,Goto(s|10)
exten => sw-44-ANSWER,10,Goto(s|10)
@@ -1047,6 +1090,7 @@ exten => s,9,Goto(sw-45-${DIALSTATUS}|10)
exten => s,10,NoOp(Finish switch-std-priv-exten_43-45)
exten => _sw-45-.,10,Voicemail(u${ext})
exten => _sw-45-.,11,Goto(s|10)
+exten => sw-45-,10,Goto(sw-45-.|10)
exten => sw-45-NOANSWER,10,Voicemail(u${ext})
exten => sw-45-NOANSWER,11,Goto(s|10)
exten => sw-45-ANSWER,10,Goto(s|10)
@@ -1071,6 +1115,7 @@ exten => s,9,Goto(sw-46-${DIALSTATUS}|10)
exten => s,10,NoOp(Finish switch-std-priv-exten_44-46)
exten => _sw-46-.,10,Voicemail(u${ext})
exten => _sw-46-.,11,Goto(s|10)
+exten => sw-46-,10,Goto(sw-46-.|10)
exten => sw-46-NOANSWER,10,Voicemail(u${ext})
exten => sw-46-NOANSWER,11,Goto(s|10)
exten => sw-46-ANSWER,10,Goto(s|10)
@@ -1095,6 +1140,7 @@ exten => s,9,Goto(sw-47-${DIALSTATUS}|10)
exten => s,10,NoOp(Finish switch-std-priv-exten_45-47)
exten => _sw-47-.,10,Voicemail(u${ext})
exten => _sw-47-.,11,Goto(s|10)
+exten => sw-47-,10,Goto(sw-47-.|10)
exten => sw-47-NOANSWER,10,Voicemail(u${ext})
exten => sw-47-NOANSWER,11,Goto(s|10)
exten => sw-47-ANSWER,10,Goto(s|10)
@@ -1119,6 +1165,7 @@ exten => s,9,Goto(sw-48-${DIALSTATUS}|10)
exten => s,10,NoOp(Finish switch-std-priv-exten_46-48)
exten => _sw-48-.,10,Voicemail(u${ext})
exten => _sw-48-.,11,Goto(s|10)
+exten => sw-48-,10,Goto(sw-48-.|10)
exten => sw-48-NOANSWER,10,Voicemail(u${ext})
exten => sw-48-NOANSWER,11,Goto(s|10)
exten => sw-48-ANSWER,10,Goto(s|10)
@@ -1143,6 +1190,7 @@ exten => s,9,Goto(sw-49-${DIALSTATUS}|10)
exten => s,10,NoOp(Finish switch-std-priv-exten_47-49)
exten => _sw-49-.,10,Voicemail(u${ext})
exten => _sw-49-.,11,Goto(s|10)
+exten => sw-49-,10,Goto(sw-49-.|10)
exten => sw-49-NOANSWER,10,Voicemail(u${ext})
exten => sw-49-NOANSWER,11,Goto(s|10)
exten => sw-49-ANSWER,10,Goto(s|10)
@@ -1167,6 +1215,7 @@ exten => s,9,Goto(sw-50-${DIALSTATUS}|10)
exten => s,10,NoOp(Finish switch-std-priv-exten_48-50)
exten => _sw-50-.,10,Voicemail(u${ext})
exten => _sw-50-.,11,Goto(s|10)
+exten => sw-50-,10,Goto(sw-50-.|10)
exten => sw-50-NOANSWER,10,Voicemail(u${ext})
exten => sw-50-NOANSWER,11,Goto(s|10)
exten => sw-50-ANSWER,10,Goto(s|10)
@@ -1191,6 +1240,7 @@ exten => s,9,Goto(sw-51-${DIALSTATUS}|10)
exten => s,10,NoOp(Finish switch-std-priv-exten_49-51)
exten => _sw-51-.,10,Voicemail(u${ext})
exten => _sw-51-.,11,Goto(s|10)
+exten => sw-51-,10,Goto(sw-51-.|10)
exten => sw-51-NOANSWER,10,Voicemail(u${ext})
exten => sw-51-NOANSWER,11,Goto(s|10)
exten => sw-51-ANSWER,10,Goto(s|10)
@@ -1215,6 +1265,7 @@ exten => s,9,Goto(sw-52-${DIALSTATUS}|10)
exten => s,10,NoOp(Finish switch-std-priv-exten_50-52)
exten => _sw-52-.,10,Voicemail(u${ext})
exten => _sw-52-.,11,Goto(s|10)
+exten => sw-52-,10,Goto(sw-52-.|10)
exten => sw-52-NOANSWER,10,Voicemail(u${ext})
exten => sw-52-NOANSWER,11,Goto(s|10)
exten => sw-52-ANSWER,10,Goto(s|10)
@@ -1239,6 +1290,7 @@ exten => s,9,Goto(sw-53-${DIALSTATUS}|10)
exten => s,10,NoOp(Finish switch-std-priv-exten_51-53)
exten => _sw-53-.,10,Voicemail(u${ext})
exten => _sw-53-.,11,Goto(s|10)
+exten => sw-53-,10,Goto(sw-53-.|10)
exten => sw-53-NOANSWER,10,Voicemail(u${ext})
exten => sw-53-NOANSWER,11,Goto(s|10)
exten => sw-53-ANSWER,10,Goto(s|10)
@@ -1263,6 +1315,7 @@ exten => s,9,Goto(sw-54-${DIALSTATUS}|10)
exten => s,10,NoOp(Finish switch-std-priv-exten_52-54)
exten => _sw-54-.,10,Voicemail(u${ext})
exten => _sw-54-.,11,Goto(s|10)
+exten => sw-54-,10,Goto(sw-54-.|10)
exten => sw-54-NOANSWER,10,Voicemail(u${ext})
exten => sw-54-NOANSWER,11,Goto(s|10)
exten => sw-54-ANSWER,10,Goto(s|10)
@@ -1287,6 +1340,7 @@ exten => s,9,Goto(sw-55-${DIALSTATUS}|10)
exten => s,10,NoOp(Finish switch-std-priv-exten_53-55)
exten => _sw-55-.,10,Voicemail(u${ext})
exten => _sw-55-.,11,Goto(s|10)
+exten => sw-55-,10,Goto(sw-55-.|10)
exten => sw-55-NOANSWER,10,Voicemail(u${ext})
exten => sw-55-NOANSWER,11,Goto(s|10)
exten => sw-55-ANSWER,10,Goto(s|10)
@@ -1311,6 +1365,7 @@ exten => s,9,Goto(sw-56-${DIALSTATUS}|10)
exten => s,10,NoOp(Finish switch-std-priv-exten_54-56)
exten => _sw-56-.,10,Voicemail(u${ext})
exten => _sw-56-.,11,Goto(s|10)
+exten => sw-56-,10,Goto(sw-56-.|10)
exten => sw-56-NOANSWER,10,Voicemail(u${ext})
exten => sw-56-NOANSWER,11,Goto(s|10)
exten => sw-56-ANSWER,10,Goto(s|10)
@@ -1335,6 +1390,7 @@ exten => s,9,Goto(sw-57-${DIALSTATUS}|10)
exten => s,10,NoOp(Finish switch-std-priv-exten_55-57)
exten => _sw-57-.,10,Voicemail(u${ext})
exten => _sw-57-.,11,Goto(s|10)
+exten => sw-57-,10,Goto(sw-57-.|10)
exten => sw-57-NOANSWER,10,Voicemail(u${ext})
exten => sw-57-NOANSWER,11,Goto(s|10)
exten => sw-57-ANSWER,10,Goto(s|10)
@@ -1359,6 +1415,7 @@ exten => s,9,Goto(sw-58-${DIALSTATUS}|10)
exten => s,10,NoOp(Finish switch-std-priv-exten_56-58)
exten => _sw-58-.,10,Voicemail(u${ext})
exten => _sw-58-.,11,Goto(s|10)
+exten => sw-58-,10,Goto(sw-58-.|10)
exten => sw-58-NOANSWER,10,Voicemail(u${ext})
exten => sw-58-NOANSWER,11,Goto(s|10)
exten => sw-58-ANSWER,10,Goto(s|10)
@@ -1383,6 +1440,7 @@ exten => s,9,Goto(sw-59-${DIALSTATUS}|10)
exten => s,10,NoOp(Finish switch-std-priv-exten_57-59)
exten => _sw-59-.,10,Voicemail(u${ext})
exten => _sw-59-.,11,Goto(s|10)
+exten => sw-59-,10,Goto(sw-59-.|10)
exten => sw-59-NOANSWER,10,Voicemail(u${ext})
exten => sw-59-NOANSWER,11,Goto(s|10)
exten => sw-59-ANSWER,10,Goto(s|10)
@@ -1407,6 +1465,7 @@ exten => s,9,Goto(sw-60-${DIALSTATUS}|10)
exten => s,10,NoOp(Finish switch-std-priv-exten_58-60)
exten => _sw-60-.,10,Voicemail(u${ext})
exten => _sw-60-.,11,Goto(s|10)
+exten => sw-60-,10,Goto(sw-60-.|10)
exten => sw-60-NOANSWER,10,Voicemail(u${ext})
exten => sw-60-NOANSWER,11,Goto(s|10)
exten => sw-60-ANSWER,10,Goto(s|10)
@@ -1431,6 +1490,7 @@ exten => s,9,Goto(sw-61-${DIALSTATUS}|10)
exten => s,10,NoOp(Finish switch-std-priv-exten_59-61)
exten => _sw-61-.,10,Voicemail(u${ext})
exten => _sw-61-.,11,Goto(s|10)
+exten => sw-61-,10,Goto(sw-61-.|10)
exten => sw-61-NOANSWER,10,Voicemail(u${ext})
exten => sw-61-NOANSWER,11,Goto(s|10)
exten => sw-61-ANSWER,10,Goto(s|10)
@@ -1455,6 +1515,7 @@ exten => s,9,Goto(sw-62-${DIALSTATUS}|10)
exten => s,10,NoOp(Finish switch-std-priv-exten_60-62)
exten => _sw-62-.,10,Voicemail(u${ext})
exten => _sw-62-.,11,Goto(s|10)
+exten => sw-62-,10,Goto(sw-62-.|10)
exten => sw-62-NOANSWER,10,Voicemail(u${ext})
exten => sw-62-NOANSWER,11,Goto(s|10)
exten => sw-62-ANSWER,10,Goto(s|10)
@@ -1479,6 +1540,7 @@ exten => s,9,Goto(sw-63-${DIALSTATUS}|10)
exten => s,10,NoOp(Finish switch-std-priv-exten_61-63)
exten => _sw-63-.,10,Voicemail(u${ext})
exten => _sw-63-.,11,Goto(s|10)
+exten => sw-63-,10,Goto(sw-63-.|10)
exten => sw-63-NOANSWER,10,Voicemail(u${ext})
exten => sw-63-NOANSWER,11,Goto(s|10)
exten => sw-63-ANSWER,10,Goto(s|10)
@@ -1503,6 +1565,7 @@ exten => s,9,Goto(sw-64-${DIALSTATUS}|10)
exten => s,10,NoOp(Finish switch-std-priv-exten_62-64)
exten => _sw-64-.,10,Voicemail(u${ext})
exten => _sw-64-.,11,Goto(s|10)
+exten => sw-64-,10,Goto(sw-64-.|10)
exten => sw-64-NOANSWER,10,Voicemail(u${ext})
exten => sw-64-NOANSWER,11,Goto(s|10)
exten => sw-64-ANSWER,10,Goto(s|10)
@@ -1527,6 +1590,7 @@ exten => s,9,Goto(sw-65-${DIALSTATUS}|10)
exten => s,10,NoOp(Finish switch-std-priv-exten_63-65)
exten => _sw-65-.,10,Voicemail(u${ext})
exten => _sw-65-.,11,Goto(s|10)
+exten => sw-65-,10,Goto(sw-65-.|10)
exten => sw-65-NOANSWER,10,Voicemail(u${ext})
exten => sw-65-NOANSWER,11,Goto(s|10)
exten => sw-65-ANSWER,10,Goto(s|10)
@@ -1551,6 +1615,7 @@ exten => s,9,Goto(sw-66-${DIALSTATUS}|10)
exten => s,10,NoOp(Finish switch-std-priv-exten_64-66)
exten => _sw-66-.,10,Voicemail(u${ext})
exten => _sw-66-.,11,Goto(s|10)
+exten => sw-66-,10,Goto(sw-66-.|10)
exten => sw-66-NOANSWER,10,Voicemail(u${ext})
exten => sw-66-NOANSWER,11,Goto(s|10)
exten => sw-66-ANSWER,10,Goto(s|10)
@@ -1575,6 +1640,7 @@ exten => s,9,Goto(sw-67-${DIALSTATUS}|10)
exten => s,10,NoOp(Finish switch-std-priv-exten_65-67)
exten => _sw-67-.,10,Voicemail(u${ext})
exten => _sw-67-.,11,Goto(s|10)
+exten => sw-67-,10,Goto(sw-67-.|10)
exten => sw-67-NOANSWER,10,Voicemail(u${ext})
exten => sw-67-NOANSWER,11,Goto(s|10)
exten => sw-67-ANSWER,10,Goto(s|10)
@@ -1599,6 +1665,7 @@ exten => s,9,Goto(sw-68-${DIALSTATUS}|10)
exten => s,10,NoOp(Finish switch-std-priv-exten_66-68)
exten => _sw-68-.,10,Voicemail(u${ext})
exten => _sw-68-.,11,Goto(s|10)
+exten => sw-68-,10,Goto(sw-68-.|10)
exten => sw-68-NOANSWER,10,Voicemail(u${ext})
exten => sw-68-NOANSWER,11,Goto(s|10)
exten => sw-68-ANSWER,10,Goto(s|10)
@@ -1623,6 +1690,7 @@ exten => s,9,Goto(sw-69-${DIALSTATUS}|10)
exten => s,10,NoOp(Finish switch-std-priv-exten_67-69)
exten => _sw-69-.,10,Voicemail(u${ext})
exten => _sw-69-.,11,Goto(s|10)
+exten => sw-69-,10,Goto(sw-69-.|10)
exten => sw-69-NOANSWER,10,Voicemail(u${ext})
exten => sw-69-NOANSWER,11,Goto(s|10)
exten => sw-69-ANSWER,10,Goto(s|10)
@@ -1647,6 +1715,7 @@ exten => s,9,Goto(sw-70-${DIALSTATUS}|10)
exten => s,10,NoOp(Finish switch-std-priv-exten_68-70)
exten => _sw-70-.,10,Voicemail(u${ext})
exten => _sw-70-.,11,Goto(s|10)
+exten => sw-70-,10,Goto(sw-70-.|10)
exten => sw-70-NOANSWER,10,Voicemail(u${ext})
exten => sw-70-NOANSWER,11,Goto(s|10)
exten => sw-70-ANSWER,10,Goto(s|10)
@@ -1671,6 +1740,7 @@ exten => s,9,Goto(sw-71-${DIALSTATUS}|10)
exten => s,10,NoOp(Finish switch-std-priv-exten_69-71)
exten => _sw-71-.,10,Voicemail(u${ext})
exten => _sw-71-.,11,Goto(s|10)
+exten => sw-71-,10,Goto(sw-71-.|10)
exten => sw-71-NOANSWER,10,Voicemail(u${ext})
exten => sw-71-NOANSWER,11,Goto(s|10)
exten => sw-71-ANSWER,10,Goto(s|10)
@@ -1695,6 +1765,7 @@ exten => s,9,Goto(sw-72-${DIALSTATUS}|10)
exten => s,10,NoOp(Finish switch-std-priv-exten_70-72)
exten => _sw-72-.,10,Voicemail(u${ext})
exten => _sw-72-.,11,Goto(s|10)
+exten => sw-72-,10,Goto(sw-72-.|10)
exten => sw-72-NOANSWER,10,Voicemail(u${ext})
exten => sw-72-NOANSWER,11,Goto(s|10)
exten => sw-72-ANSWER,10,Goto(s|10)
@@ -1719,6 +1790,7 @@ exten => s,9,Goto(sw-73-${DIALSTATUS}|10)
exten => s,10,NoOp(Finish switch-std-priv-exten_71-73)
exten => _sw-73-.,10,Voicemail(u${ext})
exten => _sw-73-.,11,Goto(s|10)
+exten => sw-73-,10,Goto(sw-73-.|10)
exten => sw-73-NOANSWER,10,Voicemail(u${ext})
exten => sw-73-NOANSWER,11,Goto(s|10)
exten => sw-73-ANSWER,10,Goto(s|10)
@@ -1743,6 +1815,7 @@ exten => s,9,Goto(sw-74-${DIALSTATUS}|10)
exten => s,10,NoOp(Finish switch-std-priv-exten_72-74)
exten => _sw-74-.,10,Voicemail(u${ext})
exten => _sw-74-.,11,Goto(s|10)
+exten => sw-74-,10,Goto(sw-74-.|10)
exten => sw-74-NOANSWER,10,Voicemail(u${ext})
exten => sw-74-NOANSWER,11,Goto(s|10)
exten => sw-74-ANSWER,10,Goto(s|10)
@@ -1767,6 +1840,7 @@ exten => s,9,Goto(sw-75-${DIALSTATUS}|10)
exten => s,10,NoOp(Finish switch-std-priv-exten_73-75)
exten => _sw-75-.,10,Voicemail(u${ext})
exten => _sw-75-.,11,Goto(s|10)
+exten => sw-75-,10,Goto(sw-75-.|10)
exten => sw-75-NOANSWER,10,Voicemail(u${ext})
exten => sw-75-NOANSWER,11,Goto(s|10)
exten => sw-75-ANSWER,10,Goto(s|10)
@@ -1791,6 +1865,7 @@ exten => s,9,Goto(sw-76-${DIALSTATUS}|10)
exten => s,10,NoOp(Finish switch-std-priv-exten-76)
exten => _sw-76-.,10,Voicemail(u${ext})
exten => _sw-76-.,11,Goto(s|10)
+exten => sw-76-,10,Goto(sw-76-.|10)
exten => sw-76-NOANSWER,10,Voicemail(u${ext})
exten => sw-76-NOANSWER,11,Goto(s|10)
exten => sw-76-ANSWER,10,Goto(s|10)
@@ -2012,6 +2087,7 @@ exten => s,103,Background(murphy-homeline-intro1)
exten => s,104,NoOp(End of Extension s)
exten => _sw-92-.,10,Set(z=${direct}-2)
exten => _sw-92-.,11,Goto(homeline-kids|${z}|1)
+exten => sw-92-,10,Goto(sw-92-.|10)
exten => sw-92-2,10,Macro(std-priv-exten|Zap/3r1&Zap/5r1|2|25|mtw|telemarket|telemarket)
exten => sw-92-2,11,Goto(s|loopback)
exten => sw-92-1,10,Macro(std-priv-exten|Zap/6r3&Sip/murf|1|25|mpA(beep)tw|telemarket|telemarket)
diff --git a/pbx/ael/ael-test/ref.ael-vtest17 b/pbx/ael/ael-test/ref.ael-vtest17
index 1a9adbbb3..16e8f218f 100644
--- a/pbx/ael/ael-test/ref.ael-vtest17
+++ b/pbx/ael/ael-test/ref.ael-vtest17
@@ -45,6 +45,7 @@ exten => 82,2,Verbose(Finished 100000 levels deep call!)
exten => 83,1,Goto(sw-2-${EXTEN}|10)
exten => 83,2,NoOp(Finish switch-extension-2)
exten => _sw-2-.,10,Goto(83|2)
+exten => sw-2-,10,Goto(sw-2-.|10)
exten => _sw-2-[4-7]X,10,Verbose(and this too!)
exten => _sw-2-[4-7]X,11,Goto(sw-2-.|10)
exten => _sw-2-9X,10,Verbose(handle both 8x and 9x calls)
diff --git a/pbx/pbx_ael.c b/pbx/pbx_ael.c
index eb86b5ab3..cf13d1628 100644
--- a/pbx/pbx_ael.c
+++ b/pbx/pbx_ael.c
@@ -2896,7 +2896,7 @@ static void gen_prios(struct ael_extension *exten, char *label, pval *statement,
struct ael_priority *pr;
struct ael_priority *for_init, *for_test, *for_inc, *for_loop, *for_end;
struct ael_priority *while_test, *while_loop, *while_end;
- struct ael_priority *switch_test, *switch_end, *fall_thru;
+ struct ael_priority *switch_test, *switch_end, *fall_thru, *switch_empty;
struct ael_priority *if_test, *if_end, *if_skip, *if_false;
#ifdef OLD_RAND_ACTION
struct ael_priority *rand_test, *rand_end, *rand_skip;
@@ -2909,7 +2909,7 @@ static void gen_prios(struct ael_extension *exten, char *label, pval *statement,
int local_control_statement_count;
struct ael_priority *loop_break_save;
struct ael_priority *loop_continue_save;
- struct ael_extension *switch_case;
+ struct ael_extension *switch_case,*switch_null;
for (p=statement; p; p=p->next) {
switch (p->type) {
@@ -3300,11 +3300,30 @@ static void gen_prios(struct ael_extension *exten, char *label, pval *statement,
switch_case-> return_target = np2;
}
} else if (p2->type == PV_DEFAULT) {
- default_exists++;
/* ok, generate a extension and link it in */
switch_case = new_exten();
switch_case->context = this_context;
switch_case->is_switch = 1;
+
+ /* new: the default case intros a pattern with ., which covers ALMOST everything.
+ but it doesn't cover a NULL pattern. So, we'll define a null extension to match
+ that goto's the default extension. */
+
+ default_exists++;
+ switch_null = new_exten();
+ switch_null->context = this_context;
+ switch_null->is_switch = 1;
+ switch_empty = new_prio();
+ snprintf(buf1,sizeof(buf1),"sw-%d-.|10",local_control_statement_count);
+ switch_empty->app = strdup("Goto");
+ switch_empty->appargs = strdup(buf1);
+ linkprio(switch_null, switch_empty);
+ snprintf(buf1,sizeof(buf1),"sw-%d-", local_control_statement_count);
+ switch_null->name = strdup(buf1);
+ switch_null->loop_break = exten->loop_break;
+ switch_null->loop_continue = exten->loop_continue;
+ linkexten(exten,switch_null);
+
/* the break/continue locations are inherited from parent */
switch_case->loop_break = exten->loop_break;
switch_case->loop_continue = exten->loop_continue;
@@ -3314,7 +3333,7 @@ static void gen_prios(struct ael_extension *exten, char *label, pval *statement,
snprintf(new_label,sizeof(new_label),"sw-%s-default-%d", label, local_control_statement_count);
- gen_prios(switch_case, new_label, p2->u2.statements, exten, this_context); /* this will link in all the while body statements here */
+ gen_prios(switch_case, new_label, p2->u2.statements, exten, this_context); /* this will link in all the default: body statements here */
/* here is where we write code to "fall thru" to the next case... if there is one... */
for (p3=p2->u2.statements; p3; p3=p3->next) {