Mit unserem bisherigen Wissen müssen wir pro möglicher Rufnummer
immer eine eigene Extension schreiben. Dies würde schon nach kurzer Zeit
sehr lange und fehleranfällige Dialpläne nach sich ziehen. Sollen z.B. die
Rufnummern 100 bis 109 jeweils immer den hello-world Sprachbaustein
abspielen, so würde die extensions.conf
wie folgt
aussehen:
[general] [apfelmus] exten => 100,1,Answer() exten => 100,2,Playback(hello-world) exten => 100,3,Hangup() exten => 101,1,Answer() exten => 101,2,Playback(hello-world) exten => 101,3,Hangup() exten => 102,1,Answer() exten => 102,2,Playback(hello-world) exten => 102,3,Hangup() exten => 103,1,Answer() exten => 103,2,Playback(hello-world) exten => 103,3,Hangup() exten => 104,1,Answer() exten => 104,2,Playback(hello-world) exten => 104,3,Hangup() exten => 105,1,Answer() exten => 105,2,Playback(hello-world) exten => 105,3,Hangup() exten => 106,1,Answer() exten => 106,2,Playback(hello-world) exten => 106,3,Hangup() exten => 107,1,Answer() exten => 107,2,Playback(hello-world) exten => 107,3,Hangup() exten => 108,1,Answer() exten => 108,2,Playback(hello-world) exten => 108,3,Hangup() exten => 109,1,Answer() exten => 109,2,Playback(hello-world) exten => 109,3,Hangup()
Unter Verwendung eines Patterns in Form einer Regular Expression (auch Regex genannt)
Tipp | |
---|---|
Definition Regular Expression: "Reguläre Ausdrücke (Abk. RegExp oder Regex, engl. regular expressions) dienen der Beschreibung von (Unter-)Mengen von Zeichenketten mit Hilfe syntaktischer Regeln. Sie finden vor allem in der Softwareentwicklung Verwendung; für fast alle Programmiersprachen existieren Implementierungen." (zitiert aus http://de.wikipedia.org/wiki/Regul%C3%A4rer_Ausdruck ) |
sieht der gleiche Dialplan gleich viel handlicher aus:
[general] [apfelmus] exten => _10X,1,Answer() exten => _10X,2,Playback(hello-world) exten => _10X,3,Hangup()
Das Pattern _10X
beschreibt den Zahlenraum von 100 bis
109.
Wichtig | |
---|---|
Man benutzt für die Beschreibung von dieses Prozesses häufig das englische Verb match und das Substantiv Pattern. "Pattern" kann mit Suchmuster übersetzt werden. "match" lässt sich schwer eins zu eins ins Deutsche übersetzen und ist am einfachsten mit einem Beispiel zu beschreiben: Ein Pattern ist "_10X" und dieses Pattern matcht auf den Zahlenraum 100 bis 109. Es matcht also nicht auf die Zahl 110. |
Anmerkung | |
---|---|
Die Begriffe Pattern und Regular Expression werden in vielen Dokumentationen sehr beliebig eingesetzt. Auch dieses Buch leidet unter diesem Problem. Formal korrekt ist sicherlich der Begriff Pattern, aber die meisten Programmierer werden den Begriff Regular Expression benutzen. |
$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