docs: add Starface Modulcreator guide and webhook test script
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
6eab41db92
commit
1e66646f52
130
docs/starface-modul-anleitung.md
Normal file
130
docs/starface-modul-anleitung.md
Normal file
@ -0,0 +1,130 @@
|
||||
# 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`
|
||||
36
docs/test-starface.sh
Normal file
36
docs/test-starface.sh
Normal file
@ -0,0 +1,36 @@
|
||||
#!/bin/bash
|
||||
# Test-Script für Starface Busylight Webhook-Integration
|
||||
# Simuliert Anruf-Events für alle konfigurierten Durchwahlen
|
||||
|
||||
BUSYLIGHT="http://100.95.224.14:8081"
|
||||
|
||||
echo "=== Busylight Starface Webhook Test ==="
|
||||
echo ""
|
||||
|
||||
# API Info prüfen
|
||||
echo "1. Busylight API erreichbar?"
|
||||
curl -s "$BUSYLIGHT/" | head -3
|
||||
echo ""
|
||||
|
||||
# Durchwahl zum Testen (anpassen!)
|
||||
DW="${1:-222}"
|
||||
echo "2. Test mit Durchwahl: $DW"
|
||||
echo ""
|
||||
|
||||
echo " → Sende callstart..."
|
||||
RESULT=$(curl -s "$BUSYLIGHT/$DW/callstart")
|
||||
echo " ← $RESULT"
|
||||
echo ""
|
||||
|
||||
echo " Warte 5 Sekunden (Türschild sollte jetzt ROT sein)..."
|
||||
sleep 5
|
||||
|
||||
echo " → Sende callend..."
|
||||
RESULT=$(curl -s "$BUSYLIGHT/$DW/callend")
|
||||
echo " ← $RESULT"
|
||||
echo ""
|
||||
|
||||
echo "3. Fertig! Türschild sollte jetzt zurück auf Zeiterfassungs-Status sein."
|
||||
echo ""
|
||||
echo "Verwendung: $0 [durchwahl]"
|
||||
echo "Beispiel: $0 210 (Test mit Durchwahl 210)"
|
||||
Loading…
x
Reference in New Issue
Block a user