Macro( )


Macro( ) Calls a previously defined macro

 Macro(   macroname   ,   arg1   ,   arg2   ...) 

Executes a macro defined in the context named macro- macroname , jumping to the s extension of that context and executing each step, then returning when the steps end.

The calling extension, context, and priority are stored in ${MACRO_EXTEN} , ${MACRO_CONTEXT} , and ${MACRO_PRIORITY} , respectively. Arguments arg1 , arg2 , etc. become ${ARG1} , ${ARG2} , etc. in the macro context.

Macro( ) returns -1 if any step in the macro returns -1 , and otherwise . If ${MACRO_OFFSET} is set at termination, this application will attempt to continue at priority MACRO_OFFSET + n +1 if such a step exists, and at n +1 otherwise. (In both cases, n stands for the current priority.)

If you call the Goto( ) application inside of the macro, the macro will terminate and control will go to the destination of the Goto( ) .

 ; define a macro to count down from the specified value     [macro-countdown]     exten => s,1,Set(COUNT=${ARG1})     exten => s,2,While($[ ${COUNT} > 0])     exten => s,3,SayNumber(${COUNT})     exten => s,4,Set(COUNT=$[ ${COUNT} - 1 ])     exten => s,5,EndWhile(  )     ; call our macro with two different values     [example]  exten => 123,1,Macro(countdown,10)     exten => 124,1,Macro(countdown,5)  

See Also

Goto( ) , Chapter 6



Asterisk. The Future of Telephony
Asterisk: The Future of Telephony: The Future of Telephony
ISBN: B0026OR3OO
EAN: N/A
Year: 2001
Pages: 380

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net