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 0 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
|