diff --git a/.env.example b/.env.example index 73226cb..9230e22 100644 --- a/.env.example +++ b/.env.example @@ -43,7 +43,7 @@ DECK_BOARD=Anrufe # Nutzer, die das Deck-Board sehen sollen (kommagetrennt) DECK_TEILEN= # Stapel des Deck-Boards (Arbeitsablauf, kommagetrennt) -DECK_STAPEL=Eingang,In Bearbeitung,Rückfragen,Erledigt +DECK_STAPEL="Eingang,In Bearbeitung,Rückfragen,Erledigt" # --- Leitstand (Weboberfläche) --- # 127.0.0.1 = nur dieser Rechner. 0.0.0.0 = im Netz erreichbar, dann ist diff --git a/pipe/config.py b/pipe/config.py index de5919f..a17c062 100644 --- a/pipe/config.py +++ b/pipe/config.py @@ -81,6 +81,10 @@ ABLAGE_LOKAL = Path(os.environ.get("ABLAGE_LOKAL", str(WURZEL / "ablage"))) FREESWITCH_LOG = Path(os.environ.get( "FREESWITCH_LOG", "/opt/homebrew/var/log/freeswitch/freeswitch.log")) +# Event-Socket-Port - muss mit autoload_configs/event_socket.conf.xml +# uebereinstimmen. Der Homebrew-Default variiert je nach Installation. +FS_PORT = os.environ.get("FS_PORT", "8021") + LEITSTAND_HOST = os.environ.get("LEITSTAND_HOST", "127.0.0.1") LEITSTAND_PORT = int(os.environ.get("LEITSTAND_PORT", "8088")) # Zugangsschutz. Pflicht, sobald der Leitstand nicht nur lokal erreichbar ist - diff --git a/pipe/server.py b/pipe/server.py index 21944e5..38f822e 100644 --- a/pipe/server.py +++ b/pipe/server.py @@ -58,7 +58,7 @@ def _trunk() -> tuple[str, str]: return "aus", "FreeSWITCH läuft nicht" try: roh = subprocess.run( - ["fs_cli", "-P", "8099", "-x", "sofia status gateway plusnet"], + ["fs_cli", "-P", config.FS_PORT, "-x", "sofia status gateway plusnet"], capture_output=True, text=True, timeout=8).stdout for zeile in roh.splitlines(): if zeile.startswith("Status"): diff --git a/test/erzeuge_beispiele.sh b/test/erzeuge_beispiele.sh new file mode 100755 index 0000000..a612c9a --- /dev/null +++ b/test/erzeuge_beispiele.sh @@ -0,0 +1,32 @@ +#!/bin/bash +# Erzeugt die Test-Anrufe, auf die README und MITGABE verweisen. Die Audios +# selbst sind gitignoriert (Format: reale Aufnahmen waeren Patientendaten), +# deshalb entstehen sie hier lokal per macOS "say" - kein Download, keine +# Zusatz-Abhaengigkeit. Alle Namen, Nummern und Anliegen sind erfunden. +set -euo pipefail +cd "$(dirname "$0")" + +if ! command -v say >/dev/null 2>&1; then + echo "say (macOS) nicht gefunden - auf anderen Systemen z. B. mit Piper" \ + "erzeugen (siehe telefon/ansage_bauen.sh als Vorlage)." >&2 + exit 1 +fi + +erzeuge() { # + local datei="$1" stimme="$2" text="$3" + say -v "$stimme" -o "$datei" --file-format=WAVE --data-format=LEI16@16000 "$text" + echo " $datei" +} + +echo "Erzeuge Test-Anrufe (erfundene Daten) ..." + +erzeuge rezept.wav Anna \ + "Guten Tag, hier ist Erika Musterfrau. Ich bräuchte ein neues Rezept für mein Blutdruckmedikament, Ramipril fünf Milligramm. Bitte rufen Sie mich zurück unter null zwei eins null drei, eins zwei drei vier fünf sechs sieben. Vielen Dank." + +erzeuge termin.wav Markus \ + "Hallo, hier spricht Klaus Allofs. Ich hätte gerne einen Termin zur Vorsorgeuntersuchung, am liebsten nächste Woche vormittags. Meine Nummer ist null eins fünf einhundertsiebenundzwanzig, drei vier fünf sechs sieben acht neun. Danke schön." + +erzeuge notfall.wav Petra \ + "Hallo, hier ist Sabine Winter, es geht um meinen Vater. Er hat seit einer Stunde starke Schmerzen in der Brust und ist ganz blass. Bitte rufen Sie so schnell wie möglich zurück unter null eins sieben zwei, neun acht siebenunddreißig sechzehn." + +echo "Fertig. Beispielaufruf: python3 -m pipe.process_call test/rezept.wav --nummer 021031234567"