pipe/server.py rief fs_cli mit fest verdrahtetem Port 8099 auf (Wert vom
Ursprungsrechner) statt den Wert aus der Config zu lesen - auf einer Maschine
mit abweichendem Event-Socket-Port (hier 8022) zeigte der Leitstand "Telefon:
unklar", obwohl der Trunk laengst registriert war. Neue FS_PORT-Variable in
pipe/config.py (Default 8021, wie starten.sh es ueber die .env erwartet).
DECK_STAPEL in .env.example war unquotiert - das Leerzeichen in "In
Bearbeitung" bricht das `source .env` in telefon/freeswitch/einrichten.sh
(bash interpretiert es als zweites Kommando). Wert jetzt in Anführungszeichen.
test/erzeuge_beispiele.sh erzeugt die im README/MITGABE referenzierten
Test-Anrufe (rezept/termin/notfall) lokal per macOS "say" - vorher liefen die
Beispielbefehle aus einem frischen Klon ins Leere, weil test/*.wav bewusst
gitignoriert ist.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01PuP3zfgYqhnrwyEne2ejG7
Der Event-Socket-Port war fest auf 8099 vorgegeben - ein Wert, der nur auf dem
ersten Rechner stimmt. Auf der zweiten Maschine hoert FreeSWITCH auf 8022;
fs_cli antwortet dann nicht, starten.sh sieht den Trunk nie als registriert und
bricht ab, obwohl alles laeuft.
starten.sh uebernimmt die Werte jetzt aus der .env - wie pipe/config.py, mit
Vorrang fuer bereits gesetzte Umgebungsvariablen. FS_PORT und FS_ETC stehen
dokumentiert in .env.example.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_013pj3mSmL397czPaCfbL27Z
Sammelt, was beim Aufsetzen auf einer frischen Maschine fehlt: die nicht im
Repo liegenden Teile, der kurze Weg über Stufe 1 ohne Telefonie, eine
Prüfleiter und die Fallen aus dem ersten Volltest.
Dabei drei Lücken geschlossen, die drüben zugeschlagen hätten:
- NEXTCLOUD_DECK fehlte in .env.example. DECK_STAPEL und DECK_TEILEN stehen
dort, der Hauptschalter nicht — die Pipe legt dann kein Board an, obwohl
alles richtig aussieht.
- WHISPER_MODELL/WHISPER_COMPUTE galten laut Vorlage allgemein, greifen aber
nur bei STT_BACKEND=faster. Standard ist whispercpp. Jetzt sind beide Blöcke
getrennt und STT_BACKEND, WHISPERCPP_BIN/_MODELL, WHISPER_THREADS,
NEXTCLOUD_USERID und FREESWITCH_LOG dokumentiert.
- README hatte eine doppelte Überschrift.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_013pj3mSmL397czPaCfbL27Z
Nimmt Anrufe einer Hausarztpraxis entgegen, transkribiert sie lokal,
kategorisiert das Anliegen und legt es strukturiert ab. Keine Patientendaten
verlassen den Rechner: Spracherkennung, Sprachmodell und Sprachsynthese laufen
lokal, im Datenpfad steht kein Cloud-Dienst.
Aufbau:
- FreeSWITCH nimmt über einen SIP-Trunk an, spielt die Ansage und nimmt auf.
- pipe.watch erkennt fertige Aufnahmen und schiebt sie durch die Pipe.
- whisper.cpp transkribiert, ein lokales Sprachmodell (Ollama) ordnet in
Kategorie und Dringlichkeit ein — mit erzwungenem JSON-Schema.
- Ablage lokal, optional Nextcloud (WebDAV) und ein Deck-Board.
- Leitstand (pipe.server): Board mit Eingang/In Bearbeitung/Rückfragen/Erledigt,
Aufnahmen zum Anhören, Verlauf und Ampeln für alle beteiligten Dienste.
Zugangsdaten und Anrufdaten liegen außerhalb des Repositorys (.env, ablage/,
telefon/). Konfiguration siehe .env.example, Einrichtung siehe README.