
Comunicazione vocale e testuale push-to-talk crittografata tramite servizi nascosti Tor con crittografia end-to-end, cifrari configurabili, modalità relay per chiamate di gruppo e distruzione dati anti-forense.
Comunicazione vocale push-to-talk crittografata tramite hidden service Tor.
TerminalPhone è un singolo script Bash autonomo che fornisce comunicazione vocale e testuale anonima, crittografata end-to-end, tra due o più parti tramite la rete Tor. Funziona come una radio ricetrasmittente: registri un messaggio vocale, che viene compresso, crittografato e trasmesso alla parte remota come un'unica unità. Puoi anche inviare messaggi di testo crittografati durante una chiamata. Nessuna infrastruttura server, nessun account, nessun numero di telefono. Il tuo indirizzo .onion dell'hidden service Tor è la tua identità.
T per digitare un messaggio..onion alla connessione. L'indirizzo remoto viene visualizzato nell'intestazione della chiamata.S durante una chiamata per accedere alle impostazioni. Cambia il tuo cifrario al volo; il display della parte remota si aggiorna automaticamente.jq (installato su richiesta). Il volume viene ripristinato automaticamente dopo ogni attivazione..onion funge da endpoint permanente e instradabile. Nessun port forwarding o IP pubblico richiesto..onion come codice QR scansionabile nel terminale. Se qrencode non è installato, ti viene chiesto di installarlo. Il codice QR viene renderizzato sul buffer dello schermo alternativo e viene distrutto quando viene chiuso. Una nota avverte che alcuni scanner QR antepongono automaticamente http://; questo prefisso viene rimosso automaticamente durante la composizione..tmp generiche e identificatori esadecimali casuali. Nessun tipo di file o metadati temporali viene divulgato al filesystem.ExcludeNodes con StrictNodes nel torrc./dev/urandom prima dell'eliminazione. La dimensione del file viene letta, quel numero di byte di dati casuali viene scritto sul file con dd usando conv=notrunc, la scrittura viene scaricata sul dispositivo di archiviazione con sync, e poi il file viene rimosso con rm. Copre tutti i file sensibili di runtime: registrazioni PCM grezze, audio codificato Opus, payload crittografati, audio e chat in ingresso decrittografati, intermediari degli effetti vocali, materiale chiave del cifrario e HMAC, log dei nonce, flag di sessione, file PID, named pipe, chiavi dell'hidden service Tor alla rotazione e dati di sessione dei relay. Per le directory, tutti i file al loro interno vengono sovrascritti ricorsivamente. Un'opzione di test integrata crea un file di esempio, mostra il contenuto originale in testo semplice ed esadecimale, lo sovrascrive e visualizza l'esadecimale sovrascritto così l'utente può confermare visivamente che i dati sono stati distrutti. Disattivata per impostazione predefinita — per la maggior parte degli utenti, la normale rm è perfettamente sufficiente. I file temporanei di TerminalPhone sono piccoli e di breve durata, e lo spazio su disco viene tipicamente riutilizzato rapidamente dalla normale attività di sistema. Questa funzionalità è per utenti che vogliono un ulteriore livello di protezione contro il recupero forense. Nota: su SSD e memoria flash, il wear leveling significa che la sovrascrittura potrebbe finire su diverse celle NAND fisiche — la crittografia completa del disco è l'unica difesa affidabile sui supporti flash. Su HDD tradizionali, la sovrascrittura sostituisce i dati nella stessa posizione fisica ed è efficace contro tutto il recupero basato su software.RELAY:1 e mostrano il conteggio live dei chiamanti del gruppo. L'uscita di un chiamante non disconnette gli altri. La dashboard dell'operatore mostra il conteggio dei chiamanti, l'uptime e il throughput dei dati.Distribuzioni supportate: Debian/Ubuntu (apt), Fedora/RHEL (dnf), Arch (pacman).``` bash
git clone https://gitlab.com/here_forawhile/terminalphone.git cd terminalphone bash terminalphone.sh
Seleziona l'opzione **7** dal menu per installare automaticamente tutte le dipendenze. Verranno installati i seguenti pacchetti:
| Pacchetto | Scopo |
|---|---|
| `tor` | Routing a cipolla e servizio nascosto |
| `opus-tools` | Compressione vocale (codec Opus) |
| `sox` | Utility di elaborazione audio |
| `socat` | Relay TCP bidirezionale tramite proxy SOCKS di Tor |
| `openssl` | Crittografia e decrittografia AES-256-CBC |
| `alsa-utils` | Registrazione e riproduzione audio (`arecord`, `aplay`) |
### macOS``` bash
git clone https://gitlab.com/here_forawhile/terminalphone.git
cd terminalphone
bash terminalphone.sh
Seleziona l'opzione 7 per installare automaticamente tutte le dipendenze. Se Homebrew non è installato, lo script lo installerà prima, poi installerà i seguenti pacchetti:
Nota: macOS usa sox sia per la registrazione (rec) che per la riproduzione (play) invece di ALSA. Non sono necessari pacchetti audio aggiuntivi.
Apple Silicon (M1/M2/M3+): Se il tuo terminale dovesse essere in esecuzione sotto Rosetta 2 (un processo x86_64) mentre Homebrew è installato nel prefisso ARM nativo (/opt/homebrew), brew install normalmente fallisce con Cannot install under Rosetta 2 in ARM default prefix. L'installatore delle dipendenze ora rileva questa situazione e riesegue automaticamente Homebrew sotto arch -arm64, quindi l'opzione 7 funziona indipendentemente da come è stato avviato lo script.
TerminalPhone supporta dispositivi Android tramite Termux. A causa dell'architettura audio sandbox di Android, sono necessari due componenti aggiuntivi.
Passaggio 1: Installare Termux
Installa Termux da F-Droid. Non usare la versione del Play Store, poiché è obsoleta e non riceve più aggiornamenti.
Passaggio 2: Installare l'app Termux:API
Installa Termux:API da F-Droid. Questa è un'applicazione Android separata (non un pacchetto Termux) che fornisce un ponte tra Termux e le API di sistema Android. TerminalPhone la richiede per accedere al microfono del dispositivo e alla riproduzione multimediale.
Senza l'app Termux:API installata sul dispositivo, i comandi termux-microphone-record e termux-media-player non funzioneranno e la registrazione e la riproduzione audio falliranno silenziosamente.
Dopo aver installato l'app Termux:API, concedi le autorizzazioni per il microfono quando richiesto.
Passaggio 3: Installare il pacchetto Termux:API all'interno di Termux```bash pkg install termux-api
Questo installa le utilità da riga di comando che comunicano con l'app Termux:API.
**Passaggio 4: Esegui TerminalPhone**```bash
git clone https://gitlab.com/here_forawhile/terminalphone.git
cd terminalphone
bash terminalphone.sh
Seleziona l'opzione 7 per installare tutte le dipendenze rimanenti. Il programma di installazione eseguirà prima pkg upgrade per risolvere eventuali problemi di collegamento dei pacchetti, quindi installerà tor, opus-tools, sox, socat, openssl-tool, ffmpeg e termux-api.
Dipendenze specifiche di Termux:
| Pacchetto | Scopo |
|---|---|
termux-api | Ponte CLI per il microfono e il lettore multimediale di Android |
ffmpeg | Converte le registrazioni M4A di Android in PCM grezzo per la codifica Opus |
To receive a call: Select option 1 (Listen for calls) To make a call: Select option 2 (Call an onion address)
Entrambe le parti devono avere Tor in esecuzione e la stessa chiave segreta condivisa configurata prima di avviare una chiamata.
---
## Utilizzo
### Opzioni del Menu```
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
Modalità Full Duplex (WebSockets):
| Tasto | Azione |
|---|---|
| M | Disattiva / Riattiva il microfono. |
| T | Invia un messaggio di testo crittografato durante la chiamata. |
| Q | Termina la chiamata e torna al menu. |
Modalità Push-to-Talk (Linux / macOS):
| Tasto | Azione |
|---|---|
| Tieni premuto SPAZIO | Registra un messaggio vocale. Viene inviato automaticamente al rilascio. |
| T | Invia un messaggio di testo crittografato. |
| S | Apri le impostazioni durante la chiamata (cambia cifratura, regola la qualità). |
| Q | Termina la chiamata e torna al menu. |
Modalità Push-to-Talk (Termux):
La tastiera software di Android invia gli eventi dei tasti al rilascio, non alla pressione. TerminalPhone si adatta utilizzando la modalità toggle su Termux.
| Tasto | Azione |
|---|---|
| Tocca SPAZIO |
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)
---
## Come Funziona
TerminalPhone utilizza un modello registra-e-invia. Quando attivi il PTT, il microfono registra in modo continuo finché non rilasci. La registrazione completa viene poi elaborata attraverso la seguente pipeline:```
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
Il protocollo wire è testo basato su righe su una connessione TCP:
Su Termux, un passaggio di conversione aggiuntivo gestisce il formato di registrazione M4A nativo di Android, usando ffmpeg per convertire in PCM grezzo prima della codifica Opus.
Cifratura: Tutto l'audio è cifrato con un cipher configurabile dall'utente (predefinito: AES-256-CBC) prima della trasmissione. Sono disponibili 21 cipher selezionati, classificati dal più forte (256-bit) all'adeguato (128-bit). La chiave è derivata da un segreto pre-condiviso usando PBKDF2 con 10.000 iterazioni. La cifratura è applicata a livello di applicazione, indipendente dalla cifratura di trasporto di Tor. I segreti vengono passati a OpenSSL tramite descrittori di file (-pass fd:3), non tramite argomenti della riga di comando, quindi non vengono mai esposti nella tabella dei processi.
Negoziazione del cipher: Entrambe le parti scambiano i nomi dei cipher alla connessione e ogni volta che un cipher viene cambiato a metà chiamata. I nomi dei cipher non sono segreti (principio di Kerckhoffs). Se i cipher locale e remoto non corrispondono, entrambe le parti vedono indicatori rossi nell'intestazione della chiamata.
Trasporto: Tutti i dati sono instradati attraverso circuiti di servizi nascosti di Tor. L'indirizzo IP di nessuna delle due parti viene esposto. Non c'è traffico in chiaro. La connessione non può essere attribuita a nessuna delle due parti da un osservatore di rete.
Resistenza all'analisi del traffico: Il modello registra-e-invia produce schemi di trasmissione irregolari (messaggi di lunghezza variabile a intervalli irregolari), più difficili da identificare rispetto allo streaming continuo.
Autenticazione: Il segreto condiviso funge da autenticazione implicita. Se entrambe le parti non hanno lo stesso segreto, la decifratura fallisce e nessun audio viene riprodotto. Alla connessione, entrambe le parti scambiano gli indirizzi .onion per l'identificazione del chiamante. Il segreto può essere opzionalmente cifrato a riposo con una passphrase; all'avvio, lo script richiede la passphrase per sbloccarlo.
Firma del protocollo HMAC (opzionale): Quando abilitata, ogni messaggio del protocollo wire -- inclusi i segnali di controllo come HANGUP, PTT_START e PING -- è firmato con HMAC-SHA256 derivato dal segreto condiviso. Un nonce casuale è incluso per ogni messaggio così che comandi identici producano firme uniche. I nonce visti vengono tracciati per chiamata e i duplicati vengono rifiutati, prevenendo attacchi di replay. L'impostazione HMAC è congelata all'inizio della chiamata tramite un file runtime così che sia il percorso di invio che quello di ricezione concordino sempre, anche se l'impostazione viene attivata/disattivata a metà chiamata (le modifiche hanno effetto alla chiamata successiva). Sul lato ricevente, qualsiasi messaggio con una firma non valida, mancante o riprodotta viene silenziosamente scartato. Questo impedisce a un attaccante che compromette il circuito Tor (ma non possiede il segreto condiviso) di iniettare o riprodurre comandi. Entrambe le parti devono abilitare HMAC affinché le chiamate funzionino. Non compatibile con versioni precedenti alla 1.1.3.
Limitazioni:
Sicurezza della modalità relay: Il relay è architettonicamente zero-knowledge. Non possiede mai il segreto condiviso e non può decifrare alcun contenuto. I dati audio fluiscono attraverso buffer di pipe del kernel (FIFO) che esistono solo in memoria -- nulla viene scritto su disco. Quando il relay si ferma, tutti i file temporanei vengono eliminati. L'operatore del relay non può determinare cosa è stato detto, chi sono i chiamanti, o leggere alcun messaggio. Il relay filtra tutti i segnali di controllo (HANGUP, ID:, CIPHER:, PTT_START, PTT_STOP) e inoltra solo AUDIO:, MSG: e PING. Un avversario passivo globale potrebbe eseguire un'analisi di correlazione del traffico per associare i chiamanti al relay, ma il contenuto dei messaggi rimane opaco.
Capacità del relay: Il collo di bottiglia principale è la larghezza di banda di Tor. La produttività dei servizi nascosti di Tor è altamente variabile e dipende dalla qualità del circuito, dalla congestione del relay e dalla distanza geografica. Un tipico messaggio vocale di 10 secondi è ~20KB cifrato, e ogni trasmissione si dirama a N-1 ascoltatori.
La capacità realistica è 3--5 chiamanti per un relay in esecuzione su un telefono (Termux), o 5--10 chiamanti su una macchina Linux dedicata con una connessione stabile. I relay in esecuzione su dispositivi mobili affrontano vincoli aggiuntivi: i dati mobili aggiungono latenza oltre a Tor, Android potrebbe terminare i processi Termux in background per recuperare memoria, e il consumo della batteria aumenta con ogni chiamante connesso. La larghezza di banda del circuito Tor può variare da 50KB/s a 500KB/s a seconda della qualità del percorso, e i circuiti possono degradarsi o ruotare a metà sessione. La modalità single-hop migliora la produttività ma non elimina la congestione dei relay Tor. Queste stime presuppongono il modello PTT in cui solo una persona trasmette alla volta -- trasmissioni simultanee degraderebbero ulteriormente le prestazioni. I chiamanti in una chiamata di gruppo dovrebbero considerare di abbassare il bitrate Opus (Impostazioni → Codifica Opus) per ridurre le dimensioni dei messaggi e alleggerire il carico sul relay.
Tutta la configurazione è memorizzata in .terminalphone/ relativo alla posizione dello script:```
.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
Parametri audio predefiniti (definiti all'inizio dello script):
| Parametro | Predefinito | Descrizione |
|---|---|---|
| `LISTEN_PORT` | 7777 | Porta TCP per le connessioni in entrata |
| `TOR_SOCKS_PORT` | 9050 | Porta proxy SOCKS di Tor |
| `OPUS_BITRATE` | 16 | Bitrate di codifica Opus in kbps |
| `CIPHER` | aes-256-cbc | Cifrario di crittografia (configurabile tramite Impostazioni) |
| `SNOWFLAKE_ENABLED` | 0 | Bridge Snowflake per l'elusione della censura |
| `AUTO_LISTEN` | 0 | Ascolto automatico delle chiamate all'avvio di Tor |
| `PTT_KEY` | SPAZIO | Tasto push-to-talk (configurabile tramite Impostazioni) |
| `VOL_PTT` | 0 | PTT con doppio tocco sul volume, solo Termux (sperimentale) |
| `EXCLUDE_NODES` | (vuoto) | Elenco paesi ExcludeNodes di Tor (es. `{US},{GB}`) |
| `HMAC_AUTH` | 0 | Firma HMAC di tutti i messaggi di protocollo (opzionale, deve corrispondere su entrambi i lati) |
| `OVERWRITE_DELETE` | 0 | Sovrascrive i file temporanei con dati casuali prima dell'eliminazione (disattivato per impostazione predefinita) |
| `PTT_CHIME` | off | Preimpostazione del suono di notifica PTT (off, tone, double, chirp, ding, click, custom) |
| `SINGLE_HOP` | 0 | Modalità Tor a salto singolo per una latenza inferiore (disabilita l'anonimato del server) |
| `SAMPLE_RATE` | 8000 | Frequenza di campionamento audio in Hz |
| `CHUNK_DURATION` | 1 | Durata dei blocchi di test audio in secondi |
---
## Risoluzione dei problemi
**Tor non riesce ad avviarsi (bootstrap):**
Controlla il log di Tor in `.terminalphone/tor_data/tor.log`. Le cause comuni includono uno skew dell'orologio, restrizioni di rete che bloccano Tor o un'altra istanza di Tor che utilizza la stessa porta SOCKS.
**Nessun audio su Termux:**
Verifica che l'app Termux:API sia installata da F-Droid (non solo il pacchetto `termux-api`). Concedi le autorizzazioni del microfono all'app Termux:API nelle impostazioni di Android. Esegui il test di loopback audio (opzione 5) per verificare.
**L'installazione di ffmpeg fallisce su Termux:**
Esegui `pkg upgrade` prima di installare le dipendenze. Il programma di installazione lo fa automaticamente, ma se hai installato i pacchetti manualmente, librerie condivise obsolete possono causare errori di collegamento.
**Il test audio funziona ma le chiamate sono mute:**
Conferma che entrambe le parti utilizzino lo stesso segreto condiviso. Segreti non corrispondenti causeranno un errore di decrittazione senza alcun messaggio di errore: la chiamata si connette ma non si sente alcun audio.
**Il bridge Snowflake è lento a connettersi:**
Snowflake instrada il traffico attraverso proxy WebRTC, il che aggiunge tempo di avvio aggiuntivo. È normale che Tor impieghi 30--60 secondi (o più) per raggiungere il 100% quando Snowflake è abilitato. Lo script mostrerà un avviso di pazienza durante il bootstrap.
**Il primo bootstrap di Tor è lento:**
Al primo avvio, Tor deve scaricare da zero il consenso completo della rete, il che può richiedere un minuto o due. Lo script lo rileva e mostra un avviso. Il timeout del bootstrap viene automaticamente esteso da 120 a 300 secondi al primo avvio. Gli avvii successivi utilizzano i dati di consenso memorizzati nella cache e sono molto più rapidi.
**La chiusura della chiamata non torna al menu:**
Se lo script si blocca dopo aver premuto Q, premi Ctrl+C per forzare la pulizia e tornare alla shell.
**`Cannot install under Rosetta 2 in ARM default prefix` su macOS:**
Questo accade su Apple Silicon quando il terminale è in esecuzione sotto Rosetta 2 (un processo `x86_64`) ma Homebrew si trova nel prefisso ARM nativo (`/opt/homebrew`). Il programma di installazione delle dipendenze (opzione **7**) ora lo rileva e riesegue automaticamente `brew` sotto `arch -arm64`. Se installi i pacchetti manualmente, prefissali tu stesso: `arch -arm64 brew install <pkg>`. In alternativa, avvia lo script in modo nativo con `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)
[MIRROR V1.1.8](https://bin.disroot.org/?ef81486d3a5141a1#EN1YuLPqqs2FAEsvXkGbZdiWXt3vxvGTw845C4QsYmSn)
[MIRROR V1.1.9](https://bin.disroot.org/?fbcca457ac58964f#DsUCbJwgBRhnL1FK3a6VpwE5sCRNProXvk86u7RpWQM9)
---
## Licenza
MIT
| Pacchetto | Scopo |
|---|
tor | Routing onion e servizio nascosto |
opus-tools | Compressione vocale (codec Opus) |
sox | Registrazione e riproduzione audio (rec, play) |
socat | Relay TCP bidirezionale attraverso il proxy SOCKS di Tor |
openssl | Crittografia e decrittografia AES-256-CBC |
| Avvia la registrazione. Tocca di nuovo per fermare e inviare. |
| T | Invia un messaggio di testo crittografato. |
| S | Apri le impostazioni durante la chiamata (cambia cifratura, regola la qualità). |
| Q | Termina la chiamata e torna al menu. |
| Vol Giù ×2 | Attiva/disattiva la registrazione tramite il pulsante del volume (richiede PTT con volume abilitato nelle impostazioni). |
| Messaggio | Descrizione |
|---|
ID:<onion> | ID del chiamante -- indirizzo .onion del mittente |
CIPHER:<name> | Cipher di cifratura del mittente. Scambiato alla connessione e al cambio. |
PTT_START | Il mittente ha iniziato la registrazione |
PTT_STOP | Il mittente ha terminato; l'audio segue o è stato inviato |
AUDIO:<base64> | Messaggio audio cifrato completo |
MSG:<base64> | Messaggio di testo cifrato |
HANGUP | Il mittente si sta disconnettendo |
PING | Segnale di keepalive |
RELAY:1 | Saluto del relay -- inviato dal relay alla connessione, attiva la modalità gruppo |
GROUP:<n> | Aggiornamento dimensione gruppo -- trasmesso dal relay quando i chiamanti si uniscono o lasciano |
| Chiamanti | In uscita per messaggio | Esperienza prevista |
|---|
| 2--3 | 20--40KB | Affidabile sulla maggior parte delle connessioni |
| 3--5 | 40--80KB | Buona su circuiti stabili, ritardi possibili su dati mobili |
| 5--10 | 80--180KB | Al limite, ritardi evidenti tra le trasmissioni |
| 10+ | 180KB+ | Inaffidabile, accodamento significativo e possibile perdita di messaggi |