busylight_modular/docs/starface-modul-anleitung.md
Christian Mueller 1e66646f52 docs: add Starface Modulcreator guide and webhook test script
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-24 17:03:29 +02:00

131 lines
4.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Starface Modulcreator Busylight Integration
## Übersicht
Dieses Modul sendet bei jedem Anruf-Event einen HTTP-Request an den Busylight-Server,
damit die Türschilder automatisch den Telefonstatus anzeigen.
## Voraussetzungen
- Starface Telefonanlage mit Modulcreator-Lizenz
- Busylight-Server erreichbar unter `http://BUSYLIGHT-IP:8081`
- Durchwahlen der Mitarbeiter im Busylight-Portal eingetragen
## Modul im Modulcreator erstellen
### Schritt 1: Neues Modul anlegen
1. Starface Admin-Oberfläche öffnen
2. **Admin****Modulcreator** (oder **Module****Modulcreator**)
3. **Neues Modul erstellen**
4. Modulinformationen:
- **Name**: `Busylight`
- **Beschreibung**: `Sendet Telefonstatus an Busylight Türschilder`
- **Vendor**: `cynfo GmbH`
- **Version**: `1.0.0`
### Schritt 2: Modulkonfiguration (Instanz-Variablen)
Unter **Modulkonfiguration** folgende Variablen anlegen:
| Variable | Typ | Standardwert | Beschreibung |
|----------|-----|-------------|-------------|
| `busylight_url` | String | `http://100.95.224.14:8081` | URL des Busylight Webhook-Servers |
### Schritt 3: Trigger konfigurieren
1. **Trigger hinzufügen**: `Anruf-Trigger` (Call Trigger)
2. **Trigger-Typ**: `Bei jedem Anruf` oder `Call State Changed`
3. **Richtung**: Eingehend + Ausgehend (beide)
### Schritt 4: Funktionsablauf erstellen
Der Ablauf hat zwei Zweige:
#### Zweig A: Anruf beginnt (callstart)
1. **Bedingung**: Anrufstatus = `CONNECTED` (Anruf angenommen)
2. **Aktion**: HTTP Request
- **Methode**: GET
- **URL**: `{busylight_url}/{called_number}/callstart`
- `{called_number}` = Die Durchwahl des angerufenen Benutzers
#### Zweig B: Anruf endet (callend)
1. **Bedingung**: Anrufstatus = `HANGUP` (Anruf beendet)
2. **Aktion**: HTTP Request
- **Methode**: GET
- **URL**: `{busylight_url}/{called_number}/callend`
### Schritt 5: Variablen-Mapping
Die Starface-Variablen müssen auf die URL gemappt werden:
| Starface-Variable | Beschreibung | Verwendung |
|-------------------|-------------|-----------|
| `${call.calledNumber}` | Durchwahl des Angerufenen | In URL als Durchwahl |
| `${call.callingNumber}` | Nummer des Anrufers | Optional für Logging |
| `${call.state}` | Aktueller Anrufstatus | Für Bedingung |
**Hinweis:** Die genauen Variablennamen können je nach Starface-Version variieren.
Im Modulcreator werden die verfügbaren Variablen als Dropdown angeboten.
### Schritt 6: Modul speichern und aktivieren
1. **Speichern** klicken
2. **Modul exportieren** als `.sfm` Datei (für Backup)
3. Unter **Module****Modulinstanzen** eine neue Instanz anlegen
4. `busylight_url` auf die IP des Busylight-Servers setzen: `http://100.95.224.14:8081`
5. **Aktivieren**
## Testen
### Von der Kommandozeile testen
```bash
# Anruf simulieren (Durchwahl 222 = Nicklas Janzen)
curl http://100.95.224.14:8081/222/callstart
# → Türschild sollte rot werden
# Anruf beenden
curl http://100.95.224.14:8081/222/callend
# → Türschild sollte auf Zeiterfassungs-Status zurückspringen
```
### Im Busylight-Portal prüfen
- **Dashboard**: Telefon-Badge sollte "Telefoniert" anzeigen
- **Protokoll**: Einträge mit `phone_active` und `phone_end` sollten erscheinen
## Alternative: Starface Rufnummernaktionen
Falls kein Modulcreator verfügbar ist, können auch **Rufnummernaktionen** verwendet werden:
1. **Admin****Rufnummern** → Durchwahl auswählen
2. **Aktionen****Neue Aktion**
3. **Bei Anrufbeginn**: HTTP Request an `http://BUSYLIGHT:8081/{durchwahl}/callstart`
4. **Bei Anrufende**: HTTP Request an `http://BUSYLIGHT:8081/{durchwahl}/callend`
**Nachteil:** Muss pro Durchwahl einzeln eingerichtet werden.
## Fehlerbehebung
### Türschild reagiert nicht
1. Busylight-Server erreichbar? `curl http://100.95.224.14:8081/`
2. Durchwahl im Busylight-Portal beim Benutzer eingetragen?
3. Benutzer laut Zeiterfassung "anwesend" oder "homeoffice"?
4. Starface-Modul aktiviert?
5. Firewall: Port 8081 von der Starface zum Busylight-Server offen?
### Falscher Benutzer wird rot
- Prüfen ob die Durchwahl im Busylight-Portal dem richtigen Benutzer zugeordnet ist
- Variable im Modulcreator: `${call.calledNumber}` (nicht `${call.callingNumber}`)
### Türschild bleibt nach Anrufende rot
- Prüfen ob das HANGUP-Event im Modul konfiguriert ist
- Im Busylight-Protokoll prüfen ob `callend` ankommt
- Manuell zurücksetzen: `curl http://100.95.224.14:8081/{durchwahl}/callend`