Allgemeines

Variablennamen müssen nicht wie in unseren Beispielen großgeschrieben werden und sind auch nicht an Groß- und Kleinschreibung gebunden. Die Großschreibung von Variablen führt aber meistens zu besser lesbarem Code, da Sie bereits an der Schreibweise erkennen können, dass es sich um eine Variable handelt. Umgekehrt bedeutet das aber auch, dass Groß- und Kleinschreibung nicht für die Unterscheidung von Variablen verwendet werden kann.

[Wichtig]

Die von Asterisk selbst generierten Variablen wie ${EXTEN} müssen immer in Großbuchstaben geschrieben werden.

Strings

Strings (als Variablen, die keine Zahlen, sondern Text enthalten) sollten immer in Anführungszeichen gesetzt werden. Asterisk akzeptiert sie aber auch ohne diese Markierung. So sind die folgenden zwei Zeilen im Ergebnis gleich:

exten => 1234,1,Set(OBST=Apfel)
exten => 1234,2,Set(OBST="Apfel")

Sollte der String ein Komma oder ein Leerzeichen enthalten, dann müssen Sie Anführungszeichen verwenden, da diese sonst als Kommandos und nicht als Strings interpretiert werden:

exten => 1234,1,Set(OBSTSORTEN="Apfel, Birne, usw.")

Quoting

Bei einer Variablen, die Zeichen oder Zeichenfolgen (Wörter, Text) als Werte enthält, kann es vorkommen, dass man bestimmte Zeichen verwenden möchte, die bereits für andere Funktionen reserviert sind. Wollen Sie zum Beispiel ein Underscore-Zeichen als Bestandteil des Variablenwertes verwenden, müssen Sie es besonders kennzeichnen, bzw. maskieren. Diese Kennzeichnung nennt man beim Programmieren escapen. Folgende Zeichen müssen auf jeden Fall maskiert („escaped“) werden:

[ ] $ " \

Das Quoting in der extensions.conf erfolgt mit einem vorangestellten \ (Backslash).

Beispiel:

exten => 1234,1,Set(BETRAG="10,00 US \$")

Integer

Bestehen Variablen aus einer Ganzzahl (Integer), so kann diese maximal 18 Stellen betragen. Bei Zahlen, die größer sind, tritt ein Fehler auf, der im Logfile protokolliert wird.

[Tipp]

Wer mit größeren oder Kommazahlen (Real) arbeiten will, kann dies mit einem AGI-Skript realisieren (siehe Kapitel 17, Asterisk Gateway Interface (AGI)).