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; }