On Mon, 30 Nov 2015 09:40:50 -0600 Matthew Jordan <[email protected]> wrote:
> On Sat, Nov 28, 2015 at 7:14 AM, Ethy H. Brito <[email protected]> > wrote: > > > > > Hi > > > > I have a 3 level nested while-endwhile loop in a macro that when the > > execution reaches endwhile, it is jumping out to the While at the caller > > macro. > > > > It shouldn't since the are instructions after the endwhile. > > > > -- Executing [s@macro-call-from-outside:72] > > EndWhile("DAHDI/i1/1234567-4a7f", "") in new stack > > == Channel 'DAHDI/i1/1234567-4a7f' jumping out of macro > > 'call-from-outside' > > -- Executing [s@macro-recurse_check_redirect_not_mailbox:7] > > While("DAHDI/i1/1234567-4a7f", "1") in new stack > > > > I checked the while-endwhile balance and it seems ok. > > I also checked if I GoTo() outside the loop. I don't. > > > > Macroexit is executed inside the while-endwhile loop in certain cases > > exiting some inner loop. > > > > Could MacroExiting inside a while loop cause this lost of balance? > > > > > Yes it could. A While loop should be terminated with an EndWhile. I've already suspected that. I did some changes in the code. It is now running smooth. BTW, is there a "breakwhile" or something like that, that jumps out of a while-endwhile loop? Just like the "C" break command. > > Both the While application as well as the Macro application attempt to > control the PBX flow while a channel is executing within them. Terminating > an outer container of PBX flow without properly terminating an inner one > can inbalance the stack. > > And just as a reminder, Macros are deprecated. They tend to have odd side > effects at times, and overly nesting Macros can result in a crash. You > should consider switching to subroutines. Can you please point me some good tutorial on converting Macros to subroutines? Or on subroutines operation themselves? Regards Ethy > > Matt > -- _____________________________________________________________________ -- 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
