Testen mit dialplan show

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

Werbung