Asterisk sucht bevor es einen anderen Context einbindet (include) immer erst im aktuellen Context nach einem Treffer (einem Match). Gibt es einen Treffer, wird dieser benutzt. Gibt es keinen Treffer, wird das erste Include vollzogen und dort nach einem Treffer gesucht. Dies funktioniert rekursiv nach unten - auch verschachtelt - es können also auch Includes innerhalb von Includes abgearbeitet werden.
Im Zweifelsfall können Sie zum Debuggen auch hier die Applikation dialplan show nummer@name-des-contextes benutzen, um heraus zu finden, welche Regel von Asterisk angewendet wird.
Anmerkung | |
---|---|
Benutzer von Asterisk 1.2 müssen anstatt dialplan show immer show dialplan eingeben. |
Ein paar Beispiele:
[general] [verkauf] include => intern include => extern [intern] exten => 2000,1,Dial(SIP/2000) [extern] exten => 03012345678,1,Dial(SIP/03012345678)
Wenn mit diesem Dialplan im Context verkauf
die
Nummer 2000 angerufen wird, dann können wir mit dem CLI Befehl
dialplan show 2000@verkauf analysieren:
*CLI> dialplan show 2000@verkauf [ Included context 'intern' created by 'pbx_config' ] '2000' => 1. Dial(SIP/2000) [pbx_config] -= 1 extension (1 priority) in 1 context. =- *CLI>
Wenn wir jetzt im Context verkauf
jetzt wie folgt
erweitern:
[general] [verkauf] include => intern include => extern exten => 2000,1,Answer() exten => 2000,2,Playback(hello-world) exten => 2000,3,Hangup() [intern] exten => 2000,1,Dial(SIP/2000) [extern] exten => 03012345678,1,Dial(SIP/03012345678)
Dann bekommen wir folgende Analyse des Dialplanes aufgezeigt:
*CLI> dialplan show 2000@verkauf [ Context 'verkauf' created by 'pbx_config' ] '2000' => 1. Answer() [pbx_config] 2. Playback(hello-world) [pbx_config] 3. Hangup() [pbx_config] [ Included context 'intern' created by 'pbx_config' ] '2000' => 1. Dial(SIP/2000) [pbx_config] -= 2 extensions (4 priorities) in 2 contexts. =- *CLI>
Asterisk wird also den Sprachbaustein
hello-world
abspielen und nicht zum Telefon 2000
durchstellen und das obwohl das Include vorher im Dialplan auftaucht.
Das liegt daran, das erst alle Möglichkeiten innerhalb eines Contextes
und dann erst die Includes abgearbeitet werden.
$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