Konfigurationsdateien wie die sip.conf
,
iax.conf
etc. haben oft viele ähnliche Einträge und
sind dadurch schlecht wartbar.
Das könnte in einer normalen sip.conf
stehen:
[201] username=201 secret=1111 context=default type=friend qualify=yes host=dynamic canreinvite=no [202] username=202 secret=2222 context=default type=friend qualify=yes host=dynamic canreinvite=no [203] username=203 secret=3333 context=default type=friend qualify=yes host=dynamic canreinvite=no
Asterisk bietet aber die kaum bekannte Möglichkeit, hierfür Templates zu verwenden. Mit einem Template für unsere Telefone sähe das so aus:
[meine-telefone](!) ; dieser Abschnitt ist das Template context=default type=friend qualify=yes host=dynamic canreinvite=no [201](meine-telefone) ; Telefon 201 username=201 secret=1111 [202](meine-telefone) ; Telefon 202 username=202 secret=2222 [203](meine-telefone) ; Telefon 203 username=203 secret=3333
Das ist besonders interssant, wenn man verschiedene Gruppen oder
Klassen von sehr ähnlichen Einträgen hat, also wenn nicht die Möglichkeit
besteht, einfach alle Gemeinsamkeiten in den Abschnitt
[general]
zu schreiben. Schon in diesem einfachen Beispiel
haben wir uns ein paar Zeilen gespart und können vor allem Veränderungen für
alle Telefone der „Klasse“ meine-telefone
an
zentraler Stelle vornehmen.
Prinzipiell kann jeder Abschnitt als Template für andere dienen,
aber mit der Markierung (!)
zeigt man dem Parser an, dass
dieser Abschnitt ausschließlich als Template dient
und selbst nicht benutzt wird. Wichtig ist, dass zwischen den eckigen und
runden Klammern keine Leerzeichen stehen. Templates können auch selbst
wieder auf Templates basieren.
[meine-beispiel-template](!) context=default type=friend qualify=yes host=dynamic canreinvite=no
Templates verwendet man durch Angabe von
(
direkt - ohne
Leerzeichen! - hinter dem Abschnittsbeginn. Dadurch wird zuerst das
angegebene Template eingebunden und dann die weiteren Parameter im
Abschnitt ausgewertet. Abschnitte können sogar von mehreren Templates
erben, z.B. so:Templatename
)
[201](meine-telefone,verkauf) ; erbt von "meine-telefone" und von "verkauf" username=201 secret=1111
Bei Bedarf kann man pro Abschnitt die Einstellungen aus dem Template überschreiben.
[telefone](!) ; Template "telefone" type=friend qualify=yes dtmfmode=rfc2833 disallow=all allow=alaw [snom](!,telefone) ; Template "snom", erbt von "telefone" dtmfmode=inband [linksys](!,telefone) ; Template "linksys", erbt von "telefone" qualify=no [snom1](snom) ; Abschnitt "snom1", erbt von "snom" username=101 secret=123 [snom2](snom) ; Abschnitt "snom2", erbt von "snom" username=102 secret=123 [linksys1](linksys) ; Abschnitt "linksys1", erbt von "linksys" username=103 secret=123
Weitere Beispiele: http://www.voip-info.org/wiki/index.php?page=Asterisk+config+template
Version 1.2, November 2002
Neue Version verfügbar
Sie betrachten gerade die alte Version des Buches (Version 1.0). Wir empfehlen Ihnen für Asterisk 1.4 und 1.6 die neue Version des Buches.
Asterisk-Tag 2008
Lernen Sie Mark Spencer (den Erfinder von Asterisk) kennen! Viele Vorträge, Case-Studies und Workshops rund um das Thema VoIP. Asterisk-Tag.org