[asterisk-users] ael context ~~s~~ in macros broke Dial() U() option in 1.6.2.17.2 and newer

Mark G Thomas Mark at Misty.com
Thu May 5 16:14:11 CDT 2011


Hi,

I think this must be a bug introduced with 1.6.2.17.something.

When I upgrade from asterisk-1.6.2.16.1 to asterisk-1.6.2.17.2 or 1.6.2.18,
my AEL Dial() commands with the "U" options fail with the following error:

[May  3 12:05:54] ERROR[6300] app_stack.c: Attempt to reach a non-existent 
    destination for gosub: (Context:screen, Extension:s, Priority:1)

Here are the segments of the ael:
---------------------------------------
  ...
  Dial(${MARKCELL},30,tgU(screen));
  ...

  macro screen() {
    Wait(0.5);
    Read(ACCEPT,followme/options,1,,1,20);
    if( "${ACCEPT}" = "1" ) {
        Background(connecting);
    } else {
        Set(GOSUB_RESULT=CONTINUE);
    };
    return;
  };

And, here is the dialplan created from my above ael. The change is obvious,
but I'm not sure if there is some way I can fix this in my AEL, or if this
is just a bug that needs to be fixed.

asterisk-1.6.2.17.2 and asterisk-1.6.2.18:
-----------------------------------------------
[ Context 'screen' created by 'pbx_ael' ]
  '~~s~~' =>        1. Wait(0.5)                                  [pbx_ael]
                    2. Read(ACCEPT,followme/options,1,,1,20)      [pbx_ael]
                    3. GotoIf($[ "${ACCEPT}" = "1" ]?4:6)         [pbx_ael]
                    4. Background(connecting)                     [pbx_ael]
                    5. Goto(7)                                    [pbx_ael]
                    6. Set(GOSUB_RESULT=CONTINUE)                 [pbx_ael]
                    7. NoOp(Finish if_screen_139)                 [pbx_ael]
                    8. Return()                                   [pbx_ael]

asterisk-1.6.2.16.1:
-----------------------------------------------
[ Context 'screen' created by 'pbx_ael' ]
  's' =>            1. Wait(0.5)                                  [pbx_ael]
                    2. Read(ACCEPT,followme/options,1,,1,20)      [pbx_ael]
                    3. GotoIf($[ "${ACCEPT}" = "1" ]?4:6)         [pbx_ael]
                    4. Background(connecting)                     [pbx_ael]
                    5. Goto(7)                                    [pbx_ael]
                    6. Set(GOSUB_RESULT=CONTINUE)                 [pbx_ael]
                    7. NoOp(Finish if_screen_28)                  [pbx_ael]
                    8. Return()                                   [pbx_ael]

-- 
Mark G. Thomas (Mark at Misty.com)



More information about the asterisk-users mailing list