fix: einrichten.sh bricht bei Leerzeichen im Projektpfad ab

FreeSWITCHs record-App zerlegt ihre Argumente an Leerzeichen
(record <pfad> <zeitlimit> <stille-schwelle> <stille-treffer>). 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 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_013pj3mSmL397czPaCfbL27Z
This commit is contained in:
Jeuner 2026-08-23 00:37:41 +02:00
parent a089ffe4d6
commit c027eb0689
2 changed files with 28 additions and 1 deletions

View file

@ -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 <pfad> <zeitlimit> <stille-schwelle> <stille-treffer>
# 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; }