first commit
This commit is contained in:
@@ -0,0 +1,156 @@
|
||||
# Blacklist - Installations- und Konfigurationshandbuch
|
||||
|
||||
Schritt-für-Schritt-Anleitung zur Installation des Blacklist-Moduls im STARFACE Module Designer.
|
||||
|
||||
---
|
||||
|
||||
## Voraussetzungen
|
||||
|
||||
- STARFACE 8.x, 9.x oder 10.x
|
||||
- Admin-Zugriff auf STARFACE
|
||||
- Kompilierte `BlacklistBlock.class` (siehe `./build-block.sh`)
|
||||
|
||||
> Es ist **keine** zusätzliche Bibliothek nötig (anders als bei Mail2Fax kein JavaMail).
|
||||
> Es wird auch **kein** SSH-Zugriff zum Installieren von Libs benötigt.
|
||||
|
||||
---
|
||||
|
||||
## Teil 1: Modul-Erstellung im Module Designer
|
||||
|
||||
### Schritt 1: Neues Modul erstellen
|
||||
|
||||
STARFACE Admin → **Module → Module Designer → Neues Modul**
|
||||
|
||||
- **Modul-Name**: `Blacklist`
|
||||
- **Beschreibung**: "Sperrt/behandelt eingehende Anrufe anhand einer Blacklist und anonyme Anrufe"
|
||||
- **Version**: `1.0.0`
|
||||
|
||||
### Schritt 2: Class-Datei hochladen
|
||||
|
||||
Tab **Ressourcen** → **Datei hochladen** → `BlacklistBlock.class`
|
||||
|
||||
Optional (nur für die Aktion `ANNOUNCE`): eine Ansage-Audiodatei (WAV) hochladen.
|
||||
Der Dateiname wird später im Feld **Ansage-Datei** eingetragen.
|
||||
|
||||
### Schritt 3: Funktion erstellen
|
||||
|
||||
Tab **Funktionen** → neue Funktion `Blacklist` anlegen und den Block `BlacklistBlock`
|
||||
in den Ablauf ziehen.
|
||||
|
||||
### Schritt 4: GUI-Elemente (Eingabefelder) anlegen
|
||||
|
||||
Lege die Konfigurationsfelder an und verknüpfe sie mit den `@InputVar`-Feldern des Blocks:
|
||||
|
||||
| Feldname | Typ | Label | Auswahlwerte |
|
||||
|----------|-----|-------|--------------|
|
||||
| `blacklistEntries` | STRING (mehrzeilig) | Blacklist-Einträge | |
|
||||
| `defaultAction` | STRING | Standard-Aktion | HANGUP, BUSY, REDIRECT, ANNOUNCE |
|
||||
| `defaultRedirectTarget` | STRING | Standard-Umleitungsziel | |
|
||||
| `announcementFile` | STRING | Ansage-Datei | |
|
||||
| `anonymousAction` | STRING | Aktion bei anonymen Anrufen | NONE, HANGUP, BUSY, REDIRECT, ANNOUNCE |
|
||||
| `anonymousRedirectTarget` | STRING | Umleitungsziel anonyme Anrufe | |
|
||||
| `countryCode` | STRING | Ländervorwahl | (Default 49) |
|
||||
| `prefixMatch` | BOOLEAN | Bereichssperre erlauben | (Default an) |
|
||||
|
||||
> Die Auswahlwerte (`possibleValues`) sind bereits im Block hinterlegt und erscheinen
|
||||
> i.d.R. automatisch als Dropdown. Falls nicht, als normales Textfeld anlegen.
|
||||
|
||||
### Schritt 5: GUI-Felder zuweisen
|
||||
|
||||
Jedes GUI-Element mit dem gleichnamigen Block-Parameter verbinden. Alle `@InputVar`-Felder
|
||||
sollten verknüpft sein.
|
||||
|
||||
### Schritt 6: Modul speichern
|
||||
|
||||
Modul speichern.
|
||||
|
||||
---
|
||||
|
||||
## Teil 2: Modul als Anruf-Modul aktivieren
|
||||
|
||||
Damit der Block bei eingehenden Anrufen läuft, muss das Modul als **Call-Processing-Modul**
|
||||
eingebunden werden.
|
||||
|
||||
### Variante A: Für alle eingehenden Anrufe
|
||||
|
||||
1. Module → **Modulkonfigurationen** → **[+] Neu**
|
||||
2. Modul `Blacklist` auswählen, Instanz benennen (z.B. "Blacklist - Zentrale")
|
||||
3. Felder ausfüllen (siehe Teil 3)
|
||||
4. Bei den Modul-Einstellungen den Typ **Call-Processing** wählen und die Aktivierung auf
|
||||
**"bei allen eingehenden Anrufen"** setzen.
|
||||
5. Modul **aktivieren**.
|
||||
|
||||
### Variante B: Pro Benutzer/Gruppe (Rufverteilung)
|
||||
|
||||
Alternativ kann das Modul gezielt in die **Rufverteilung** eines Benutzers oder einer
|
||||
Gruppe eingehängt werden (Administration → Benutzer/Gruppe → Rufverteilung → Modul
|
||||
einfügen, **vor** der eigentlichen Zustellung). So gilt die Blacklist nur für diese
|
||||
Nummern.
|
||||
|
||||
> **Wichtig:** Bei einem Treffer mit Aktion `HANGUP`/`BUSY`/`REDIRECT`/`ANNOUNCE` wird der
|
||||
> Anruf beendet bzw. umgeleitet und erreicht die nachgelagerte Zustellung nicht mehr.
|
||||
> Bei `ALLOW`/`NONE`/keinem Treffer läuft der Anruf normal weiter.
|
||||
|
||||
---
|
||||
|
||||
## Teil 3: Konfiguration (Beispiel)
|
||||
|
||||
**Blacklist-Einträge:**
|
||||
```
|
||||
# Werbeanrufe-Bereiche komplett sperren
|
||||
0190;BUSY
|
||||
0900;BUSY
|
||||
# einzelner Störer: auflegen
|
||||
+49301234567;HANGUP
|
||||
# Ausnahme: dieser eine Anschluss aus dem 089-Raum ist ok
|
||||
+4989123456;ALLOW
|
||||
089;ANNOUNCE
|
||||
# nervige Nummer auf die Zentrale umleiten
|
||||
+4972198765;REDIRECT;100
|
||||
```
|
||||
|
||||
**Standard-Aktion (Blacklist):** `HANGUP`
|
||||
**Standard-Umleitungsziel:** `100`
|
||||
**Ansage-Datei:** `blacklist_ansage.wav` (zuvor als Ressource hochgeladen)
|
||||
|
||||
**Aktion bei anonymen Anrufen:** `BUSY`
|
||||
*(oder `REDIRECT` mit Ziel, oder `NONE` zum Durchstellen)*
|
||||
|
||||
**Ländervorwahl:** `49`
|
||||
**Bereichssperre erlauben:** ✓ an
|
||||
|
||||
Mit dieser Konfiguration:
|
||||
- `0190…`/`0900…`/anonyme Anrufer hören Besetzt
|
||||
- `+49 30 1234567` wird aufgelegt
|
||||
- der gesamte `089…`-Bereich bekommt eine Ansage – **außer** `+49 89 123456` (Ausnahme oben)
|
||||
- `+49 721 98765` wird auf Nebenstelle 100 umgeleitet
|
||||
|
||||
---
|
||||
|
||||
## Logs und Fehlersuche
|
||||
|
||||
**Log-Datei:**
|
||||
```
|
||||
/var/log/starface/starface.log
|
||||
```
|
||||
|
||||
**Nützliche Meldungen:**
|
||||
```bash
|
||||
# alle Blacklist-Entscheidungen
|
||||
grep "Blacklist:" /var/log/starface/starface.log
|
||||
|
||||
# Treffer
|
||||
grep "Blacklist-Treffer" /var/log/starface/starface.log
|
||||
|
||||
# anonyme Anrufe
|
||||
grep "Blacklist: Anonymer Anruf" /var/log/starface/starface.log
|
||||
```
|
||||
|
||||
**Häufige Punkte:**
|
||||
1. Block tut nichts / "kein Anruf-Kontext": Das Modul ist nicht als *Call-Processing* /
|
||||
"bei allen eingehenden Anrufen" eingebunden.
|
||||
2. REDIRECT ohne Wirkung: Zielrufnummer/Nebenstelle prüfen, ggf. mit Amtskennziffer.
|
||||
3. ANNOUNCE ohne Ton: Audiodatei als Ressource hochgeladen und Dateiname im Feld korrekt?
|
||||
4. Nummer wird nicht erkannt: `countryCode` prüfen und im Log die normalisierte
|
||||
`intl='…'`-Form mit dem Eintrag vergleichen.
|
||||
</content>
|
||||
Reference in New Issue
Block a user