Wird im Lauf eines Gespräches ein weiterer Channel aufgebaut, so hat dieser natürlich wieder eigene Channel-Variablen.
Will man eine Channel-Variable übergeben, aber keine globale
Variable dafür benutzen, so kann man der Channel-Variable ein
_
(Underscore) voransetzen. Diese Channel-Variable wird
dann an den nächsten Channel vererbt. Dabei wird der Underscore
entfernt. Die Vererbung kann also nur einmal erfolgen.
Beispiel:
exten => 1234,1,Set(_KUCHENSORTE="Marmorkuchen")
Will man eine Channel-Variable beliebig oft vererben, so muss
man zwei __
(Underscore)-Zeichen vor die Variable setzen.
Die zwei Underscore-Zeichen werden dann immer mitvererbt.
![]() |
|
Asterisk unterscheidet die Namen von Variablen, die mit einem
Underscore anfangen, nicht von Variablen, die keinen Underscore
haben. So wird im folgenden Beispiel aus der vererbbaren
Channel-Variable exten => 1234,1,Set(__KUCHENSORTE="Marmorkuchen") exten => 1234,n,Set(KUCHENSORTE="Marmorkuchen") |
Beispiel:
exten => 1234,1,Set(__KUCHENSORTE="Nusskuchen")
Bei einem Abruf einer vererbten Channel-Variable ist es egal, ob man die Unterstriche voranstellt oder nicht. Die beiden folgenden Zeilen geben zweimal den gleichen Wert im CLI aus:
exten => 1234,1,NoOp(${__KUCHENSORTE}) exten => 1234,n,NoOp(${KUCHENSORTE})