Die Datei /etc/asterisk/extensions.conf
ist
das Herz jeder Asterisk-Konfiguration (siehe auch Kapitel 4, Programmieren im Dialplan). Sie ist vergleichbar mit einer
Schaltzentrale bei frühen Telefonanlagen. In dieser
Konfigurationsdatei wird bestimmt, welches Telefon mit welchem Telefon
Kontakt aufnehmen darf.
[sonstige]
Diese erste Sektion
der Konfiguration ist für den Context sonstige
bestimmt.
Da wir dieses in diesem Beispiel nicht benötigen, ist sie
leer.
[meine-telefone] exten => 2000,1,Dial(SIP/2000,20) exten => 2000,2,VoiceMail(2000)
Der Context wird von Asterisk immer benutzt, wenn ein Telefon
die Nummer eines anderen Telefons wählt. Der Name ist dabei beliebig.
Wichtig ist, dass in der Datei
/etc/asterisk/sip.conf
bei der Definition eines
SIP-Gerätes eine entsprechende Bezeichnung für den Context definiert
wurde und dieselbe Bezeichnung in der Datei
/etc/asterisk/extensions.conf
wieder als
context
-Bezeichnung verwendet wird (dann könnte er auch
Apfelmus
heißen). Dieser Context ist von entscheidender
Bedeutung für die Konfiguration des Telefons! Einfach gesagt legen die
im Context definierten Regeln exakt fest, welche Nummern das Telefon
wählen darf und welche Aktionen dadurch gestattet werden.
Wichtig | |
---|---|
Der Context der angerufenen Nummer spielt keinerlei Rolle, sondern nur der Context der anrufenden Nummer! Merken Sie sich bitte diesen Zusammenhang, er ist wesentlich für einen erfolgreichen Umgang mit den Konfigurationsdateien. |
Die Syntax der Einträge ist immer wie folgt:
exten => Nummer, Prioritaet, Applikation
Wird eine Nummer gewählt, die einen entsprechenden Eintrag (Regel) in dieser Form aufweist, dann wird diese Regel gelesen und übernommen. Ist mehr als eine Regel für eine Nummer definiert, wird als Erstes die Regel mit der Priorität 1 durchgeführt. Die mit einer Regel verbundene Aktion steht an dritter Stelle (''Applikation''). Auf der Grundlage unserer Konfigurationsdateien (s.o.) geschieht Folgendes, wenn vom Telefon 2001 die Nummer 2000 gewählt wird:
Asterisk sieht in der Datei
/etc/asterisk/sip.conf
nach, welcher Context der anrufenden Nummer (2001) zugewiesen wurde. In unserem Beispiel haben wir der Nummer 2001 den Contextmeine-telefone
zugewiesen. Dadurch werden die Regeln gelesen, die in der entsprechenden Context-Bezeichnungcontext=meine-telefone
der Datei/etc/asterisk/extensions.conf
definiert sind.Nachdem Asterisk die Regeln im Context für die anrufende Nummer (2001) gelesen hat, führt es die Regeln aus, die mit der angerufenen Nummer (2000) definiert sind und zwar in der durch die Priorität festgelegten Reihenfolge. (In unserem Beispiel sind im Context der anrufenden Nummer (2001) für die angerufene Nummer (2000) zwei Regeln hinterlegt.)
Da die Regel mit dem Befehl
Dial(SIP/2000,20)
die Priorität 1 besitzt, kommt diese zur Ausführung. Dadurch wird das Programm Dial gestartet, welches wiederum in der Datei/etc/asterisk/sip.conf
nach dem Eintrag 2000 sucht und diesen Apparat dann 20 Sekunden lang anruft (dafür die 20 als zweiter Parameter des Dial-Befehls).Wenn nach 20 Sekunden niemand den Anruf annimmt wird die Dial() Applikation abgebrochen und die Priorität um 1 hochgezählt.
Die Zeile
exten => 2000,2,VoiceMail(2000)
ist also an der Reihe und startet das Programm Voicemail mit dem Parameter2000
. Die2000
steht für die Nummer der Voicemailbox. Wie Sie sich sicherlich schon denken können, ist auch hier die2000
nur der Einfachheit halber genommen worden. Die Voicemailbox könnte auch5555
oderApfelmus
heißen.
Damit wir später vom jeweiligen Telefon auch an unsere Sprachnachrichten kommen, wird in der letzten Zeile die Nummer 2999 für das Aufrufen der Voicemailbox definiert.
exten => 2999,1,VoiceMailMain(${CALLERID(num)},s)
Hierbei kommen wir zum ersten Mal mit der Benutzung von
Variablen in der /etc/asterisk/extensions.conf
in
Berührung. Das aufgerufene Programm heißt
VoiceMailMain und ihm wird als erster
Parameter die Ausgabe der Funktion
${CALLERID(num)}
übergeben.
${CALLERID(num)}
gibt die Nummer des Anrufers
aus. Deshalb weiß das Programm
VoiceMailMain, welche Voicemailbox gerade
abgefragt wird. Wird dieser Parameter nicht angegeben, fragt
VoiceMailMain als Erstes den Anrufer nach
dem Namen der VoiceMailbox. Der Parameter s
sorgt dafür, das der Benutzer kein Passwort eingeben muss.
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