# Notruf-Bridge (seven.io) Kleiner Webhook-Empfänger, der das Notruf-Payload des Voice Assistants über [seven.io](https://www.seven.io) in **SMS** und/oder **Sprachanruf (Text-to-Speech)** umsetzt. Die App bleibt damit provider-agnostisch — der konkrete Anbieter steckt allein hier. ``` App --POST /notruf (JSON)--> Bridge --seven.io-API--> 📱 SMS / ☎️ Anruf ``` ## Endpunkte | Methode | Pfad | Zweck | |---------|------|-------| | `GET` | `/health` | Liveness + ob ein API-Key gesetzt ist | | `POST` | `/notruf` | nimmt das App-Payload entgegen, löst SMS/Anruf aus | Erwartetes Payload (von der App erzeugt): ```json { "channels": ["sms", "call"], "phones": ["+4915112345678"], "message": { "sms": "NOTRUF: …", "call": "Achtung. …" } } ``` Pro Telefonnummer wird — je nach `channels` — eine SMS (`message.sms`) und/oder ein Anruf mit vorgelesenem Text (`message.call`, als SSML mit `SEVENIO_VOICE_NAME`) ausgelöst. Antwort: `{"received": true, "any_sent": , "results": [...]}`. ## Installation **Voraussetzung** — die Library [`seven-send`](https://kitux.de/forgejo/dschlueter/seven_send) muss in der venv installiert sein (sie kapselt die seven.io-Aufrufe): ```bash sudo -u voice /opt/voice-assistant/.venv/bin/pip install \ git+https://kitux.de/forgejo/dschlueter/seven_send.git ``` 1. **Konfig anlegen:** ```bash sudo cp emergency_bridge/emergency-bridge.env.example /etc/voice-assistant/emergency-bridge.env sudo chown voice:voice /etc/voice-assistant/emergency-bridge.env sudo chmod 600 /etc/voice-assistant/emergency-bridge.env sudo editor /etc/voice-assistant/emergency-bridge.env # API-Key + BRIDGE_TOKEN setzen ``` 2. **Service installieren:** ```bash sudo cp emergency_bridge/emergency-bridge.service /etc/systemd/system/ sudo systemctl daemon-reload sudo systemctl enable --now emergency-bridge curl -s localhost:8090/health # -> {"status":"ok","configured":true} ``` 3. **App verdrahten** — in `/etc/voice-assistant/voice-assistant.env`: ```bash EMERGENCY_WEBHOOK_URL=http://127.0.0.1:8090/notruf EMERGENCY_WEBHOOK_TOKEN= EMERGENCY_CONTACT_PHONE=+49XXXXXXXXXX ``` Danach `sudo systemctl restart voice-assistant`. ## Konfiguration (Env) | Variable | Default | Bedeutung | |----------|---------|-----------| | `SEVENIO_API_KEY` | (leer) | seven.io API-Key — ohne Key kein Versand | | `SEVENIO_SMS_FROM` | `Notruf` | Absender-ID der SMS (alphanumerisch, max. 11 Zeichen) | | `SEVENIO_VOICE_FROM` | (leer) | Caller-ID des Anrufs (verifizierte Nummer; optional) | | `SEVENIO_VOICE_NAME` | `de-de-female` | SSML-Stimme für die Anruf-Ansage | | `BRIDGE_TOKEN` | (leer) | falls gesetzt: `Authorization: Bearer ` Pflicht | | `BRIDGE_HOST` / `BRIDGE_PORT` | `127.0.0.1` / `8090` | Bind-Adresse | ## Test ```bash .venv/bin/python -m pytest tests/test_emergency_bridge.py -q ```