
Verschlüsselte Push-to-Talk-Sprach- und Textkommunikation über Tor-Versteckdienste mit Ende-zu-Ende-Verschlüsselung, konfigurierbaren Ciphern, Relay-Modus für Gruppenanrufe und anti-forensischer Datenvernichtung.
Verschlüsselte Push-to-Talk-Sprachkommunikation über Tor-Hidden-Services.
TerminalPhone ist ein einzelnes, eigenständiges Bash-Skript, das anonyme, Ende-zu-Ende-verschlüsselte Sprach- und Textkommunikation zwischen zwei oder mehreren Parteien über das Tor-Netzwerk bereitstellt. Es funktioniert wie ein Walkie-Talkie: Sie nehmen eine Sprachnachricht auf, die dann komprimiert, verschlüsselt und als einzelne Einheit an die entfernte Partei übertragen wird. Während eines Anrufs können Sie auch verschlüsselte Textnachrichten senden. Keine Server-Infrastruktur, keine Konten, keine Telefonnummern. Ihre Tor-Hidden-Service-.onion-Adresse ist Ihre Identität.
T, um eine Nachricht einzugeben..onion-Adressen aus. Die entfernte Adresse wird in der Anrufkopfzeile angezeigt.S, um auf die Einstellungen zuzugreifen. Ändern Sie Ihre Chiffre im laufenden Betrieb; die Anzeige der entfernten Partei wird automatisch aktualisiert.jq (auf Anforderung installiert). Die Lautstärke wird nach jeder Auslösung automatisch wiederhergestellt..onion-Adresse dient als permanenter, routingfähiger Endpunkt. Keine Portweiterleitung oder öffentliche IP erforderlich..onion-Adresse als scannbaren QR-Code im Terminal anzeigen. Wenn qrencode nicht installiert ist, werden Sie zur Installation aufgefordert. Der QR-Code wird auf dem alternativen Bildschirmpuffer gerendert und beim Schließen zerstört. Ein Hinweis warnt davor, dass einige QR-Scanner automatisch http:// voranstellen; dieses Präfix wird beim Wählen automatisch entfernt..tmp-Erweiterungen und zufällige Hex-Identifikatoren. Es werden keine Dateityp- oder Zeitstempel-Metadaten an das Dateisystem weitergegeben.ExcludeNodes mit StrictNodes in der torrc./dev/urandom überschreibt. Die Dateigröße wird ausgelesen, diese Anzahl Bytes Zufallsdaten werden mit dd unter Verwendung von conv=notrunc über die Datei geschrieben, der Schreibvorgang wird mit sync auf das Speichergerät geleert, und dann wird die Datei mit rm entfernt. Deckt alle sensiblen Laufzeitdateien ab: rohe PCM-Aufnahmen, Opus-kodiertes Audio, verschlüsselte Nutzdaten, entschlüsseltes eingehendes Audio und Chat, Stimmeffekt-Zwischendateien, Chiffren- und HMAC-Schlüsselmaterial, Nonce-Protokolle, Sitzungsflags, PID-Dateien, Named Pipes, Tor-Hidden-Service-Schlüssel bei Rotation und Relay-Sitzungsdaten. Bei Verzeichnissen werden alle darin enthaltenen Dateien rekursiv überschrieben. Ein eingebauter Test erstellt eine Beispieldatei, zeigt den ursprünglichen Inhalt im Klartext und hexadezimal an, überschreibt sie und zeigt das überschriebene Hex an, damit der Benutzer visuell bestätigen kann, dass die Daten zerstört wurden. Standardmäßig deaktiviert – für die meisten Benutzer ist ein normales rm völlig ausreichend. TerminalPhone's temporäre Dateien sind klein und kurzlebig, und der Speicherplatz wird normalerweise schnell durch normale Systemaktivitäten wiederverwendet. Diese Funktion ist für Benutzer gedacht, die eine zusätzliche Schutzschicht gegen forensische Wiederherstellung wünschen. Hinweis: Auf SSDs und Flash-Speichern kann das Überschreiben aufgrund des Wear-Levelings auf unterschiedliche physische NAND-Zellen treffen – Festplattenverschlüsselung ist der einzige zuverlässige Schutz auf Flash-Medien. Auf herkömmlichen HDDs ersetzt das Überschreiben die Daten an der gleichen physischen Position und ist gegen alle softwarebasierten Wiederherstellungsmethoden wirksam.RELAY:1 und zeigen die Live-Anruferanzahl der Gruppe an. Wenn ein Anrufer geht, werden die anderen nicht getrennt. Das Operator-Dashboard zeigt Anruferanzahl, Betriebszeit und Datendurchsatz.Unterstützte Distributionen: Debian/Ubuntu (apt), Fedora/RHEL (dnf), Arch (pacman).``` bash
git clone https://gitlab.com/here_forawhile/terminalphone.git cd terminalphone bash terminalphone.sh
Wählen Sie **7** aus dem Menü, um alle Abhängigkeiten automatisch zu installieren. Die folgenden Pakete werden installiert:
| Paket | Zweck |
|---|---|
| `tor` | Onion-Routing und versteckter Dienst |
| `opus-tools` | Sprachkomprimierung (Opus-Codec) |
| `sox` | Audioverarbeitungswerkzeuge |
| `socat` | Bidirektionale TCP-Weiterleitung über Tor-SOCKS-Proxy |
| `openssl` | AES-256-CBC-Verschlüsselung und -Entschlüsselung |
| `alsa-utils` | Audioaufnahme und -wiedergabe (`arecord`, `aplay`) |
### macOS``` bash
git clone https://gitlab.com/here_forawhile/terminalphone.git
cd terminalphone
bash terminalphone.sh
Wählen Sie die Option 7, um alle Abhängigkeiten automatisch zu installieren. Wenn Homebrew nicht installiert ist, wird das Skript es zuerst installieren und dann die folgenden Pakete installieren:
Hinweis: macOS verwendet sox sowohl für die Aufnahme (rec) als auch für die Wiedergabe (play) anstelle von ALSA. Es werden keine zusätzlichen Audiopakete benötigt.
Apple Silicon (M1/M2/M3+): Falls Ihr Terminal zufällig unter Rosetta 2 (einem x86_64-Prozess) läuft, während Homebrew im nativen ARM-Prefix (/opt/homebrew) installiert ist, schlägt brew install normalerweise mit Cannot install under Rosetta 2 in ARM default prefix fehl. Der Abhängigkeitsinstaller erkennt dies nun und führt Homebrew automatisch unter arch -arm64 erneut aus, sodass Option 7 unabhängig davon funktioniert, wie das Skript gestartet wurde.
TerminalPhone unterstützt Android-Geräte über Termux. Aufgrund der abgeschotteten Audio-Architektur von Android sind zwei zusätzliche Komponenten erforderlich.
Schritt 1: Termux installieren
Installieren Sie Termux von F-Droid. Verwenden Sie nicht die Version aus dem Play Store, da diese veraltet ist und keine Updates mehr erhält.
Schritt 2: Die Termux:API-App installieren
Installieren Sie Termux:API von F-Droid. Dies ist eine separate Android-Anwendung (kein Termux-Paket), die eine Brücke zwischen Termux und den Android-System-APIs bereitstellt. TerminalPhone benötigt sie, um auf das Gerätemikrofon und die Medienwiedergabe zuzugreifen.
Ohne die auf dem Gerät installierte Termux:API-App funktionieren die Befehle termux-microphone-record und termux-media-player nicht, und Audioaufnahme und -wiedergabe schlagen stillschweigend fehl.
Nach der Installation der Termux:API-App erteilen Sie die Mikrofonberechtigungen, wenn Sie dazu aufgefordert werden.
Schritt 3: Das Termux:API-Paket innerhalb von Termux installieren```bash pkg install termux-api
This installs the command-line utilities that communicate with the Termux:API app.
**Schritt 4: TerminalPhone ausführen**```bash
git clone https://gitlab.com/here_forawhile/terminalphone.git
cd terminalphone
bash terminalphone.sh
Wählen Sie Option 7 aus, um alle verbleibenden Abhängigkeiten zu installieren. Der Installer führt zuerst pkg upgrade aus, um etwaige Paketverknüpfungsprobleme zu beheben, und installiert dann tor, opus-tools, sox, socat, openssl-tool, ffmpeg und termux-api.
Termux-spezifische Abhängigkeiten:
| Paket | Zweck |
|---|---|
termux-api | CLI-Brücke zum Android-Mikrofon und Mediaplayer |
ffmpeg | Konvertiert M4A-Aufnahmen von Android in rohes PCM für die Opus-Kodierung |
To receive a call: Select option 1 (Listen for calls) To make a call: Select option 2 (Call an onion address)
Beide Parteien müssen Tor ausführen und denselben gemeinsam genutzten Schlüssel konfiguriert haben, bevor ein Anruf initiiert wird.
---
## Nutzung
### Menüoptionen```
1 Listen for calls Wait for an incoming connection
2 Call an onion address Connect to a remote .onion endpoint
3 Show my onion address Display your .onion address (with optional QR code)
4 Set shared secret Configure the pre-shared encryption key
5 Test audio (loopback) Record and play back audio locally
6 Show status Display Tor, secret, and connection status
7 Install dependencies Install all required packages
8 Start Tor Start the Tor process and hidden service
9 Stop Tor Stop the Tor process
10 Restart Tor Stop and restart Tor
11 Rotate onion address Generate a new .onion address (destroys the old one)
12 Settings Configure Opus quality, PTT chime, Snowflake, auto-listen, PTT key, voice changer, security, Tor settings
13 Relay mode Start a zero-knowledge group bridge for N callers
0 Quit Stop Tor and exit
Linux (Drücken zum Sprechen):
| Taste | Aktion |
|---|---|
| SPACE gedrückt halten | Sprachnachricht aufnehmen. Wird beim Loslassen automatisch gesendet. |
| T | Verschlüsselte Textnachricht senden. |
| S | Einstellungen während des Anrufs öffnen (Chiffre ändern, Qualität anpassen). |
| Q | Auflegen und zum Menü zurückkehren. |
Termux (Umschaltmodus):
Die Softwaretastatur von Android sendet Tastenereignisse beim Loslassen, nicht beim Drücken. TerminalPhone passt sich an, indem es den Umschaltmodus auf Termux verwendet.
| Taste | Aktion |
|---|---|
| SPACE antippen | Aufnahme starten. Erneutes Antippen zum Stoppen und Senden. |
bash terminalphone.sh install # Install dependencies bash terminalphone.sh test # Audio loopback test bash terminalphone.sh status # Show status bash terminalphone.sh listen # Listen for incoming calls bash terminalphone.sh call ADDRESS # Call a .onion address bash terminalphone.sh relay # Start relay mode (group bridge)
## So funktioniert's
TerminalPhone verwendet ein Aufzeichnen-dann-Senden-Modell. Wenn Sie PTT aktivieren, zeichnet das Mikrofon kontinuierlich auf, bis Sie loslassen. Die vollständige Aufnahme wird dann durch die folgende Pipeline verarbeitet:```
SENDER RECEIVER
────── ────────
Microphone Speaker
│ ▲
▼ │
Raw PCM (8kHz, 16-bit, mono) Opus decode
│ ▲
▼ │
Opus encode (16kbps) AES-256-CBC decrypt
│ ▲
▼ │
AES-256-CBC encrypt Base64 decode
│ ▲
▼ │
Base64 encode ──▶ socat ──▶ Tor ──▶ socat ──▶ Receive
Das Wire-Protokoll ist zeilenbasierter Text über eine TCP-Verbindung:
Auf Termux wird ein zusätzlicher Konvertierungsschritt durchgeführt, der das native M4A-Aufnahmeformat von Android handhabt, indem ffmpeg verwendet wird, um vor der Opus-Kodierung in rohes PCM zu konvertieren.
Verschlüsselung: Sämtliches Audio wird vor der Übertragung mit einem benutzerkonfigurierbaren Algorithmus (Standard: AES-256-CBC) verschlüsselt. 21 kuratierte Algorithmen stehen zur Verfügung, geordnet von stärkster (256-Bit) bis ausreichender (128-Bit) Stärke. Der Schlüssel wird aus einem vorab geteilten Geheimnis mit PBKDF2 und 10.000 Iterationen abgeleitet. Die Verschlüsselung erfolgt auf Anwendungsebene, unabhängig von der Transportverschlüsselung von Tor. Geheimnisse werden über Dateideskriptoren (-pass fd:3) an OpenSSL übergeben, nicht über Befehlszeilenargumente, sodass sie niemals in der Prozessliste erscheinen.
Algorithmusaushandlung: Beide Parteien tauschen bei Verbindungsaufbau und bei jeder Änderung des Algorithmus während eines Anrufs die Namen der Algorithmen aus. Algorithmusnamen sind nicht geheim (Kerckhoffs-Prinzip). Stimmen lokaler und entfernter Algorithmus nicht überein, sehen beide Parteien rote Indikatoren in der Anrufkopfzeile.
Transport: Alle Daten werden über Tor Hidden-Service-Schaltkreise geleitet. Die IP-Adresse keiner Partei wird offengelegt. Es gibt keinen Clearnet-Verkehr. Die Verbindung kann von einem Netzbeobachter keiner der beiden Parteien zugeordnet werden.
Traffic-Analyse-Resistenz: Das Aufnehmen-dann-Senden-Modell erzeugt unregelmäßige Übertragungsmuster (Nachrichten variabler Länge in unregelmäßigen Abständen), die schwerer zu identifizieren sind als kontinuierliches Streaming.
Authentifizierung: Das gemeinsame Geheimnis dient als implizite Authentifizierung. Haben beide Parteien nicht dasselbe Geheimnis, schlägt die Entschlüsselung fehl und es wird kein Audio abgespielt. Bei Verbindungsaufbau tauschen beide Parteien ihre .onion-Adressen zur Anruferidentifikation aus. Das Geheimnis kann optional im Ruhezustand mit einer Passphrase verschlüsselt werden; beim Start fordert das Skript zur Eingabe der Passphrase auf, um es zu entsperren.
HMAC-Protokoll-Signierung (optional): Wenn aktiviert, wird jede Wire-Protokoll-Nachricht – einschließlich Kontrollsignalen wie HANGUP, PTT_START und PING – mit HMAC-SHA256 signiert, abgeleitet vom gemeinsamen Geheimnis. Pro Nachricht wird eine zufällige Nonce eingefügt, sodass identische Befehle eindeutige Signaturen erzeugen. Gesehene Nonces werden pro Anruf nachverfolgt und Duplikate zurückgewiesen, um Replay-Angriffe zu verhindern. Die HMAC-Einstellung wird zu Anrufbeginn über eine Laufzeitdatei eingefroren, sodass Sende- und Empfangspfad stets übereinstimmen, selbst wenn die Einstellung während des Anrufs umgeschaltet wird (Änderungen werden beim nächsten Anruf wirksam). Auf der Empfangsseite werden Nachrichten mit ungültiger, fehlender oder wiederverwendeter Signatur stillschweigend verworfen. Dies verhindert, dass ein Angreifer, der den Tor-Schaltkreis kompromittiert hat (aber das gemeinsame Geheimnis nicht besitzt), Befehle einschleusen oder wiedergeben kann. Beide Parteien müssen HMAC aktivieren, damit Anrufe funktionieren. Nicht kompatibel mit Versionen vor 1.1.3.
Einschränkungen:
Relay-Modus-Sicherheit: Das Relay ist architekturbedingt wissensfrei. Es besitzt niemals das gemeinsame Geheimnis und kann keine Inhalte entschlüsseln. Audiodaten fließen durch Kernel-Pipe-Puffer (FIFOs), die nur im Speicher existieren – nichts wird auf die Festplatte geschrieben. Wenn das Relay stoppt, werden alle temporären Dateien gelöscht. Der Relay-Betreiber kann weder feststellen, was gesagt wurde, wer die Anrufer sind, noch Nachrichten lesen. Das Relay filtert alle Kontrollsignale (HANGUP, ID:, CIPHER:, PTT_START, PTT_STOP) und leitet nur AUDIO:, MSG: und PING weiter. Ein globaler passiver Angreifer könnte eine Verkehrskorrelationsanalyse durchführen, um Anrufer mit dem Relay zu assoziieren, aber der Nachrichteninhalt bleibt undurchsichtig.
Relay-Kapazität: Der primäre Engpass ist die Tor-Bandbreite. Der Durchsatz von Tor-Hidden-Services ist stark variabel und hängt von der Schaltkreisqualität, Relay-Überlastung und geografischer Entfernung ab. Eine typische 10-Sekunden-Sprachnachricht ist ~20 KB verschlüsselt, und jede Übertragung wird an N-1 Zuhörer verteilt.
Realistische Kapazität beträgt 3–5 Anrufer für ein Relay, das auf einem Telefon (Termux) läuft, oder 5–10 Anrufer auf einem dedizierten Linux-Rechner mit stabiler Verbindung. Relays auf Mobilgeräten unterliegen zusätzlichen Einschränkungen: Mobile Daten erhöhen die Latenz zusätzlich zu Tor, Android kann Hintergrund-Termux-Prozesse beenden, um Speicher freizugeben, und der Batterieverbrauch steigt mit jedem verbundenen Anrufer. Die Tor-Schaltkreisbandbreite kann je nach Pfadqualität zwischen 50 KB/s und 500 KB/s schwanken, und Schaltkreise können sich während einer Sitzung verschlechtern oder rotieren. Der Einzelhop-Modus verbessert den Durchsatz, beseitigt aber nicht die Tor-Relay-Überlastung. Diese Schätzungen gehen vom PTT-Modell aus, bei dem jeweils nur eine Person sendet – gleichzeitige Übertragungen würden die Leistung weiter verschlechtern. Anrufer in einem Gruppenanruf sollten in Erwägung ziehen, ihre Opus-Bitrate zu senken (Einstellungen → Opus-Kodierung), um die Nachrichtengrößen zu reduzieren und das Relay zu entlasten.
Die gesamte Konfiguration wird in .terminalphone/ relativ zum Skript-Speicherort gespeichert:```
.terminalphone/
tor_data/ Tor data directory and hidden service keys
audio/ Temporary audio files (cleaned on exit)
pids/ Process ID tracking
shared_secret Encrypted shared secret file
torrc Generated Tor configuration
Standardmäßige Audio-Parameter (am Anfang des Skripts definiert):
| Parameter | Standardwert | Beschreibung |
|---|---|---|
| `LISTEN_PORT` | 7777 | TCP-Port für eingehende Verbindungen |
| `TOR_SOCKS_PORT` | 9050 | Tor-SOCKS-Proxy-Port |
| `OPUS_BITRATE` | 16 | Opus-Codierungsbitrate in kbps |
| `CIPHER` | aes-256-cbc | Verschlüsselungsverfahren (über Einstellungen konfigurierbar) |
| `SNOWFLAKE_ENABLED` | 0 | Snowflake-Bridge zur Umgehung von Zensur |
| `AUTO_LISTEN` | 0 | Automatisches Lauschen auf Anrufe, wenn Tor startet |
| `PTT_KEY` | LEERTASTE | Push-to-Talk-Taste (über Einstellungen konfigurierbar) |
| `VOL_PTT` | 0 | Doppeltippen auf Lautstärke verringern für PTT, nur Termux (experimentell) |
| `EXCLUDE_NODES` | (leer) | Tor-ExcludeNodes-Länderliste (z. B. `{US},{GB}`) |
| `HMAC_AUTH` | 0 | HMAC-Signierung aller Protokollnachrichten (optional, beide Seiten müssen übereinstimmen) |
| `OVERWRITE_DELETE` | 0 | Temporäre Dateien vor dem Löschen mit Zufallsdaten überschreiben (standardmäßig deaktiviert) |
| `PTT_CHIME` | aus | PTT-Benachrichtigungston-Voreinstellung (aus, Ton, Doppelton, Zwitschern, Piepton, Klick, benutzerdefiniert) |
| `SINGLE_HOP` | 0 | Ein-Hop-Tor-Modus für geringere Latenz (deaktiviert die Server-Anonymität) |
| `SAMPLE_RATE` | 8000 | Audio-Abtastrate in Hz |
| `CHUNK_DURATION` | 1 | Dauer für Audio-Testblöcke in Sekunden |
---
## Fehlerbehebung
**Tor kann nicht bootstrappen:**
Überprüfen Sie das Tor-Protokoll unter `.terminalphone/tor_data/tor.log`. Häufige Ursachen sind falsche Systemzeit, Netzwerkbeschränkungen, die Tor blockieren, oder eine weitere Tor-Instanz, die denselben SOCKS-Port verwendet.
**Kein Audio unter Termux:**
Stellen Sie sicher, dass die Termux:API-App von F-Droid installiert ist (nicht nur das `termux-api`-Paket). Erteilen Sie der Termux:API-App in den Android-Einstellungen die Mikrofonberechtigung. Führen Sie den Audio-Loopback-Test (Option 5) aus, um dies zu überprüfen.
**ffmpeg-Installation unter Termux schlägt fehl:**
Führen Sie `pkg upgrade` aus, bevor Sie Abhängigkeiten installieren. Der Installer erledigt dies automatisch; wenn Sie Pakete jedoch manuell installiert haben, können veraltete Shared Libraries zu Linkerfehlern führen.
**Audiotest funktioniert, aber Anrufe sind stumm:**
Bestätigen Sie, dass beide Parteien dasselbe gemeinsame Geheimnis verwenden. Nicht übereinstimmende Geheimnisse führen zu einem Entschlüsselungsfehler ohne Fehlermeldung – der Anruf wird verbunden, aber es ist kein Audio zu hören.
**Snowflake-Bridge verbindet langsam:**
Snowflake leitet Datenverkehr über WebRTC-Proxys, was zusätzliche Bootstrap-Zeit verursacht. Es ist normal, dass Tor 30–60 Sekunden (oder länger) benötigt, um 100 % zu erreichen, wenn Snowflake aktiviert ist. Das Skript zeigt während des Bootstraps einen Geduldshinweis an.
**Erster Tor-Bootstrap ist langsam:**
Beim ersten Start muss Tor den vollständigen Netzwerkkonsens von Grund auf herunterladen, was ein bis zwei Minuten dauern kann. Das Skript erkennt dies und zeigt einen Hinweis an. Das Bootstrap-Timeout wird beim ersten Lauf automatisch von 120 auf 300 Sekunden verlängert. Nachfolgende Starts verwenden zwischengespeicherte Konsensdaten und sind wesentlich schneller.
**Auflegen führt nicht zurück zum Menü:**
Wenn das Skript nach Drücken von Q hängt, drücken Sie Strg+C, um die Bereinigung zu erzwingen und zur Shell zurückzukehren.
**`Cannot install under Rosetta 2 in ARM default prefix` unter macOS:**
Dies tritt auf Apple Silicon auf, wenn das Terminal unter Rosetta 2 (einem `x86_64`-Prozess) läuft, aber Homebrew im nativen ARM-Prefix (`/opt/homebrew`) installiert ist. Der Abhängigkeitsinstaller (Option **7**) erkennt dies nun und führt `brew` automatisch unter `arch -arm64` erneut aus. Wenn Sie Pakete manuell installieren, führen Sie sie selbst mit `arch -arm64 brew install <Paket>` aus. Alternativ starten Sie das Skript nativ mit `arch -arm64 bash terminalphone.sh`.
---
[MIRROR V1.0.0](https://bin.disroot.org/?e1356291b098cb75#FMQ4gxFwgdr3rjR1dpGS2csLmDPzDEkQW16fQ5P2Vt4y)
[MIRROR V1.0.1](https://bin.disroot.org/?d3bc0b8976113f58#AuUm4ev4vfeVmPyrh2KjAdhDP6WN4UX6yKQh9ERGD5Qt)
[MIRROR V1.0.2](https://bin.disroot.org/?6bc5b2fd046de1d7#G7TmnytrMeaM5AZYWth6BjjdqUb9RDf3K9erHUExKcGX)
[MIRROR V1.0.3](https://bin.disroot.org/?c5010f039e4693fd#Brp1w7LRQH9d5Ye5npZDPxNVR855SW9QUAk9cJaUuLYX)
[MIRROR V1.0.4](https://bin.disroot.org/?1831f6b78e349142#7zaAMVPNJL3MfbGJzjtm6cCPcvQftf4ULXupdne5dRKw)
[MIRROR V1.0.5](https://bin.disroot.org/?edfcfc844987ed03#56LuBbqbkfNDXfHpydyaB3VcWYhYenX18dtSvNumERY9)
[MIRROR V1.0.6](https://bin.disroot.org/?6c7b4774108b0c1c#GQPst46zjAYidndmNvytforX7MK2LyHanL4d829vVcv4)
[MIRROR V1.0.7](https://bin.disroot.org/?047003637623b4fa#EwmaysciDpiDkht8xV7ce3QcR9oxFXaxSikh4cLheXBB)
[MIRROR V1.0.8](https://bin.disroot.org/?06e38bd64e6fbdad#88MYs3dmq9rSMkmocpW3NYaaG4YfSdRCc9LJnEEzqGYp)
[MIRROR V1.0.9](https://bin.disroot.org/?950218a9a7c71c66#E7Z94VCGBZozrfXYhGwKyAdMeTxuavg92tA1pn2DbrrB)
[MIRROR V1.1.0](https://bin.disroot.org/?0b0da14f31521b3a#B1c23J8xFoZZKErvGG28PgbtfgtMUcDABWmQEoSZfXgh)
[MIRROR V1.1.1](https://bin.disroot.org/?d8e2d4f0300eb5af#9Y1C8CkcH9jAmv1fh4GZs1yYpJmWCG5xG3SvDYdwnJam)
[MIRROR V1.1.2](https://bin.disroot.org/?b1059616f880925f#8ef2oscZXUkPAsJZwGfWvLPQagVAk5GgW4DyssmLvQpG)
[MIRROR V1.1.3](https://bin.disroot.org/?b02658801518aaa7#JE6CsBLWUwAnTdBqeHgeXL7QF5UExgi9rnygcfyMZjCJ)
[MIRROR V1.1.4](https://bin.disroot.org/?d31248fc44c287a0#HQELFWFEMpM9kfTZSGDXTdGFMVKTejox5CajF9Vm4Www)
[MIRROR V1.1.5](https://bin.disroot.org/?284b723ed6aad15f#8VCrrri6yRpdg3uVDSY94wpx7LYkw5uYhm4Vbhka83sM)
[MIRROR V1.1.5.1](https://bin.disroot.org/?26aaef1eff20c271#4GxQQPSDhrszTu1RmERySNVqD2fZW5GZwm3JeL1parpB)
[MIRROR V1.1.6](https://bin.disroot.org/?ae8270578cd9e081#BbcDLU49XqhecvwviHRcdfrZ4vhKdL2AMeKaT5v9oLV1)
[MIRROR V1.1.7](https://bin.disroot.org/?457e4308abe582d8#B9LJG88rmUwrGHHuCof8WpE8CXGmkc2tyrXXicEiJFWk)
---
## Lizenz
MIT
| Paket | Zweck |
|---|
tor | Onion-Routing und Hidden Service |
opus-tools | Sprachkompression (Opus-Codec) |
sox | Audioaufnahme und -wiedergabe (rec, play) |
socat | Bidirektionaler TCP-Relay durch Tor-SOCKS-Proxy |
openssl | AES-256-CBC-Verschlüsselung und -Entschlüsselung |
| T | Verschlüsselte Textnachricht senden. |
| S | Einstellungen während des Anrufs öffnen (Chiffre ändern, Qualität anpassen). |
| Q | Auflegen und zum Menü zurückkehren. |
| Lautstärke runter ×2 | Aufnahme über Lautstärketaste umschalten (erfordert Volume PTT in den Einstellungen aktiviert). |
| Nachricht | Beschreibung |
|---|
ID:<onion> | Anrufer-ID – .onion-Adresse des Senders |
CIPHER:<name> | Verschlüsselungsalgorithmus des Senders. Wird bei Verbindungsaufbau und bei Änderung ausgetauscht. |
PTT_START | Sender hat mit der Aufnahme begonnen |
PTT_STOP | Sender ist fertig; Audio folgt oder wurde gesendet |
AUDIO:<base64> | Vollständige verschlüsselte Audio-Nachricht |
MSG:<base64> | Verschlüsselte Textnachricht |
HANGUP | Sender trennt die Verbindung |
PING | Keepalive-Signal |
RELAY:1 | Relay-Begrüßung – vom Relay beim Verbindungsaufbau gesendet, aktiviert Gruppenmodus |
GROUP:<n> | Gruppen-Größenaktualisierung – vom Relay ausgesendet, wenn Anrufer beitreten oder gehen |
| Anrufer | Ausgehend pro Nachricht | Erwartete Erfahrung |
|---|
| 2–3 | 20–40 KB | Zuverlässig auf den meisten Verbindungen |
| 3–5 | 40–80 KB | Gut auf stabilen Schaltkreisen, Verzögerungen auf mobilen Daten möglich |
| 5–10 | 80–180 KB | An der Grenze, spürbare Verzögerungen zwischen Übertragungen |
| 10+ | 180 KB+ | Unzuverlässig, erhebliche Wartezeiten und möglicher Nachrichtenverlust |