[FRAGE/HOWTO] Dial Patterns Schweiz (FreePBX)

pwalker

Mitglied
Mitglied seit
27 Jun 2007
Beiträge
421
Punkte für Reaktionen
0
Punkte
0
Hallo zusammen,
Immer mal wieder übe ich mich darin, meine Dial Patterns für ausgehende Rufe (ab CH nach CH) zu optimieren. Hat sich schon sonst wer damit beschäftigt und einen Satz Patterns zum vergleichen?
Jetztiger Stand meines Wissens (ohne Gewähr und ohne Anspruch auf Vollständigkeit und Korrektheit!): (2008-05-30)
  • "Normale" Nummern Schweiz:
    _0ZZXXXXXX. (Das zweite "Z", damit 080x und 090x nicht matchen)
  • "Normale" Nummern Schweiz mit "0041" gewählt:
    _0041XXXXXXXX.
  • "Normale" Nummern Schweiz mit "41" gewählt (z.B. mit +41 wobei die "+" z.B. von CTI oder einem Skript weggeworfen wurden):
    _41XXXXXXXX.
  • Kurznummern/Servicenummern (siehe https://www.eofcom.ch/viewSearchSN.do):
    1600 (RegioInfo), _18XX (Telefonauskunft), _1XX (diverse)
  • "Spezialfall" der Kurznummern: Notfallnummern:
    112, 117, 118, 144, 1414, 145 plus evtl. 143, 147, 1415
  • Freecall 0800: _0800XXXXXX
  • Shared Cost 084x: _084XXXXXXX (kommen aber eigentlich auch mit dem Pattern für normale CH-Nummern gematcht)
  • Premium Rate Services 0900/0901:
    _0900XXXXXX
    _0901XXXXXX
  • Telekiosk 0906 "Erwachsenen-Unterhaltung": (Will man wohl in der Regel nicht drin haben...)
    _0906XXXXXX
 
Zuletzt bearbeitet:
Schau mal da:

Wiki Nummernpläne

Die Pattern gelten jeweils für nationale Anwahl und differenzieren allerdings die MWD/PRD/Kurzwahlen nicht so tief, wie Du das machst.
 
Danke abw1oim,
Den CH-Nummerierungsplan kenne ich einigermassen, die Wiki-Seite war mir aber bisher nicht bekannt.
Und vielleicht muss ich noch klarstellen, worum es überhaupt geht, war aus meinem ersten Post vielleicht nicht ganz so klar ersichtlich:
Es geht darum, bestimmte Nummerngruppen gezielt erlauben bzw. verbieten zu können (z.B. nur CH-Gespräche, keine Anrufe auf Premium Rate / Telekiosk usw. -> "Sperrsets") und es geht primär um FreePBX (wobei das natürlich grundsätzlich auf für einen normalen Asterisk Gültigkeit hat bzw. angewandt werden kann).
Und für die "Sperrsets" braucht man möglicherweise eine differenzierte Unterscheidung zwischen Telekiosk 0906 (Gestöhn und so Zeugs) 0901 und 0900 (z.B. Support).
 
Wenn es Dir um erlaubt/nicht erlaubt geht, kann man das in etwa so machen (in FreePBX müsstest Du das mit entsprechenden Custom-Contexts machen, da bin ich aber nicht so firm, da ich natives Asterisk nutze):

Code:
[notallowed]
exten  => _X.,1,Answer();
exten  => _X.,2,Wait(1);
exten  => _X.,3,Playback(ss-noservice)
exten  => _X.,4,Hangup

[allowed]
; long Distance Schweiz
exten => _0041X.,1,Dial(<Tech>/<Prov>,0${EXTEN:5})
; local Schweiz (einschließlich Notrufe)
exten => _Z.,1,Dial(<Tech>/<Prov>,${EXTEN})
...


[check_ext]
; Check the extens for allowance

;Notfallnummern dreistellig
exten => _0041XXX,1,Goto(allowed,${EXTEN:4})
; Kurzwahl 4-stellig
exten => _0041XXXX,1,Goto(allowed,${EXTEN:4})
; FreeCall
exten => _0041800.,1,Goto(allowed,${EXTEN})
;Shared Cost
exten => _004184.,1,Goto(allowed,${EXTEN})
; PRD
exten => _004190[01].,1,Goto(allowed,${EXTEN})
; PRD 906
exten => _0041906.,1,Goto(notallowed,${EXTEN})
; Mobile Calls
exten => _00417[02-9].,1,Goto(allowed,${EXTEN})
; Fixed Line Ortsnetze 2,3,4,6
exten => _0041[2346].,1,Goto(allowed,${EXTEN})
; Fixed Line Ortsnetze 5
exten => _00415[256].,1,Goto(allowed,${EXTEN})
; Fixed Line Ortsnetze 7
exten => _004171.,1,Goto(allowed,${EXTEN})
; Fixed Line Ortsnetze 8
exten => _004181.,1,Goto(allowed,${EXTEN})
; Fixed Line Ortsnetze 9
exten => _004191.,1,Goto(allowed,${EXTEN})

; alles, was nicht angeführt wurde, abweisen
; (Corporate Numbers, National Rate etc)
exten => i,1,Goto(notallowed,${EXTEN})


[outgoing]
; Reformatting of callnumber to Format 0041{NUMBER}

exten => _41.,1,Goto(check_ext,00${EXTEN},1)
exten => _0041.,1,Goto(check_ext,${EXTEN},1)
exten => _0Z.,1,Goto(check_ext,0041${EXTEN:1},1)
exten => _1XXX,1,Goto(check_ext,0041${EXTEN},1)
exten => _1XX,1,Goto(check_ext,0041${EXTEN},1)

Der entscheidende Trick zur Vereinfachung ist dabei der, dass Du zunächst alle verschiedenen eingehenden Nummernformate auf ein Einheitsformat bringst (im Beispiel 0041[<Vorwahl>]Rufnummer), um dann mit einheitlichem Patternmatch arbeiten zu können. Das passiert im Beispiel, wenn Du ausgehende Anrufe nach outgoing schickst, die verzweigen dann via check_ext über allowed bzw. notallowed zur Wahl bzw. Ablehnung des Calls. (Kurzwahlen/Notrufe werden im Beispiel ohne Vorwahl, also mit 3 bzw. 4 Stellen gewählt, alles andere mit nationaler Schweizer Vorwahl).
BTW: Falls Du auch Wahl ohne <Vorwahl> im eigenen Ortsnetz möchtest, kann man (für CH) in outgoing ergänzen:

Code:
exten => _ZXXXXXX,1,Goto(check_ext,0041${NDC}${EXTEN},1)

Dabei enthält ${NDC} dann (am besten über die globals-Section der extensions.conf) Dein eigenes Ortsnetz, also z.B. 61 für Basel.

Ich hoffe, die Anregung hilft Dir weiter.
 
Dial Patterns Schweiz (FreePBX) / Outbound Routes

Sorry, das ich diesen Uralt-Thread wieder aufwärme.... Diese Infos hier sind EXAKT das was ich brauche.

Einziges Problem, - trotz stundenlangem suchen, vergleichen, ausprobieren checke ich einfach nicht wie ich die oben aufgeführten "Regeln" in FreePBX (2.11) eintragen soll. Die Syntax scheint nicht zu passen. Die vielen Asterisk Configs im Web scheinen jedenfalls irgendwie anders aufgebaut zu werden als jene für die FreePBX GUI. :confused:

Unter "Outbound Routes" (in FreePBX) sieht es momentan folgendermassen aus:

FreePBX2.11OutboundRouteSWISS.PNG
 
Zuletzt bearbeitet von einem Moderator:
Bei allen Dialpatterns, die weder ein "+" noch ein "|" drin haben, einfach alles ins Feld "match pattern" reinschreiben und gut ist.
Also im Beispiel die "Patterns" für die Servicenummern passen an sich (sind aber nicht wirklich patterns), und die mit Wildcards drin müssten eigentlich grundsätzlich auch passen, der Underscore ist nicht mehr nötig. (Ausser das NXX...-Pattern, das gibt's üblicherweise in der Schweiz nicht.)
Die Patterns sind übrigens im Tooltip von "Dial Patterns that will use this Route" recht gut beschrieben.
 
Merci für die super schnelle Antwort!! :) Der Underscore hat mich am meisten verwirrt. Dann ist es also doch relativ einfach, - ich fasse zusammen:

() + | 00Z.
() + | 112
() + | 118
() + | 144
() + | 145
() + | 1414
() + | 1415
() + | 0ZZXXXXXX.
() + | 0041XXXXXXXX.
() + | 41XXXXXXXX.
() + | 1600
() + | 18XX
() + | 1XX
() + | 0800XXXXXX
() + | 084XXXXXXX
() + | 0900XXXXXX
() + | 0901XXXXXX
() + | 0906XXXXXX

Die Regel "1XX" macht die separate Aufführung der einzelnen Notrufnummern (122 - 145) aber eigentlich überflüssig, oder nicht?

Letzter Punkt, wenn ich eine Regel verbieten will dann hänge ich laut FreePBX Wiki am Ende einfach ein / an, - also: () + | 0906XXXXXX /

Oder lasse ich die Zeile am besten ganz weg?
 
Zuletzt bearbeitet von einem Moderator:
Letzter Punkt, wenn ich eine Regel verbieten will dann hänge ich laut FreePBX Wiki am Ende einfach ein / an, - also: () + | 0906XXXXXX /
Sehe das im Wiki gerade so nirgends... aber das "/" ist ja schon da, Du hast die Möglichkeit, danach extensions zu definieren, die dieses Route verwenden dürfen. Hast Du da evtl. was falsch verstanden?
Aber grundsätzlich kannst Du das schon machen: Nach dem "/" eine Extension eintragen, die es nciht gibt... Aber irgendwie nicht so fluffig...
 
Verbieten für einzelne sollte über das Extension-Modul gehen, oder aber über erweiterte Einstellungen im Route-Modul.
Verbieten für alle sollte gehen, wenn man der Route keinen Trunk zuweist, so dass - bei Zutreffen der Route - kein Provider verfügbar ist, der die Route ausführen kann.

Entscheidend ist dabei, dass die Routen, für die unterschiedliche Rechte gelten sollen, in unterschiedlichen Gruppen von Pattern zusammengefasst werden.

Beispiel:

Kurzwahlen

() + | 112
() + | 118
() + | 144
() + | 145
() + | 1414
() + | 1415
() + | 1600
() + | 18XX
() + | 1XX

FreeCall
() + | 0800XXXXXX

LongDistance
() + | 0ZZXXXXXX.

International
() + | 00Z.


Wichtig auch: Bei solchen Pattern auf die Reihenfolge achten: Wenn 00Z. eine höhere Priorität genießt, als etwa 0041X, dann würde auch eine (international gewählte) Schweizer Nummer als Ausland behandelt, während man hier ja vielleicht auch auf national (oder gar lokal) umsetzen will, also 0041 weg und 0 stattdessen hin.
 
Vielen Dank für diese Infos! Exakt, anscheinend habe ich bezüglich "Regel verbieten" definitiv was total falsch verstanden. :oops:

Wie auch immer, nach der Aktivierung / Registrierung des (nicht freien aber kostenlosen) "FreePBX Extension Routing Module" kann ich nun bei jedem Telefon / jeder Extension die entsprechende "Outbound Routes" genau definieren. :D Einfach absolut super genial...

Wenn ich also in der "Restricted Route" keine () + | 0906XXXXXX "Erwachsenen-Unterhaltung" definiert habe, dann sollten da keine 0906... Nummern gewählt werden können.

Somit ist hier fast alles geklärt. Es bleibt nur die Frage ob Regel 1XX nicht auch alle entsprechenden Kurznummern (112, 118, 144, 145, etc) ersetzt. Und es somit überflüssig ist diese nochmals einzeln aufzuführen?
 

Das tut sie - sie deckt alle dreistellig gewählten Ziele von 100 bis 199 ab. Ob man das will, oder stattdessen lieber die dezidierten Einzelziele, muss man für sich selbst entscheiden.
 

Statistik des Forums

Themen
246,273
Beiträge
2,249,292
Mitglieder
373,862
Neuestes Mitglied
904lte
Holen Sie sich 3CX - völlig kostenlos!
Verbinden Sie Ihr Team und Ihre Kunden Telefonie Livechat Videokonferenzen

Gehostet oder selbst-verwaltet. Für bis zu 10 Nutzer dauerhaft kostenlos. Keine Kreditkartendetails erforderlich. Ohne Risiko testen.

3CX
Für diese E-Mail-Adresse besteht bereits ein 3CX-Konto. Sie werden zum Kundenportal weitergeleitet, wo Sie sich anmelden oder Ihr Passwort zurücksetzen können, falls Sie dieses vergessen haben.