From c027eb0689a0c80d69c7b77f6a2d5d500fdaa722 Mon Sep 17 00:00:00 2001 From: Jeuner <62662523+Jeuners@users.noreply.github.com> Date: Sun, 23 Aug 2026 00:37:41 +0200 Subject: [PATCH] fix: einrichten.sh bricht bei Leerzeichen im Projektpfad ab FreeSWITCHs record-App zerlegt ihre Argumente an Leerzeichen (record ). Liegt das Projekt unter einem Pfad mit Leerzeichen, nimmt sie den Teil bis zum ersten Leerzeichen als Pfad und den Rest als Zahlenargumente. Die Aufnahme landet dann ohne Endung neben dem Projekt (roh im Codec-Format, z. B. Server.PCMA), der Eingang bleibt leer, der Watcher sieht nie etwas. Der Fehler tarnt sich: die Ansage laeuft normal, weil playback sein Argument am Stueck nimmt. Es sieht deshalb nach einem Watcher-Problem aus, nicht nach einem Pfadproblem. einrichten.sh prueft das jetzt vorab und nennt den Ausweg (Symlink ohne Leerzeichen, Skript darueber aufrufen). Aufgetreten auf der zweiten Maschine. Co-Authored-By: Claude Opus 5 Claude-Session: https://claude.ai/code/session_013pj3mSmL397czPaCfbL27Z --- docs/MITGABE.md | 9 ++++++++- telefon/freeswitch/einrichten.sh | 20 ++++++++++++++++++++ 2 files changed, 28 insertions(+), 1 deletion(-) diff --git a/docs/MITGABE.md b/docs/MITGABE.md index 1b406f6..da08815 100644 --- a/docs/MITGABE.md +++ b/docs/MITGABE.md @@ -95,7 +95,14 @@ muss zusammenpassen, sonst antwortet `fs_cli` nicht. 6. **Rotierende Provider-Adressen.** Löst der SIP-Hostname auf mehrere IPs auf, bricht die Registrierung dauernd ab. `SIP_PROXY` auf einen Host setzen, der auf genau eine IP zeigt. -7. **FreeSWITCH liest aus dem Cellar**, wenn `-conf` fehlt — dann überschreibt +7. **Leerzeichen im Projektpfad brechen die Aufnahme.** FreeSWITCHs `record` + zerlegt seine Argumente an Leerzeichen (`record + `). Liegt das Projekt z. B. unter + `~/Desktop/Server AI/…`, landet die Aufnahme als `…/Server.PCMA` neben dem + Projekt, der Eingang bleibt leer und es sieht aus wie ein Watcher-Fehler — + die Ansage läuft ja. `einrichten.sh` bricht deshalb bei Leerzeichen ab und + nennt den Symlink-Ausweg. Getroffen auf der zweiten Maschine, 23.08.2026. +8. **FreeSWITCH liest aus dem Cellar**, wenn `-conf` fehlt — dann überschreibt jedes Homebrew-Upgrade Trunk und Dialplan. ## 6. Was bewusst noch fehlt (vor Produktivbetrieb klären) diff --git a/telefon/freeswitch/einrichten.sh b/telefon/freeswitch/einrichten.sh index aa599a8..4da1b8c 100755 --- a/telefon/freeswitch/einrichten.sh +++ b/telefon/freeswitch/einrichten.sh @@ -6,6 +6,26 @@ set -euo pipefail PROJEKT="$(cd "$(dirname "$0")/../.." && pwd)" FS_ETC="${FS_ETC:-/opt/homebrew/etc/freeswitch}" +# FreeSWITCHs record-App zerlegt ihre Argumente an Leerzeichen: +# record +# Ein Leerzeichen im Projektpfad macht daraus einen abgeschnittenen Pfad; die +# Aufnahme landet neben dem Projekt, der Eingang bleibt leer und der Watcher +# bekommt nie etwas zu sehen. Die Ansage laeuft trotzdem - playback nimmt sein +# Argument am Stueck. Der Fehler sieht deshalb aus wie ein Watcher-Problem. +case "$PROJEKT" in + *\ *) + ersatz="$HOME/$(basename "$PROJEKT" | tr ' ' '-')" + { + echo "Der Projektpfad enthaelt ein Leerzeichen:" + echo " $PROJEKT" + echo "FreeSWITCH kann darin nicht aufnehmen. Abhilfe - einen Pfad ohne" + echo "Leerzeichen anlegen und dieses Skript darueber aufrufen:" + echo " ln -s \"$PROJEKT\" \"$ersatz\"" + echo " $ersatz/telefon/freeswitch/einrichten.sh" + } >&2 + exit 1 ;; +esac + [ -d "$FS_ETC" ] || { echo "FreeSWITCH-Konfiguration nicht gefunden: $FS_ETC" >&2; exit 1; } [ -f "$PROJEKT/.env" ] || { echo ".env fehlt in $PROJEKT" >&2; exit 1; }