feat: Absender/Titel frei wählbar, kein "Notruf"-Default mehr (0.1.2)

"Notruf" war als Library/CLI-Default falsch — das gehört in die Bridge-Config,
nicht ins Allzweck-Tool. Jetzt:

- kein eingebauter Default-Absender; ohne Angabe nutzt seven.io den
  Kontostandard-Absender (send_sms lässt "from" dann weg)
- CLI --from für SMS (Absender/Titel) und Voice (Caller-ID); zusätzlich
  $SEVEN_SMS_FROM / $SEVEN_VOICE_FROM als persistenter Default
- Tests: Default ohne Absender, per-call-Override, CLI --from + Env (19 gesamt)
- README: Absender/Titel dokumentiert

Die Bridge übergibt sms_from="Notruf" weiterhin explizit -> Voice Assistant
unverändert.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
Dieter Schlüter 2026-06-25 13:00:02 +02:00
commit 1344d1f7e9
7 changed files with 64 additions and 10 deletions

View file

@ -19,12 +19,18 @@ pip install -e ".[dev]"
export SEVEN_API_KEY=dein-key
seven-send sms --to +4915112345678 --text "Hallo Welt"
seven-send sms --to +4915112345678 --text "Hallo Welt" --from "MeineFirma" # Absender/Titel
seven-send voice --to +4915112345678 --text "Dies wird vorgelesen." --voice de-de-female
seven-send --dry-run sms --to +49… --text "nur testen" # nichts senden
seven-send --json sms --to +49… --text "..." # maschinenlesbar
```
**Absender/Titel:** Per `--from` setzbar (SMS: alphanumerischer Titel oder Nummer;
Voice: verifizierte Caller-ID). Ohne `--from` greift `$SEVEN_SMS_FROM` /
`$SEVEN_VOICE_FROM`, sonst der **Kontostandard-Absender** von seven.io — es gibt
**keinen** eingebauten Default-Absender.
Exit-Codes: `0` Erfolg · `1` Sendefehler · `2` Konfig-/Aufruf-Fehler.
## Library
@ -32,7 +38,7 @@ Exit-Codes: `0` Erfolg · `1` Sendefehler · `2` Konfig-/Aufruf-Fehler.
```python
from seven_send import SevenClient
c = SevenClient(api_key, sms_from="Notruf", voice_name="de-de-female")
c = SevenClient(api_key, sms_from="MeineFirma", voice_name="de-de-female")
res = c.send_sms("+4915112345678", "Hallo")
if not res: # bool(res) == res.ok
@ -52,7 +58,7 @@ res = await asyncio.to_thread(c.send_sms, "+49…", "Hallo")
| Parameter | Default | Bedeutung |
|-----------|---------|-----------|
| `api_key` | | seven.io API-Key (oder `$SEVEN_API_KEY` für die CLI) |
| `sms_from` | `Notruf` | Absender-ID der SMS (alphanumerisch, max. 11 Zeichen) |
| `sms_from` | `None` | Absender-ID/Titel der SMS (alphanumerisch max. 11 Zeichen oder Nummer); leer = Kontostandard |
| `voice_from` | `None` | Caller-ID für Anrufe (verifizierte Nummer) |
| `voice_name` | `de-de-female` | SSML-Stimme für die Anruf-Ansage |
| `dry_run` | `False` | nichts senden, nur protokollieren |