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()


Asterisk Schulung

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

noch-ne-auto-seite.de

Das gedruckte Buch

Werbung

Asterisk-Tag.org 2008

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