es gibt 3 Möglichkeiten, entweder verstehe ich die Rufregeln nicht oder die Rufregeln verstehen mich nicht oder die Rufregeln funktionieren nicht
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 ) 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?
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
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.
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.
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.
@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.
das die Skript-Lösung nicht wirklich Endkundenkompatibel ist stimmt. Ich habe mal einen Feature Request aufgenommen, wir werden das bei Gelegenheit diskutieren.