Hi, This is still broken in 1.6.2.20. Please see below.
On Fri, May 06, 2011 at 04:27:42PM +0000, Watkins, Bradley wrote: > >From: [email protected] [mailto:asterisk-users- > >[email protected]] On Behalf Of Mark G Thomas > >Sent: Friday, May 06, 2011 12:02 PM > >To: Asterisk Users Mailing List - Non-Commercial Discussion > >Subject: Re: [asterisk-users] ael context ~~s~~ in macros broke Dial() U() > >option in 1.6.2.17.2 and newer > > > >Hi, > > > >On Thu, May 05, 2011 at 05:30:04PM -0400, Paul Belanger wrote: > >> On 11-05-05 05:14 PM, Mark G Thomas wrote: > >> >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) > >> > > >> You might want to have a look at: > >> https://issues.asterisk.org/view.php?id=18910 > > > >Thanks. This is it. > > > >If I'm reading this right, it describes the change which broke things for me, > >but no solution applicable to my Dial() command U flag, which is invoking my > >AEL GoSub (Macro). Switching the Dials back to the M flag doesn't fix it > >either. > > > >It sure seems to me this change to AEL has had unexpected consequences in > >terms of breaking things in dialplans. > > > > I was under the impression that this had been fixed, although perhaps it's > not yet in a release. Is there a chance you try with the latest 1.6.2 branch > from SVN? > > - Brad In AEL, Dial() with the U flag is still broken. Reverting to a pre-1.6.2.17.2 pval.c fixes the problem. [Aug 8 13:36:01] ERROR[24608]: app_stack.c:402 gosub_exec: Attempt to reach a non-existent destination for gosub: (Context:screen, Extension:s, Priority:1) My AEL dialplan segment: -------------------------- context internals { 102 => { Dial(${MARKCELL},30,tgU(screen)); jump s@home-menu; }; }; macro screen() { Wait(0.5); Read(ACCEPT,followme/options,1,,1,20); if( "${ACCEPT}" = "1" ) { Background(connecting); } else { Set(GOSUB_RESULT=CONTINUE); }; return; }; Here's the dialplan it created under 1.6.2.20, but U(screen) in Dial() tries to call screen,s which doesn't exist. ----------------------------------------------------------- [ Context 'internals' created by 'pbx_ael' ] '102' => 1. Dial(${MARKCELL},30,tgU(screen)) [pbx_ael] 2. Goto(home-menu,s,1) [pbx_ael] [ 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_25) [pbx_ael] 8. Return() [pbx_ael] This works, from an earlier version, before the pval.c change: ---------------------------------------------------------------- [ 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_25) [pbx_ael] 8. Return() [pbx_ael] -- Mark G. Thomas ([email protected]) Web: http://mgtinternet.com/ Tel: +1-215-512-0112 US: 877-512-0112 -- _____________________________________________________________________ -- Bandwidth and Colocation Provided by http://www.api-digital.com -- New to Asterisk? Join us for a live introductory webinar every Thurs: http://www.asterisk.org/hello asterisk-users mailing list To UNSUBSCRIBE or update options visit: http://lists.digium.com/mailman/listinfo/asterisk-users
