Nehmen wir mal an, das in unserer
extensions.conf
der folgende Dialplan
steht:
[general] [meine-telefone] exten => 23,1,Answer() exten => 23,2,Playback(hello-world) exten => 23,3,Hangup()
Dann können wir im CLI von Asterisk (das ist die Interface, das bei einem bereits laufenden Asterisk mit asterisk -r gestartet werden kann) mit dem Befehl dialplan show (auf Asterisk 1.2: show dialplan) den aktuellen Dialplan anzeigen:
*CLI> dialplan show [ Context 'default' created by 'pbx_config' ] [ Context 'meine-telefone' created by 'pbx_config' ] '23' => 1. Answer() [pbx_config] 2. Playback(hello-world) [pbx_config] 3. Hangup() [pbx_config] [ Context 'parkedcalls' created by 'res_features' ] '700' => 1. Park() [res_features] -= 2 extensions (4 priorities) in 3 contexts. =- *CLI>
Das CLI zeigt jetzt alle Asterisk bekannten Wählregeln auf.
Deshalb gibt es auch noch einen Context "parkedcalls", den wir gar nicht
wissentlich aktiviert haben (dieser wird standardmässig in der
features.conf aktiviert und stört uns jetzt nicht weiter). Wenn wir uns
nur auf den Dialplan für den Context meine-telefone
interessieren, so können wir diesen mit dialplan show
meine-telefone abrufen:
*CLI> dialplan show meine-telefone [ Context 'meine-telefone' created by 'pbx_config' ] '23' => 1. Answer() [pbx_config] 2. Playback(hello-world) [pbx_config] 3. Hangup() [pbx_config] -= 1 extension (3 priorities) in 1 context. =- *CLI>
Der Befehl dialplan show
kann aber nicht nur ganze Contexte anzeigen, sondern auch sagen was
passiert, wenn ich eine bestimmte Nummer wähle. Wenn ich mit einem
Telefon das im Context meine-telefone
ist die Nummer 25
anrufe, dann kann ich mit dialplan show
25@meine-telefone anzeigen was passiert:
*CLI> dialplan show 25@meine-telefone There is no existence of 25@meine-telefone extension *CLI>
Es wird also nichts passieren, weil es keinen Match für die von mir gewählte Extension 25 gibt. Wenn ich das gleiche für die 23 mache, dann gibt es folgende Ausgabe:
*CLI> dialplan show 23@meine-telefone [ Context 'meine-telefone' created by 'pbx_config' ] '23' => 1. Answer() [pbx_config] 2. Playback(hello-world) [pbx_config] 3. Hangup() [pbx_config] -= 1 extension (3 priorities) in 1 context. =- *CLI>
Wenn ich in allen verfügbaren Contexten nach einem Match für die 23 suchen möchte, so geht das mit dialplan show 23@
*CLI> dialplan show 23@ [ Context 'meine-telefone' created by 'pbx_config' ] '23' => 1. Answer() [pbx_config] 2. Playback(hello-world) [pbx_config] 3. Hangup() [pbx_config] -= 1 extension (3 priorities) in 1 context. =- *CLI>
Erweitern wir unseren Dialplan mal um einen weiteren Context:
[general] [meine-telefone] exten => 23,1,Answer() exten => 23,2,Playback(hello-world) exten => 23,3,Hangup() [abteilung-z] exten => _2X,1,Answer() exten => _2X,2,Playback(hello-world) exten => _2X,3,Hangup()
Und jetzt führen wir noch mal dialplan show 23@ aus (vorher müssen wir natürlich Asterisk mit reload im CLI sagen, das es den neuen Dialplan einlesen soll):
*CLI> dialplan show 23@ [ Context 'abteilung-z' created by 'pbx_config' ] '_2X' => 1. Answer() [pbx_config] 2. Playback(hello-world) [pbx_config] 3. Hangup() [pbx_config] [ Context 'meine-telefone' created by 'pbx_config' ] '23' => 1. Answer() [pbx_config] 2. Playback(hello-world) [pbx_config] 3. Hangup() [pbx_config] -= 2 extensions (6 priorities) in 2 contexts. =- *CLI>
Es werden also alle matchenden Extensions anzeigt. Um im obigen Beispiel zu bleiben, probieren wir das jetzt auch noch mal mit dialplan show 25@ aus:
*CLI> dialplan show 25@ [ Context 'abteilung-z' created by 'pbx_config' ] '_2X' => 1. Answer() [pbx_config] 2. Playback(hello-world) [pbx_config] 3. Hangup() [pbx_config] -= 1 extension (3 priorities) in 1 context. =- *CLI>
Logischerweise gibt es dabei nur einen Treffer und der ist im
Context abteilung-z
. Sollten Sie also mit einem Telefon,
das im Context meine-telefone
arbeitet die 25 wählen, so
werden Sie trotzdem kein hello-world hören, denn dies funktioniert nur
bei Telefonen, die auch im Context abteilung-z
arbeiten.
$Revision:473 $
Beta-Version!
2.0 Entwickler-Version des Asterisk Buches. Die 1.0 stabile Version ist natürlich noch online. Die 2.0er Version enthält viele Neuerungen, ist aber noch nicht 100% fehlerfrei. Im Zweifelsfall bitte auf die 1.0er Version gehen.
Bitte melden Sie Fehler und Feedback zur neuen 2.0er Version per E-Mail an den Autor.
Asterisk-Tag 2008
Lernen Sie Mark Spencer (den Erfinder von Asterisk) kennen! Viele Vorträge, Case-Studies und Workshops rund um die Themen VoIP und Asterisk. Asterisk-Tag.org