# Blacklist für STARFACE

Custom Block für den STARFACE Module Designer: prüft **eingehende Anrufe** gegen eine
konfigurierbare Blacklist und behandelt **anonyme Anrufe** (unterdrückte Rufnummer).
Pro Eintrag lässt sich festlegen, was passieren soll – auflegen, besetzt, umleiten oder
Ansage abspielen.

## Was kann das Modul?

- **Pro Nummer / Bereich** eine eigene Aktion: `HANGUP`, `BUSY`, `REDIRECT`, `ANNOUNCE`, `ALLOW`
- **Anonyme Anrufer** (Rufnummernunterdrückung) separat behandeln
- **Bereichssperren** (z.B. ganzer `0190`-Bereich) inklusive **Ausnahmen** (`ALLOW`)
- Robuste **Nummern-Normalisierung** (+49 / 0049 / 0… werden einheitlich verglichen)

## Quick Start (selbst kompilieren)

```bash
cd v8-9-10
./build-block.sh        # erzeugt BlacklistBlock.class
```

Die STARFACE-API-JARs werden automatisch aus dem benachbarten `mail2fax`-Modul genutzt,
falls sie nicht in `v8-9-10/libs/starface/` liegen. Es sind **keine** Zusatz-Bibliotheken nötig.

Danach im Module Designer importieren → siehe **[v8-9-10/INSTALLATION.md](v8-9-10/INSTALLATION.md)**.

## Projektstruktur

```
blacklist-module/
├── README.md
└── v8-9-10/                 # für STARFACE 8/9/10
    ├── BlacklistBlock.java  # Custom Block Quellcode
    ├── BlacklistBlock.class # kompiliertes Ergebnis
    ├── build-block.sh       # Kompilier-Script
    ├── README.md            # technische Doku (Felder, Aktionen, Matching)
    ├── INSTALLATION.md      # Schritt-für-Schritt im Module Designer
    └── libs/starface/       # STARFACE API JARs (für den Build)
```

## Unterschied zum Mail2Fax-Modul

| | Mail2Fax | Blacklist |
|--|----------|-----------|
| Auslöser | **Timer** (pollt regelmäßig E-Mails) | **eingehender Anruf** (Call-Processing) |
| Runtime | normale Runtime | AGI-Runtime (Anruf-Kontext) |
| Zusatz-Libs | JavaMail erforderlich | keine |
| Aktion | Fax senden | Anruf auflegen/besetzt/umleiten/Ansage |

## Wichtig zur Einbindung

Das Modul muss als **Call-Processing**-Modul mit Aktivierung **"bei allen eingehenden
Anrufen"** eingebunden werden (oder gezielt in die Rufverteilung eines Benutzers/einer
Gruppe). Nur dann läuft der Block im Anruf-Kontext und kann den Anruf beeinflussen.
Details in [v8-9-10/INSTALLATION.md](v8-9-10/INSTALLATION.md).
</content>
