Files
starface-blacklist-module/v8-9-10
Stefan Hacker a5b1de275d first commit
2026-06-09 10:17:37 +02:00
..
2026-06-09 10:17:37 +02:00
2026-06-09 10:17:37 +02:00
2026-06-09 10:17:37 +02:00
2026-06-09 10:17:37 +02:00
2026-06-09 10:17:37 +02:00
2026-06-09 10:17:37 +02:00

BlacklistBlock - STARFACE Custom Block

Ein Custom Block für den STARFACE Module Designer, der eingehende Anrufe gegen eine konfigurierbare Blacklist prüft und anonyme Anrufe (unterdrückte Rufnummer) separat behandelt. Pro Eintrag kann festgelegt werden, was mit dem Anruf passieren soll.

Funktionsweise

Der Block wird bei jedem eingehenden Anruf ausgeführt (Modultyp Call-Processing). Ablauf:

  1. GetCaller2 ermittelt Anrufernummer, Name und das Flag isAnonymous.
  2. Anonymer Anruf (unterdrückte Rufnummer): es greift die Aktion bei anonymen Anrufen.
  3. Andernfalls wird die Nummer gegen die Blacklist-Einträge geprüft (erster Treffer gewinnt).
  4. Bei einem Treffer wird die zugehörige Aktion ausgeführt.
  5. Kein Treffer / Aktion NONE / ALLOW → der Block tut nichts, der Anruf läuft normal weiter.

Die Aktionen nutzen die eingebauten STARFACE-Blöcke (Hangup, Busy, CallPhonenumber2, Answer + PlaybackResourceFile2), die per Reflection im selben Anruf-Kontext aufgerufen werden dadurch bleibt der Block über STARFACE-Versionen hinweg robust.

Aktionen

Aktion Wirkung
HANGUP Anruf sofort auflegen (Anrufer wird getrennt)
BUSY Besetztzeichen senden
REDIRECT Anruf auf eine andere Nummer/Nebenstelle umleiten (Ziel erforderlich)
ANNOUNCE Anruf annehmen, Ansage abspielen, dann auflegen
ALLOW Ausnahme Anruf trotz Treffer durchstellen (für Whitelist-Fälle)
NONE (nur anonym) nichts tun, Anruf normal durchstellen

Kompatibilität

  • STARFACE 8.x, 9.x, 10.x (Java 21)

Konfigurationsfelder (Eingabe)

Feld Typ Beschreibung Default
blacklistEntries STRING (mehrzeilig) Nummern + optionale Aktion/Ziel, eine pro Zeile
defaultAction STRING (Auswahl) Aktion für Einträge ohne eigene Aktion HANGUP
defaultRedirectTarget STRING Ziel für REDIRECT-Einträge ohne eigenes Ziel
announcementFile STRING Name der Sound-Ressource für ANNOUNCE
anonymousAction STRING (Auswahl) Behandlung anonymer Anrufe NONE
anonymousRedirectTarget STRING Ziel bei REDIRECT für anonyme Anrufe
countryCode STRING Eigene Ländervorwahl (Deutschland = 49) 49
prefixMatch BOOLEAN Bereichssperre: Eintrag sperrt auch beginnende Nummern true

Ausgabe-Variablen

Feld Typ Beschreibung
caller STRING Erkannte Anrufernummer (international normalisiert)
isAnonymous BOOLEAN Rufnummer unterdrückt?
blocked BOOLEAN Wurde der Anruf behandelt (geblockt/umgeleitet)?
actionTaken STRING Tatsächlich ausgeführte Aktion
statusMessage STRING Status-Meldung

Format der Blacklist-Einträge

Eine Nummer pro Zeile (Komma geht auch). Pro Zeile optional eine eigene Aktion und ein Ziel:

nummer;AKTION;ziel

Beispiele:

# Kommentarzeile, wird ignoriert
+49301234567                 # nutzt die Standard-Aktion
0190;BUSY                    # dieser (Bereich) immer besetzt
004989;REDIRECT;100          # auf Nebenstelle 100 umleiten
+4972112345;ALLOW            # Ausnahme: trotz Bereichssperre durchstellen
0900;ANNOUNCE                # Ansage abspielen und auflegen

Reihenfolge: Der erste passende Eintrag gewinnt. ALLOW-Ausnahmen daher vor breite Bereichssperren setzen.

Nummern-Vergleich

Alle Nummern werden vor dem Vergleich in eine einheitliche internationale Ziffernform gebracht (countryCode = 49):

Eingabe normalisiert
+49 721 12345 4972112345
0049 721 12345 4972112345
0721 12345 4972112345
100 (intern) 100

Bei prefixMatch = true sperrt ein Eintrag auch alle Nummern, die mit ihm beginnen (z.B. 0190 → gesamter 0190-Bereich). Zum Schutz vor versehentlichem Über-Sperren greift die Bereichssperre erst ab 3 Ziffern; kürzere Einträge werden nur exakt verglichen.

Build

./build-block.sh

Die STARFACE-API-JARs werden in libs/starface/ erwartet. Sind sie dort nicht vorhanden, nutzt das Script automatisch die JARs des mail2fax-Moduls (../../mail2fax/v8-9-10/libs/starface/). Ergebnis: BlacklistBlock.class.

Es werden keine zusätzlichen Bibliotheken benötigt (kein JavaMail o.ä.).

Installation im Module Designer

Siehe INSTALLATION.md für die Schritt-für-Schritt-Anleitung.