IT-LINUXMAKER, OpenSource, Tutorials

Dialpatterns in FreePBX/Asterisk

Dialpatterns sind ein zentrales Element in der Konfiguration von FreePBX- oder Asterisk-Telefonanlagen. Sie dienen dazu, genau festzulegen, wie gewählte Telefonnummern behandelt werden sollen, bevor sie über eine Leitung (Trunk) nach außen weitergeleitet werden. Dabei bestimmen sie nicht nur, welche Nummern erlaubt sind, sondern auch, wie diese Nummern angepasst oder umgeschrieben werden – etwa durch das automatische Hinzufügen einer Ländervorwahl oder das Entfernen einer vorgewählten Ziffer.

Stellen Sie sich Dialpatterns als eine Art "Filter" oder "Regelwerk" vor, das jede gewählte Nummer prüft und danach entscheidet, was mit ihr passieren darf. Wenn ein Benutzer beispielsweise eine Nummer wählt, prüft das System zuerst, ob diese Nummer zu einem definierten Dialpattern passt. Falls ja, wird der Anruf über die entsprechende Route oder den Trunk weitergeleitet. Falls nicht, wird der Anruf blockiert oder erhält eine Fehlermeldung.

Wozu dienen Dialpatterns konkret?

Der Einsatz von Dialpatterns ist äußerst vielseitig. In der Praxis werden sie häufig verwendet, um zu steuern, welche Rufnummernbereiche gewählt werden dürfen – beispielsweise nationale Festnetznummern, Mobilfunknummern, Notrufnummern oder internationale Ziele. So kann etwa verhindert werden, dass Mitarbeiter teure Sonderrufnummern anrufen oder ungewollte Auslandsverbindungen aufgebaut werden.

Ein weiterer Zweck besteht darin, Rufnummern zu transformieren oder zu ergänzen, bevor sie nach außen gesendet werden. Ein typisches Beispiel: Ein Benutzer wählt eine Mobilfunknummer ohne Ländervorwahl – etwa 01761234567. Das System kann diese Nummer automatisch mit der internationalen Vorwahl +49 ergänzen, sodass sie als +491761234567 beim Anbieter ankommt.

Dialpatterns ermöglichen auch, unterschiedliche Anrufziele über unterschiedliche Leitungen zu routen – etwa um Kosten zu sparen oder alternative Anbieter zu nutzen. So könnten alle Auslandsgespräche über einen günstigeren SIP-Trunk gehen, während nationale Gespräche über den Standardanbieter laufen.

Neben Steuerung und Komfort tragen Dialpatterns auch zur Sicherheit bei, da sie den Zugriff auf bestimmte Rufnummern gezielt einschränken können. Und nicht zuletzt vereinfachen sie den Alltag der Benutzer, weil diese nicht immer vollständige internationale Formate wählen müssen – das System ergänzt automatisch, was fehlt.

Wie sind Dialpatterns aufgebaut

Ein Dialpattern besteht im Wesentlichen aus drei bis vier Bestandteilen, die zusammen festlegen, ob und wie eine gewählte Nummer verarbeitet werden soll. Der wichtigste Teil ist das sogenannte Match Pattern – also das eigentliche Nummernmuster, das beschreibt, welche Zahlenfolgen erlaubt sind. Dabei können Platzhalter verwendet werden, um flexibel auf verschiedene Ziffernfolgen zu reagieren. So steht beispielsweise ein X für jede beliebige Ziffer zwischen 0 und 9, während ein Z nur die Ziffern 1 bis 9 erlaubt. Mit solchen Platzhaltern lassen sich z. B. alle Mobilfunknummern, alle Sondernummern oder bestimmte Ortsvorwahlen abbilden.

Prefix und Prepend sind zwei ergänzende Felder, die bestimmen, wie mit gewählten Ziffern umgegangen wird:

  • Das Prefix ist eine Zahlenfolge, die ein Benutzer tatsächlich wählen muss – also eine Ziffer oder ein Ziffernblock, der vor der eigentlichen Rufnummer steht. Dieser wird vom System erkannt und vor dem Weiterleiten entfernt. So kann beispielsweise ein Benutzer zuerst die 0 wählen, um eine Amtsleitung zu bekommen – das System löscht diese 0 und sendet nur die eigentliche Nummer nach draußen.
  • Das Prepend-Feld hingegen wird vom Benutzer nicht gewählt, sondern vom System automatisch vorgesetzt, sobald das Match Pattern erfüllt ist. Es wird also genutzt, um fehlende Vorwahlen oder Codes hinzuzufügen. Ein typischer Anwendungsfall wäre, dass intern gewählte Rufnummern automatisch mit einer Landes- und Ortsvorwahl versehen werden, sodass sie extern gültig sind.

Optional kann man noch ein CallerID-Feld angeben, um Dialpatterns nur auf bestimmte interne Teilnehmer oder Gruppen anzuwenden. So lässt sich z. B. konfigurieren, dass nur bestimmte Durchwahlen Auslandsgespräche führen dürfen.

Bedeutung der Wildcards und Felder in einem Dialpattern

In FreePBX und Asterisk werden Dialpatterns verwendet, um zu definieren, welche Telefonnummern erlaubt sind und wie sie verarbeitet werden. Dabei kommen sogenannte Wildcards zum Einsatz, um Muster flexibel zu gestalten. Hier sind die wichtigsten Zeichen und Felder, verständlich erklärt:

Wildcards (Platzhalterzeichen) im Match Pattern

  • X
    Steht für jede beliebige Ziffer von 0 bis 9.
    Beispiel: 3XX erlaubt alle Nummern von 300 bis 399.
  • Z
    Gilt für Ziffern von 1 bis 9 (also keine Null).
    Wird häufig verwendet, um Nummern auszuschließen, die nicht mit 0 beginnen sollen.
    Beispiel: ZXX passt auf 123, 987, aber nicht auf 023.
  • N
    Erlaubt Ziffern von 2 bis 9.
    Oft genutzt für Vorwahlen, die nicht mit 0 oder 1 beginnen dürfen.
    Beispiel: NXX erlaubt 200, 345, aber nicht 012.
  • [ ] (Ziffernset)
    In eckigen Klammern lassen sich mehrere Ziffern oder Bereiche zusammenfassen.
    Beispiel: [1237-9] steht für die Ziffern 1, 2, 3, 7, 8 und 9.
  • . (Punkt)
    Der Punkt bedeutet: "beliebig viele beliebige Ziffern folgen".
    Beispiel: 0Z. erlaubt alle Nummern, die mit einer 0 gefolgt von 1–9 beginnen, und danach noch weitere Ziffern enthalten – etwa 0301234567.

Die drei zentralen Felder in einem Dialpattern

  • Match Pattern
    Dies ist das Muster, das die gewählte Rufnummer erfüllen muss, damit der Anruf zugelassen wird. Es kann die oben genannten Platzhalter enthalten.
    Beispiel: Ein Pattern 01[5-7]X. erlaubt alle Mobilfunknummern, die mit 015, 016 oder 017 beginnen.
  • Prefix
    Der Prefix ist ein fester Teil, den der Benutzer mitwählen muss, damit das Pattern greift.
    Wenn ein Anruf mit diesem Prefix beginnt, wird er vom System entfernt, bevor der Anruf weitergeleitet wird.
    Beispiel: Wählt ein Benutzer 901761234567, und der Prefix ist 9, dann wird die 9 entfernt – und die weitergeleitete Nummer ist 01761234567.
  • Prepend
    Der Prepend ist eine Zahlenfolge, die automatisch vor die gewählte Nummer gesetzt wird, nachdem sie erfolgreich gematcht wurde. Der Benutzer sieht oder wählt diesen Teil nicht selbst.
    Beispiel: Wenn +49 als Prepend gesetzt ist und ein Benutzer 1761234567 wählt, wird daraus +491761234567.

Wie wird eine Nummer verarbeitet?

Wenn eine Nummer gewählt wird, vergleicht das System sie folgendermaßen:

Wählende Nummer = Prefix + Match Pattern
Tatsächlich weitergeleitete Nummer = Prepend + (Match Pattern ohne Prefix)

Ein Beispiel:

  • Prepend: +49
  • Prefix: 0
  • Match Pattern: 1[5-7]X.
  • Gewählt wird: 01761234567
    → Der Prefix 0 wird entfernt, das Pattern passt auf 1761234567,
    → Prepend +49 wird vorangestellt
    → Weitergeleitet wird: +491761234567

Diese Mechanik macht Dialpatterns zu einem sehr mächtigen Werkzeug. Sie sorgen dafür, dass Anrufe nur dorthin gehen, wo sie auch erlaubt und technisch korrekt sind – unabhängig davon, wie der Benutzer die Nummer ursprünglich eingibt.