Ruft ein zuvor definiertes Makro auf. Aber nur eins zu einem gegebenen Zeitpunkt.
MacroExclusive(macroname
[,Arg1
[,Arg2
[,...
]]])
Führt - wie Macro()
- ein im Context
macro-
definiertes Makro
aus (und nur das eine!), indem es zur macroname
s
-Extension dieses
Contextes springt und nach der Ausführung des Makros zurückkehrt. Wird das
Macro während es bereits läuft an einer anderen Stelle des Dialplanes noch
einmal aufgerufen, so muss diese Instanz warten, bis das erste Macro
fertig abgearbeitet ist.
Die angerufene Extension, Context und Priorität sind innerhalb
des Makros in ${MACRO_EXTEN}
, ${MACRO_CONTEXT}
und ${MACRO_PRIORITY}
verfügbar. Die Parameter
Arg1
, Arg2
... werden im MakroContext zu
${ARG1}
, ${ARG2}
usw.
Macro()
liefert -1 zurück, falls irgendein Schritt
des Makros -1 zurückliefert, sonst 0. Falls bei Beendigung des Ablaufs
${MACRO_OFFSET}
gesetzt ist, versucht die Anwendung bei
Priorität n+1+MACRO_OFFSET
fortzufahren, falls ein solcher
Schritt existiert, sonst bei n+1.
Falls die Goto()
-Anwendung aus dem Makro heraus
aufgerufen wird, wird das Makro enden und die Kontrolle an das Ziel von
Goto()
gehen.
; ein Makro definieren, das vom übergebenen Wert runterzählt: [macro-countdown] exten => s,1,Set(COUNT=${ARG1}) exten => s,n,While($[ ${COUNT} > 0]) exten => s,n,SayNumber(${COUNT}) exten => s,n,Set(COUNT=$[ ${COUNT} - 1 ]) exten => s,n,EndWhile() [default] exten => 123,1,MacroExclusive(countdown,3) ; das Makro "countdown" mit ARG1=3 aufrufen exten => 124,1,MacroExclusive(countdown,5) ; das Makro "countdown" mit ARG1=5 aufrufen
Anmerkung | |
---|---|
Interner Hilfetext zu dieser Applikation in Asterisk 1.4: -= Info about application 'MacroExclusive' =- [Synopsis] Exclusive Macro Implementation [Description] MacroExclusive(macroname|arg1|arg2...): Executes macro defined in the context 'macro-macroname' Only one call at a time may run the macro. (we'll wait if another call is busy executing in the Macro) Arguments and return values as in application Macro() Differenz zum internen Hilfetext in Asterisk 1.2: -- in Version 1.2 nicht vorhanden -- |
Siehe auch. Abschnitt 58, „Macro()
“, Abschnitt 49, „Goto()
“, Abschnitt 47, „Gosub()
“,
doc/macroexclusive.txt
Asterisk Schulung
- 27.10. - 28.10.2008 in Koblenz
2.1 Beta-Version!
2.1 Beta-Version des Asterisk Buches. Die 1.0 stabile Version ist ebenfalls online. Bitte melden Sie Fehler und Feedback per E-Mail an den Autor.
YouTube Screencasts
Kostenlose Asterisk Screencasts mit jeweils 10 minütigen Erklärungen zu Spezial-Themen.
Shameless Plug
Das gedruckte Buch
Werbung
Asterisk-Tag.org 2008
Auf der Asterisk-Tag.org Webseite finden Sie die Folien und Videos der Vorträge.