Nick Barnes
2005-Jan-25 08:16 UTC
[Asterisk-Users] Goto invalid extension doesn't go to 'I' when in a macro.
Hi, A bit of a problem here which I'd appreciate some thoughts on. (please excuse the stray capital letters - Outlook has a habit of capitalising where I don't want it to!) For various reasons, I need to be able to do the following: --------------8<-------------- [default] Exten => s,1,Macro(dosomething,9999) Exten => s,2,NoOp(Returned) [macro-dosomething] Exten => s,1,Goto(${ARG1},1) Exten => _[123]XXX,1,NoOp(Success) Exten => I,1,NoOp(Failure) --------------8<-------------- Which should allow me to trap an invalid entry from the caller. If ${ARG1} contains, say, 2000, it all works fine. However, in the above example where ${ARG1} contains 9999, the macro just finishes and control is returned to the calling context - i.e. the extension 'i' in [macro-dosomething] never gets called. This is completely different behaviour than when Goto() is used in a non-macro context - e.g.: --------------8<-------------- [default] Exten => s,1,Goto(9999,1) Exten => _[123]XXXX,1,NoOp(Success) Exten => I,1,NoOp(Failure) --------------8<-------------- Where control is passed to 'I' as expected. The only way I have found around this is to include another context to allow me to have: Exten => _[123]XXXX,1,NoOp(Success) And Exten => _.,1,NoOp(Failure) In the same context. Is this a bug or intentional behaviour? Does anybody else have a fix for this? Cheers, Nick.