[Home]

Summary:ASTERISK-18362: AEL: jump doesn't work as 'jump +123456789;'
Reporter:Dennis (kokoloris)Labels:
Date Opened:2011-08-30 02:27:53Date Closed:2019-04-11 15:11:18
Priority:MinorRegression?
Status:Closed/CompleteComponents:Utilities/aelparse
Versions:1.8.5.0 13.18.4 Frequency of
Occurrence
Constant
Related
Issues:
duplicatesASTERISK-14939 AEL parsers does not find existing label
Environment:Linux version 2.6.26-2-486 (Debian 2.6.26-26lenny3) (dannf@debian.org) (gcc version 4.1.3 20080704 (prerelease) (Debian 4.1.2-25)) #1 Sat Jun 11 14:47:34 UTC 2011 Attachments:
Description:I want to add a quick dialing number to my dial-plan by using the jump command. Therefore I added "47 => jump +49123456789;" to my ael code. The whole context is the following:
{code}
context outgoing {
   _00Z. => jump +${EXTEN:2};
   _0Z.  => jump +49${EXTEN:1};
   _Z.   => jump +49421${EXTEN};

   _+X.  => &enumcall(${EXTEN});

   47 => jump +49123456789;
}
{code}

The first three jump commands work fine. The last one fails in ael parsing with the following error:
{quote}
[Aug 14 22:07:28] ERROR[10292]: ael/pval.c:1265 check_goto: Error: file /etc/asterisk/extensions.ael, line 70-70: goto:  no label '+49123456789,1' exists in the current context, or any of its inclusions!
[Aug 14 22:07:28] ERROR[10292]: ael/pval.c:1265 check_goto: Error: file /etc/asterisk/extensions.ael, line 70-70: goto:  no label '+49123456789,1' exists in the current context, or any of its inclusions!
[Aug 14 22:07:28] ERROR[10292]: pbx_ael.c:151 pbx_load_module: Sorry, but 0 syntax errors and 2 semantic errors were detected. It doesn't make sense to compile.
{quote}


By modifying the last line into "jump 0049123456789;", my whole context is working pretty well.
Comments:By: Leif Madsen (lmadsen) 2011-09-13 07:50:42.644-0500

While I don't think it *should* matter, does order matter here? What happens if you place it above the _+X. line?

By: Dennis (kokoloris) 2011-09-13 12:41:16.337-0500

You're right. It doesn't matter ...

By: Leif Madsen (lmadsen) 2011-09-14 09:41:03.004-0500

OK Acknowledging this issue. AEL however is a community supported module, so you'll need to either provide a patch, or see if you can get someone from the community to take up the cause. Thanks!

By: GR Abbel (Grabbel) 2013-10-01 16:20:54.728-0500

Hi, I noticed this too, as it is still not working in Asterisk 11, also for a context that defines speed dials and jumps with the plus sign + to another context. This really is a serious bug, because if I hadn't found this thread I would have thought I did something wrong.

Note that the problem here is just the AEL check that fails during parsing. If you add an empty dummy {{extension _. => NoOp();}} the AEL check passes, and matching on + is just functional (as the matching itself is just done by regular Asterisk, which correctly sees the plus signs).

An easy workaround I found is to just add brackets to the plus sign:
{{_[+]X.  => &enumcall($\{EXTEN\});}}

Then the AEL checks pass and it's valid and intended syntax too.

But still, can someone step up and correct this properly?