diff --git a/.gitignore b/.gitignore index 9648966..3bbba3e 100644 --- a/.gitignore +++ b/.gitignore @@ -17,4 +17,3 @@ __pycache__/ /telefon/modell.json # Trainingsdaten-Export (pipe.export) - enthaelt volle Transkripte/Namen /training/ -/telefon/notruf_ton.wav diff --git a/HANDOFF.md b/HANDOFF.md index 66c7957..a009aaf 100644 --- a/HANDOFF.md +++ b/HANDOFF.md @@ -4,25 +4,6 @@ Voller Weg funktioniert Ende-zu-Ende: externer Anruf auf Durchwahl 9 (Plusnet → FreeSWITCH → `dialog/pipecat_bootstrap.py` → WebSocket → Astra) erreicht Astra, und Astra liefert jetzt auch eine echte, fertige Antwort statt nur "Einen Moment bitte" (Fix 2026-09-13, siehe unten) - kein offener Blocker mehr bekannt. -## 2026-09-17 — Notruf-Ton mit Taste 1 -> Astra - -Hauptnummer (Catch-all `00_praxis_ab.xml`) und DW3 (nach den 20 s) spielen -nach dem Annehmen `telefon/notruf_ton.wav` (54 s Ton, Quelle -`profile/aufzug-notdienst/notruf_ton.m4a`, gebaut von -`telefon/notruf_ton_bauen.sh`: 8 kHz mono PCM16, -3 dB). Taste 1 während des -Tons oder bis 3 s danach -> `execute_extension notruf_taste_1 XML -notruf_menue` -> `socket 127.0.0.1:8095` wie DW9. Ohne Taste weiter zu -Ansage + Aufnahme wie bisher. DW9 unverändert direkt Astra. - -Eigener Kontext `notruf_menue` (`dialplan/notruf_menue.xml`, Top-Level), -weil der Catch-all in `public` die Wahl sonst verschlucken würde. - -Verifiziert: Loopback mit `uuid_recv_dtmf 1` und echter Anruf 17:00 (DTMF -per RTP kam an, Astra übernahm). **Nicht getestet:** Pfad ohne Taste -(Ton zu Ende -> Ansage -> Aufnahme) und Profil ohne Ton-Datei. -Sicherung vorher: Git-Tag `vor-notruf-ton-2026-09-17`, Live-Dialplan + -ansage.wav + plist in `ablage/sicherung-vor-notruf-ton-2026-09-17/`. - ## 2026-09-17 — Leitung stumm nach IP-Wechsel, Watchdog-Kinder sterben **Symptom:** Durchwahl 9 (und die ganze Leitung) nahm nicht ab. Letzter diff --git a/profile/aufzug-notdienst/notruf_ton.m4a b/profile/aufzug-notdienst/notruf_ton.m4a deleted file mode 100644 index 9819ee0..0000000 Binary files a/profile/aufzug-notdienst/notruf_ton.m4a and /dev/null differ diff --git a/telefon/ansage_bauen.sh b/telefon/ansage_bauen.sh index b189e09..93033b6 100755 --- a/telefon/ansage_bauen.sh +++ b/telefon/ansage_bauen.sh @@ -136,6 +136,3 @@ ffmpeg -v error -y -i "$TMP/sprache.wav" -i "$TMP/ton.wav" \ DAUER=$(ffprobe -v error -show_entries format=duration -of csv=p=0 telefon/ansage.wav) printf 'telefon/ansage.wav erzeugt (%.1f s, %s)\n' "$DAUER" "$BESCHREIBUNG" - -# Notruf-Ton gehoert zum Profil wie die Ansage - bei Profilwechsel mitziehen. -PROFIL="$PROFIL" telefon/notruf_ton_bauen.sh diff --git a/telefon/freeswitch/dw3_warten.xml.tpl b/telefon/freeswitch/dw3_warten.xml.tpl index a7f64f1..f3b1471 100644 --- a/telefon/freeswitch/dw3_warten.xml.tpl +++ b/telefon/freeswitch/dw3_warten.xml.tpl @@ -21,14 +21,6 @@ - - - diff --git a/telefon/freeswitch/einrichten.sh b/telefon/freeswitch/einrichten.sh index 69a9ffd..85184b3 100755 --- a/telefon/freeswitch/einrichten.sh +++ b/telefon/freeswitch/einrichten.sh @@ -52,14 +52,10 @@ fuelle() { # fuelle "$PROJEKT/telefon/freeswitch/plusnet.xml.tpl" "$FS_ETC/sip_profiles/external/plusnet.xml" chmod 600 "$FS_ETC/sip_profiles/external/plusnet.xml" # enthaelt das SIP-Passwort fuelle "$PROJEKT/telefon/freeswitch/praxis_ab.xml.tpl" "$FS_ETC/dialplan/public/00_praxis_ab.xml" -# Kontext fuer Taste 1 waehrend des Notruf-Tons - Top-Level unter dialplan/, -# nicht in public/ (siehe notruf_menue.xml.tpl). -fuelle "$PROJEKT/telefon/freeswitch/notruf_menue.xml.tpl" "$FS_ETC/dialplan/notruf_menue.xml" echo "Trunk -> $FS_ETC/sip_profiles/external/plusnet.xml (Rechte 600)" echo "Dialplan -> $FS_ETC/dialplan/public/00_praxis_ab.xml" echo "Ansage -> $PROJEKT/telefon/ansage.wav" -echo "Notruf -> $FS_ETC/dialplan/notruf_menue.xml (Ton: telefon/notruf_ton.wav, Taste 1 -> Astra)" echo "Eingang -> $PROJEKT/telefon/eingang" if [ -n "${DW3_DDI:-}" ]; then diff --git a/telefon/freeswitch/notruf_menue.xml.tpl b/telefon/freeswitch/notruf_menue.xml.tpl deleted file mode 100644 index 3edeaf6..0000000 --- a/telefon/freeswitch/notruf_menue.xml.tpl +++ /dev/null @@ -1,25 +0,0 @@ - - - - - - - - - - diff --git a/telefon/freeswitch/praxis_ab.xml.tpl b/telefon/freeswitch/praxis_ab.xml.tpl index e9147ee..445f142 100644 --- a/telefon/freeswitch/praxis_ab.xml.tpl +++ b/telefon/freeswitch/praxis_ab.xml.tpl @@ -9,14 +9,6 @@ - - - . -# Der Ton laeuft im Dialplan vor der Ansage; Taste 1 verbindet waehrenddessen -# zu Astra (siehe telefon/freeswitch/notruf_menue.xml.tpl). -# Format wie telefon/ansage.wav: 8 kHz mono PCM16, -3 dB Kopfraum. -# -# Hat das Profil keinen Ton, wird eine alte notruf_ton.wav entfernt. Der -# Dialplan findet dann keine Datei, play_and_get_digits kehrt sofort zurueck -# und der Anruf laeuft direkt zur Ansage - kein Ton, kein Menue. -set -euo pipefail -cd "$(dirname "$0")/.." -if [ -z "${PROFIL:-}" ] && [ -f .env ]; then - PROFIL=$(awk -F= '$1=="PROFIL"{gsub(/"/,"",$2); print $2}' .env) -fi -PROFIL="${PROFIL:-praxis}" - -QUELLE="" -for ext in m4a ogg mp3 wav aiff; do - if [ -f "profile/$PROFIL/notruf_ton.$ext" ]; then - QUELLE="profile/$PROFIL/notruf_ton.$ext" - break - fi -done - -if [ -z "$QUELLE" ]; then - rm -f telefon/notruf_ton.wav - echo "Kein Notruf-Ton im Profil $PROFIL - telefon/notruf_ton.wav entfernt (kein Menue)." - exit 0 -fi - -ffmpeg -v error -y -i "$QUELLE" -af volume=-3dB -ar 8000 -ac 1 -c:a pcm_s16le telefon/notruf_ton.wav -DAUER=$(ffprobe -v error -show_entries format=duration -of csv=p=0 telefon/notruf_ton.wav) -printf 'telefon/notruf_ton.wav erzeugt (%.1f s, %s)\n' "$DAUER" "$QUELLE"