
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 su servizi nascosti Tor.
TerminalPhone è un singolo script Bash autonomo che fornisce comunicazione vocale e testuale anonima, crittografata end-to-end, tra due o più parti sulla rete Tor. Funziona come un walkie-talkie: registri un messaggio vocale, e questo viene compresso, crittografato e trasmesso alla parte remota come singola unità. Puoi anche inviare messaggi di testo crittografati durante una chiamata. Nessuna infrastruttura server, nessun account, nessun numero di telefono. Il tuo indirizzo .onion del servizio nascosto 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; la visualizzazione della parte remota si aggiorna automaticamente.jq (installato su richiesta). Il volume viene automaticamente ripristinato dopo ogni attivazione..onion funge da endpoint instradabile permanente. Nessuna necessità di inoltro porte o IP pubblico..onion come QR code scansionabile nel terminale. Se qrencode non è installato, viene richiesto di installarlo. Il QR code viene visualizzato sul buffer dello schermo alternativo e viene distrutto quando si elimina. Una nota avverte che alcuni scanner QR aggiungono automaticamente http://; questo prefisso viene automaticamente rimosso durante la composizione..tmp generiche e identificatori esadecimali casuali. Nessun tipo di file o metadati temporali vengono divulgati al filesystem.ExcludeNodes con StrictNodes nel torrc./dev/urandom prima della cancellazione. La dimensione del file viene letta, tanti byte di dati casuali vengono scritti sopra il 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 in fase di esecuzione: registrazioni PCM grezze, audio codificato Opus, payload crittografati, audio in ingresso decrittografato e chat, intermediari degli effetti vocali, materiale delle chiavi di cifratura e HMAC, log dei nonce, flag di sessione, file PID, named pipe, chiavi del servizio nascosto Tor durante la rotazione e dati di sessione dei relay. Per le directory, tutti i file all'interno vengono sovrascritti ricorsivamente. Un'opzione di test incorporata crea un file di esempio, mostra il contenuto originale in chiaro e in esadecimale, lo sovrascrive e mostra l'esadecimale sovrascritto in modo che l'utente possa confermare visivamente che i dati siano stati distrutti. Disattivato per impostazione predefinita — per la maggior parte degli utenti, il normale rm è perfettamente accettabile. I file temporanei di TerminalPhone sono piccoli e di breve durata, e lo spazio su disco viene tipicamente riutilizzato rapidamente dalla normale attività del sistema. Questa funzionalità è per gli utenti che desiderano un ulteriore livello di protezione contro il recupero forense. Nota: su SSD e memorie flash, il livellamento dell'usura significa che la sovrascrittura potrebbe finire su diverse celle NAND fisiche — la crittografia completa del disco è l'unica difesa affidabile su supporti flash. Su HDD tradizionali, la sovrascrittura sostituisce i dati nella stessa posizione fisica ed è efficace contro tutti i recuperi basati su software.RELAY:1 e visualizzano il conteggio live dei chiamanti in gruppo. L'uscita di un chiamante non disconnette gli altri. Il pannello dell'operatore mostra il conteggio dei chiamanti, il tempo di attività 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` | Instradamento a cipolla e servizio nascosto |
| `opus-tools` | Compressione vocale (codec Opus) |
| `sox` | Utilità di elaborazione audio |
| `socat` | Relè TCP bidirezionale attraverso il proxy SOCKS di Tor |
| `openssl` | Cifratura e decifratura 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à per primo, poi installerà i seguenti pacchetti:
Nota: macOS utilizza 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 percorso nativo ARM (/opt/homebrew), brew install fallisce normalmente con l'errore Cannot install under Rosetta 2 in ARM default prefix. Il programma di installazione delle dipendenze ora rileva questa situazione e rilancia automaticamente Homebrew con arch -arm64, pertanto l'opzione 7 funziona indipendentemente da come lo script è stato avviato.
TerminalPhone supporta i dispositivi Android tramite Termux. A causa dell'architettura audio isolata di Android, sono necessari due componenti aggiuntivi.
Passo 1: Installa Termux
Installa Termux da F-Droid. Non utilizzare la versione del Play Store, poiché è obsoleta e non riceve più aggiornamenti.
Passo 2: Installa l'app Termux:API
Installa Termux:API da F-Droid. Si tratta di un'applicazione Android separata (non un pacchetto Termux) che fornisce un ponte tra Termux e le API di sistema Android. TerminalPhone ne ha bisogno 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 riproduzione audio falliranno silenziosamente.
Dopo aver installato l'app Termux:API, concedi le autorizzazioni per il microfono quando richiesto.
Passo 3: Installa 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 linking dei pacchetti, quindi installerà tor, opus-tools, sox, socat, openssl-tool, ffmpeg, e termux-api.
Dipendenze specifiche di Termux:
| Pacchetto | Scopo |
|---|---|
termux-api | Bridge CLI per microfono e lettore multimediale 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 lo stesso segreto condiviso configurato 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
Linux (tieni premuto per parlare):
| Tasto | Azione |
|---|---|
| Tieni premuto SPAZIO | Registra un messaggio vocale. Invia automaticamente al rilascio. |
| T | Invia un messaggio di testo crittografato. |
| S | Apri le impostazioni durante la chiamata (cambia cifratura, regola qualità). |
| Q | Termina la chiamata e torna al menu. |
Termux (modalità toggle):
La tastiera software di Android invia eventi al rilascio, non alla pressione. TerminalPhone si adatta utilizzando la modalità toggle su Termux.
| Tasto | Azione |
|---|---|
| Tocca SPAZIO | Avvia la registrazione. Tocca di nuovo per fermare e inviare. |
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 di registrazione e invio. Quando attivi PTT, il microfono registra continuamente fino al rilascio. L'intera registrazione viene quindi 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 è basato su testo su linea 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.
Crittografia: Tutto l'audio è cifrato con un cifrario configurabile dall'utente (default: AES-256-CBC) prima della trasmissione. Sono disponibili 21 cifrari curati, ordinati dal più forte (256-bit) al più adeguato (128-bit). La chiave è derivata da un segreto pre-condiviso tramite PBKDF2 con 10.000 iterazioni. La crittografia è applicata a livello applicativo, indipendentemente dalla crittografia di trasporto di Tor. I segreti vengono passati a OpenSSL tramite descrittori di file (-pass fd:3), non parametri da riga di comando, quindi non sono mai esposti nella tabella dei processi.
Negoziazione del cifrario: Entrambe le parti scambiano i nomi dei cifrari all'avvio e ogni volta che un cifrario viene cambiato durante la chiamata. I nomi dei cifrari non sono segreti (principio di Kerckhoffs). Se il cifrario locale e quello remoto non corrispondono, entrambe le parti vedono indicatori rossi nell'intestazione della chiamata.
Trasporto: Tutti i dati sono instradati attraverso circuiti di servizio nascosto di Tor. L'indirizzo IP di nessuna delle due parti è esposto. Non c'è traffico su rete pulita. 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), che sono più difficili da identificare rispetto a uno 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. All'avvio, 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 messaggio, in modo che comandi identici producano firme uniche. I nonce già visti vengono tracciati per chiamata e i duplicati vengono rifiutati, prevenendo attacchi di replay. L'impostazione HMAC è congelata all'avvio della chiamata tramite un file runtime, in modo che sia il percorso di invio che quello di ricezione siano sempre d'accordo, 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 ha 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 a conoscenza zero. Non possiede mai il segreto condiviso e non può decifrare alcun contenuto. I dati audio fluiscono attraverso buffer 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 sia stato detto, chi siano 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 globale passivo potrebbe eseguire 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à del servizio nascosto 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 è di circa 20KB cifrato, e ogni trasmissione si diffonde a N-1 ascoltatori.
La capacità realistica è di 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 devono affrontare vincoli aggiuntivi: i dati mobili aggiungono latenza oltre a Tor, Android potrebbe uccidere 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à a singolo hop migliora la produttività ma non elimina la congestione del 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 per le chiamate all'avvio di Tor |
| `PTT_KEY` | SPACE | 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 del protocollo (opzionale, entrambi i lati devono corrispondere) |
| `OVERWRITE_DELETE` | 0 | Sovrascrivi i file temporanei con dati casuali prima dell'eliminazione (disattivato per impostazione predefinita) |
| `PTT_CHIME` | off | Suoneria di notifica PTT (off, tone, double, chirp, ding, click, custom) |
| `SINGLE_HOP` | 0 | Modalità Tor a singolo salto per latenza ridotta (disabilita l'anonimato del server) |
| `SAMPLE_RATE` | 8000 | Frequenza di campionamento audio in Hz |
| `CHUNK_DURATION` | 1 | Durata dei chunk di test audio in secondi |
---
## Risoluzione dei problemi
**Tor non riesce a bootstrap:**
Controlla il log di Tor in `.terminalphone/tor_data/tor.log`. Le cause comuni includono clock skew, 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 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. L'installer lo fa automaticamente, ma se hai installato pacchetti manualmente, librerie condivise obsolete possono causare errori di linking.
**Il test audio funziona ma le chiamate sono mute:**
Conferma che entrambe le parti utilizzano lo stesso segreto condiviso. Segreti non corrispondenti comporteranno un fallimento della decifratura senza messaggio di errore: la chiamata si connette ma non si sente audio.
**Il bridge Snowflake è lento a connettersi:**
Snowflake instrada il traffico attraverso proxy WebRTC, il che aggiunge tempo di bootstrap extra. È 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 l'intero consenso di rete da zero, il che può richiedere un minuto o due. Lo script lo rileva e mostra un avviso. Il timeout di bootstrap viene automaticamente esteso da 120 a 300 secondi al primo avvio. I lanci successivi utilizzano dati di consenso memorizzati nella cache e sono molto più veloci.
**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:**
Ciò 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`). L'installer delle dipendenze (opzione **7**) ora lo rileva e riesegue automaticamente `brew` tramite `arch -arm64`. Se stai installando 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)
---
## 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 | Cifratura e decifratura AES-256-CBC |
| T | Invia un messaggio di testo crittografato. |
| S | Apri le impostazioni durante la chiamata (cambia cifratura, regola qualità). |
| Q | Termina la chiamata e torna al menu. |
| Volume Giù ×2 | Attiva/disattiva registrazione tramite pulsante volume (richiede Volume PTT abilitato nelle impostazioni). |
| Messaggio | Descrizione |
|---|
ID:<onion> | ID del chiamante -- indirizzo .onion del mittente |
CIPHER:<nome> | Cifrario di crittografia del mittente. Scambiato all'avvio e a ogni modifica. |
PTT_START | Il mittente ha iniziato a registrare |
PTT_STOP | Il mittente ha finito; 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 all'avvio, attiva la modalità gruppo |
GROUP:<n> | Aggiornamento dimensione gruppo -- trasmesso dal relay quando i chiamanti entrano o escono |
| 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, possibili ritardi su dati mobili |
| 5--10 | 80--180KB | Al limite, ritardi evidenti tra le trasmissioni |
| 10+ | 180KB+ | Inaffidabile, accodamento significativo e possibile perdita di messaggi |