Coverbild des Asterisk Buches von Stefan Wintermeyer

Letzte Woche => Endspurt!

Montag den 29.01.07 geht das Buch in die Produktion. Bis dahin laeuft der Beta-Test noch in vollem Umfang. Bitte melden Sie Fehler! Siehe Beta-Test FAQ.

Erscheinungstermin: 03.03.07. Das Buch wird auf dem Asterisk-Tag.org in Chemnitz vorgestellt und kann dort auch erworben werden. 10 Tage spaeter wird es im Buchhandel sein. Wer nicht in Chemnitz sein kann, sollte das Buch vorbestellen: Amazon oder direkt beim Verlag

Asterisk-Schulungen und Consulting vom Autor dieses Buches finden Sie auf http://www.amooma.de. Naechste Asterisk-Schulung: 12.02. - 13.02.07 (noch 2 Plaetze frei) - Ach ja, ... wir suchen auch noch Asterisk Entwickler! => http://www.amooma.de/jobs/


5.5. Vererbung von Channel-Variablen

Wird im Lauf eines Gespräches ein weiterer Channel aufgebaut, so hat dieser natürlich wieder eigene Channel-Variablen.

5.5.1. Einstufige Vererbung

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

5.5.2. Mehrstufige Vererbung

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.

Warnung

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 KUCHENSORTE eine normale (nicht vererbbare) 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})