Rufregeln

Hallo,

es gibt 3 Möglichkeiten, entweder verstehe ich die Rufregeln nicht oder die Rufregeln verstehen mich nicht oder die Rufregeln funktionieren nicht :slight_smile:

Hintergrund: Da der MD direkt keine Blacklists unterstützt scheint mit der einzig gangbare Wege der über die Rufregeln zu sein.

Für einen Mehrgeräteanschluss via Berofix habe ich Rufregeln dieser Art (meine Rufnummern hier ersetzt und die von den Nervensägen, die jeder wissen darf, drin gelassen :smiley: ) gemacht:


Bezeichnung     Quelle          Ziel    Durchwahl
MSN1            *               777744  100
MSN2            *               777742  170
01805445800     01805445800     _7777XX 999
0180599007204   0180599007204   _7777XX 999
0180599007301   0180599007301   _7777XX 999
0180599007401   0180599007401   _7777XX 999
0180599007604   0180599007604   _7777XX 999
01806113609     01806113609     _7777XX 999
test            123456789       _7777XX 999

“test” ist eine Handynummer mit der ich eben diese Funktion testen möchte. Die Durchwahl 999 ist ein Team welches nur eine Ansage macht und dann auflegt.

Wenn ich jetzt von der 123456789 die 777744 anrufe lade ich immer auf der Durchwahl 100. In der Doku steht aber: “Regeln werden nach der Genauigkeit ihrer Übereinstimmung und nicht nach der Reihenfolge in der Tabelle angewendet.” Die letzte Regel ist IMHO genauer als die erste. Ich habe das “natürlich” auch mit der 777744 als Ziel anstelle der 7777XX getestet was aber genau so wenig funktioniert.

So, welche der drei eingangs erwähnten Möglichkeiten trifft nun zu bzw. wie sag ich’s dem MD, dass er mich versteht?

TIA
Matthias

Hallo mhsoft,

prinzipiell sehen die Regeln gut aus. Was wichtig ist ist das die Quelle und das Ziel genauso drinsteht wie sie vom Provider kommt. Es gibt Provider die z.B. die führende Null nicht mitsenden.
Hier kann man das nachlesen https://www.pascom.net/doc/de/trunks/rules/#manuelle-ermittlung-des-rufnummernformats

Gruß Markus

Danke so weit … ich habe einiges an Asterisk-Erfahrung und stelle grad von FreeBPX auf MD um. Selbstverständlich habe ich als erstes mal “asterisk -rvvvv” bemüht um zu sehen was so kommt und hab alles was so kommt in allen denkbaren Kombinationen (mit und ohne Null und mit 0049, da das im Log auch mal zu sehen und auch der Client als “zweite Nummer” mit an zeigt. Alles ohne Erfolg … er ignoriert mich einfach :frowning:

Kannst Du mal Posten was auf bei einem Anruf auf der CLI kommt?

klar: http://pastebin.com/jLf7xKep

hab die Zahlen so getauscht, dass sie denen hier im Post entsprechen … das ist der eingehende Ruf incl. Auflegen von aussen. Wurde also nicht angenommen.

Hallo mhcsoft,

Also anhand dessen würde ich die Regel mit 0123456789 oder schreiben da als caller_number auch genau dies kommt ansonsten Matcht die Regle ja nicht wirklich.

Gruß Markus

na ja … hab ich ja schon geschrieben … hab es mit und ohne 0 und mit und ohne 049 oder 0049 vor der 123456789 getestet … geht nicht.

Hallo zusammen,

du kannst die Standardfunktion blacklist nutzen, wenn du das möchtest.
Hierzu musst du über die Systemeinstellung sys.asterisk.modules.func_blacklist.noload = 0, das Laden der Funktion ermöglichen, dann noch Erweiterungskarten anwenden und die Funktion steht dir im Dialplan zur Verfügung, siehe https://wiki.asterisk.org/wiki/display/AST/Asterisk+11+Function_BLACKLIST

Jetzt könntest du über ein Skript sub_pre-main deine Prüfung vornehmen. Das Skript kannst du über die Skripte-Verwaltung anlegen und der Kontext sollte so heißen. Das Skript wird dann bei jedem Anruf ausgeführt.

Grüße
Markus

@Markus: Danke, aber das ist keine “kundenkompatible Lösung”, ich brauche eine Lösung mit Bordmitteln. Für mich fehlt die Blacklist in der MD-GUI.

Aber ich habe die Lösung. Zum einen durch einen Tip vom Support und zum anderen durch gründliches nachdenken darüber wie der Asterisk eigentlich arbeitet.

Die Sache mit dem “best match” stimmt zwar, aber ich habe mich in die Irre leiten lassen. “best match” betrifft in erster Instanz NUR die Extensions (Ziele) und erst in zweiter Instanz wird die Quelle betrachtet und da gilt dann auch wieder das “best match” Verfahren. Ich war der irrigen Annahme, dass “best match” für die gesamte Regel gilt. Dem ist aber nicht so. Wenn man kurz darüber nachdenkt, wie der Dialplan abgearbeitet wird ist das auch sofort klar. Ich habe eine Rule mit dem Ziel “777744” und das sticht immer die “_7777XX”. Schreibe ich eine Regel mit eine Quelle die von “*” abweichend ist die als Ziel “777744” hat, dann funktioniert das auch. Mein zweiter Fehler war zu übersehen dass der Call von einem Tunk kommt der mit “1” geprefixt wird (danke Support!). Hier mal die Regeln wie sie in meinem Fall auch funktionieren:


Bezeichnung     Quelle          Ziel    Durchwahl
MSN1            *               777744  100
MSN2            *               777742  170
01805445800     101805445800     777744 999
0180599007204   10180599007204   777744 999
0180599007301   10180599007301   777744 999
0180599007401   10180599007401   777744 999
0180599007604   10180599007604   777744 999
01806113609     101806113609     777744 999
test            1123456789       777744 999

Ich werde aber darauf hin meinen Dialplan umbauen und für die Durchwahlen Wildcards nehmen, dann kann ich auch für das Blackisting wieder Wildcards benutzen.

Hallo Matthias,

das die Skript-Lösung nicht wirklich Endkundenkompatibel ist stimmt. Ich habe mal einen Feature Request aufgenommen, wir werden das bei Gelegenheit diskutieren.

Grüße,
Jan