From da50567d542fc88d43e23b6237488b1a6dc256f4 Mon Sep 17 00:00:00 2001 From: Jeuner <62662523+Jeuners@users.noreply.github.com> Date: Sat, 22 Aug 2026 23:54:04 +0200 Subject: [PATCH] fix: starten.sh liest FS_PORT und FS_ETC aus der .env 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 Claude-Session: https://claude.ai/code/session_013pj3mSmL397czPaCfbL27Z --- .env.example | 6 ++++++ telefon/starten.sh | 13 +++++++++++++ 2 files changed, 19 insertions(+) diff --git a/.env.example b/.env.example index b1c2b54..73226cb 100644 --- a/.env.example +++ b/.env.example @@ -54,6 +54,12 @@ LEITSTAND_USER=praxis LEITSTAND_PASS= # --- Telefonanlage (nur Stufe 2) --- +# Event-Socket-Port von FreeSWITCH. Muss zu listen-port in +# autoload_configs/event_socket.conf.xml passen, sonst antwortet fs_cli nicht +# und telefon/starten.sh sieht den Trunk nie als registriert. +FS_PORT=8099 +# Konfigurationsverzeichnis von FreeSWITCH (Apple Silicon: /opt/homebrew/...) +FS_ETC=/opt/homebrew/etc/freeswitch # Log von FreeSWITCH; der Leitstand liest daraus die Anruf-Ereignisse. # Apple Silicon: /opt/homebrew/... , Intel-Mac: /usr/local/... #FREESWITCH_LOG=/opt/homebrew/var/log/freeswitch/freeswitch.log diff --git a/telefon/starten.sh b/telefon/starten.sh index 5734b95..5bc2b82 100755 --- a/telefon/starten.sh +++ b/telefon/starten.sh @@ -5,6 +5,19 @@ set -uo pipefail PROJEKT="$(cd "$(dirname "$0")/.." && pwd)" cd "$PROJEKT" +# Werte aus der .env uebernehmen (FS_PORT, FS_ETC, OLLAMA_URL, LEITSTAND_PORT). +# Wie in pipe/config.py gewinnt eine bereits gesetzte Umgebungsvariable - so +# bleibt ein einmaliges "FS_PORT=8021 ./telefon/starten.sh" moeglich. +if [ -f .env ]; then + while IFS= read -r zeile; do + case "$zeile" in ''|'#'*) continue ;; *=*) : ;; *) continue ;; esac + schluessel="${zeile%%=*}" + wert="${zeile#*=}" + wert="${wert%\"}"; wert="${wert#\"}" + [ -n "${!schluessel:-}" ] || export "$schluessel=$wert" + done < .env +fi + fehler=0 melde() { printf ' %-38s %s\n' "$1" "$2"; }