110. Set()

Setzt eine Variable auf den angegebenen Wert.

Set(Variable=Wert[,Variable2=Wert2,...][,Optionen])

Setzt die Variable auf den angegebenen Wert. Beginnt der Name der Variablen mit dem Zeichen _, wird einfache Vererbung angenommen (d.h. wird auf Kanäle vererbt, die von diesem Channel erzeugt werden), beginnt er mit __, wird Endlosvererbung angenommen (d.h. wird auf alle Kinder-Kanäle vererbt). Bis zu 24 Variablen können gesetzt werden. Variablen sind normalerweise nur innerhalb eines Channels gültig und werden beim Auflegen gelöscht. Mit der Option g setzt man in Asterisk 1.2 eine Variable (nicht eine Funktion!) global; in 1.4 macht man das mit Hilfe der Funktion GLOBAL().

; die Variable TEST auf "123" setzen:
exten => 123,1,Set(TEST=123)
exten => 123,n,SayDigits(${TEST})

; die globale Variable TEST2 auf "456" setzen:
exten => 123,n,Set(TEST2=456,g)         ; Asterisk 1.2
exten => 123,n,Set(GLOBAL(TEST2)=456)   ; Asterisk 1.4
[Anmerkung]Anmerkung

Ob globale Variablen auch nach einem Reload von Asterisk noch gültig sind, wird durch die Einstellung clearglobalvars in der extensions.conf bestimmt.

Set() wird auch verwendet, um in Funktionen zu schreiben (siehe Anhang C, Funktionen im Dialplan).

exten => 123,1,Set(CALLERID(name)=Apfelmus)  ; CALLERID(name) setzen
exten => 123,n,Set(CALLERID(name)=)          ; CALLERID(name) leeren

exten => 123,n,Set(DB(mein/test)=ok)         ; in AstDB schreiben
exten => 123,n,Set(var=${DB(mein/test)})     ; aus AstDB lesen
[Anmerkung]Anmerkung

Interner Hilfetext zu dieser Applikation in Asterisk 1.4: 

  -= Info about application 'Set' =- 

[Synopsis]
Set channel variable(s) or function value(s)

[Description]
  Set(name1=value1|name2=value2|..[|options])
This function can be used to set the value of channel variables or dialplan
functions. It will accept up to 24 name/value pairs. When setting variables,
if the variable name is prefixed with _, the variable will be inherited into
channels created from the current channel. If the variable name is prefixed
with __, the variable will be inherited into channels created from the current
channel and all children channels.
  Options:
    g - Set variable globally instead of on the channel
        (applies only to variables, not functions)

Differenz zum internen Hilfetext in Asterisk 1.2: 

- keine - 

Siehe auch. Abschnitt 54, „ImportVar(), doc/README.variables (1.2) / doc/channelvariables.txt (1.4), Abschnitt 21, „GLOBAL()


$Revision:473 $

Beta-Version!

2.0 Entwickler-Version des Asterisk Buches. Die 1.0 stabile Version ist natürlich noch online. Die 2.0er Version enthält viele Neuerungen, ist aber noch nicht 100% fehlerfrei. Im Zweifelsfall bitte auf die 1.0er Version gehen.

Bitte melden Sie Fehler und Feedback zur neuen 2.0er Version per E-Mail an den Autor.

Asterisk-Tag.org 2008

Auf der Asterisk-Tag.org Webseite finden Sie die Folien und Videos der Vorträge.

Werbung