
Communication vocale et textuelle push-to-talk chiffrée via les services cachés Tor avec chiffrement de bout en bout, chiffrements configurables, mode relais pour les appels de groupe et destruction des données anti-forensique.
Communication vocale push-to-talk chiffrée via les services cachés Tor.
TerminalPhone est un script Bash unique et autonome qui fournit une communication vocale et textuelle anonyme, chiffrée de bout en bout, entre deux ou plusieurs parties via le réseau Tor. Il fonctionne comme un talkie-walkie : vous enregistrez un message vocal, qui est compressé, chiffré et transmis à la partie distante comme une unité unique. Vous pouvez également envoyer des messages texte chiffrés pendant un appel. Aucune infrastructure serveur, aucun compte, aucun numéro de téléphone. Votre adresse .onion de service caché Tor est votre identité.
T pour saisir un message..onion à la connexion. L'adresse distante est affichée dans l'en-tête de l'appel.S pendant un appel pour accéder aux paramètres. Changez votre chiffrement à la volée ; l'affichage de la partie distante se met à jour automatiquement.Distributions prises en charge : Debian/Ubuntu (apt), Fedora/RHEL (dnf), Arch (pacman).``` bash
git clone https://gitlab.com/here_forawhile/terminalphone.git cd terminalphone bash terminalphone.sh
Sélectionnez l’option **7** du menu pour installer automatiquement toutes les dépendances. Les paquets suivants seront installés :
| Paquet | Rôle |
|---|---|
| `tor` | Routage en oignon et service caché |
| `opus-tools` | Compression vocale (codec Opus) |
| `sox` | Utilitaires de traitement audio |
| `socat` | Relais TCP bidirectionnel via le proxy SOCKS de Tor |
| `openssl` | Chiffrement et déchiffrement AES-256-CBC |
| `alsa-utils` | Enregistrement et lecture audio (`arecord`, `aplay`) |
### macOS``` bash
git clone https://gitlab.com/here_forawhile/terminalphone.git
cd terminalphone
bash terminalphone.sh
Sélectionnez l’option 7 pour installer toutes les dépendances automatiquement. Si Homebrew n’est pas installé, le script l’installera d’abord, puis installera les paquets suivants :
Remarque : macOS utilise sox à la fois pour l’enregistrement (rec) et la lecture (play) au lieu d’ALSA. Aucun paquet audio supplémentaire n’est nécessaire.
Apple Silicon (M1/M2/M3+) : Si votre terminal s’exécute par hasard sous Rosetta 2 (un processus x86_64) alors que Homebrew est installé dans le préfixe ARM natif (/opt/homebrew), brew install échoue normalement avec Cannot install under Rosetta 2 in ARM default prefix. L’installateur de dépendances détecte désormais cette situation et relance automatiquement Homebrew sous arch -arm64, de sorte que l’option 7 fonctionne quel que soit le mode de lancement du script.
TerminalPhone prend en charge les appareils Android via Termux. En raison de l’architecture audio cloisonnée d’Android, deux composants supplémentaires sont requis.
Étape 1 : Installer Termux
Installez Termux depuis F-Droid. N’utilisez pas la version du Play Store, car elle est obsolète et ne reçoit plus de mises à jour.
Étape 2 : Installer l’application Termux:API
Installez Termux:API depuis F-Droid. Il s’agit d’une application Android distincte (et non d’un paquet Termux) qui fournit une passerelle entre Termux et les API système d’Android. TerminalPhone en a besoin pour accéder au microphone de l’appareil et à la lecture multimédia.
Sans l’application Termux:API installée sur l’appareil, les commandes termux-microphone-record et termux-media-player ne fonctionneront pas, et l’enregistrement et la lecture audio échoueront silencieusement.
Après avoir installé l’application Termux:API, accordez-lui les autorisations d’accès au microphone lorsque vous y êtes invité.
Étape 3 : Installer le paquet Termux:API dans Termux```bash pkg install termux-api
Ceci installe les utilitaires en ligne de commande qui communiquent avec l'application Termux:API.
**Étape 4 : Exécuter TerminalPhone**```bash
git clone https://gitlab.com/here_forawhile/terminalphone.git
cd terminalphone
bash terminalphone.sh
Sélectionnez l’option 7 pour installer toutes les dépendances restantes. L’installateur exécutera d’abord pkg upgrade pour résoudre tout problème de liaison de paquets, puis installera tor, opus-tools, sox, socat, openssl-tool, ffmpeg et termux-api.
Dépendances spécifiques à Termux :
| Paquet | Objectif |
|---|---|
termux-api | Pont CLI vers le microphone et le lecteur multimédia Android |
ffmpeg | Convertit les enregistrements M4A d’Android en PCM brut pour l’encodage Opus |
To receive a call: Select option 1 (Listen for calls) To make a call: Select option 2 (Call an onion address)
Les deux parties doivent avoir Tor en cours d'exécution et la même clé secrète partagée configurée avant d'initier un appel.
---
## Utilisation
### Options du 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
Mode duplex intégral (WebSockets) :
| Touche | Action |
|---|---|
| M | Couper / réactiver le microphone. |
| T | Envoyer un message texte chiffré en cours d'appel. |
| Q | Raccrocher et revenir au menu. |
Mode push-to-talk (Linux / macOS) :
| Touche | Action |
|---|---|
| Maintenir ESPACE | Enregistrer un message vocal. Envoi automatique au relâchement. |
| T | Envoyer un message texte chiffré. |
| S | Ouvrir les paramètres en cours d'appel (changer le chiffrement, ajuster la qualité). |
| Q | Raccrocher et revenir au menu. |
Mode push-to-talk (Termux) :
Le clavier logiciel d'Android envoie les événements de touche au relâchement, et non à l'appui. TerminalPhone s'adapte en utilisant le mode bascule sur Termux.
| Touche | Action |
|---|---|
| Taper ESPACE | Démarrer l'enregistrement. Taper à nouveau pour arrêter et envoyer. |
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)
---
## Comment ça fonctionne
TerminalPhone utilise un modèle enregistrer-puis-envoyer. Lorsque vous activez le PTT, le microphone enregistre en continu jusqu'à ce que vous relâchiez. L'enregistrement complet est ensuite traité via le pipeline suivant :```
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
Le protocole filaire est un texte basé sur des lignes sur une connexion TCP :
Sur Termux, une étape de conversion supplémentaire gère le format d'enregistrement M4A natif d'Android, en utilisant ffmpeg pour convertir en PCM brut avant l'encodage Opus.
Chiffrement : Tout l'audio est chiffré avec un chiffrement configurable par l'utilisateur (par défaut : AES-256-CBC) avant la transmission. 21 chiffrements sélectionnés sont disponibles, classés du plus fort (256 bits) au plus adéquat (128 bits). La clé est dérivée d'un secret pré-partagé à l'aide de PBKDF2 avec 10 000 itérations. Le chiffrement est appliqué au niveau de la couche applicative, indépendamment du chiffrement de transport de Tor. Les secrets sont transmis à OpenSSL via des descripteurs de fichiers (-pass fd:3), et non via des arguments de ligne de commande, afin qu'ils ne soient jamais exposés dans la table des processus.
Négociation du chiffrement : Les deux parties échangent les noms des chiffrements à la connexion et à chaque fois qu'un chiffrement est modifié en cours d'appel. Les noms des chiffrements ne sont pas secrets (principe de Kerckhoffs). Si les chiffrements locaux et distants ne correspondent pas, les deux parties voient des indicateurs rouges dans l'en-tête de l'appel.
Transport : Toutes les données sont acheminées via les circuits de services cachés de Tor. L'adresse IP d'aucune des parties n'est exposée. Il n'y a aucun trafic en clair. La connexion ne peut pas être attribuée à l'une ou l'autre des parties par un observateur du réseau.
Résistance à l'analyse du trafic : Le modèle enregistrer-puis-envoyer produit des schémas de transmission irréguliers (messages de longueur variable à intervalles irréguliers), plus difficiles à identifier que le streaming continu.
Authentification : Le secret partagé sert d'authentification implicite. Si les deux parties ne disposent pas du même secret, le déchiffrement échoue et aucun audio n'est joué. À la connexion, les deux parties échangent leurs adresses .onion pour l'identification de l'appelant. Le secret peut éventuellement être chiffré au repos avec une phrase de passe ; au lancement, le script demande la phrase de passe pour le déverrouiller.
Signature de protocole HMAC (optionnel) : Lorsqu'elle est activée, chaque message du protocole filaire -- y compris les signaux de contrôle comme HANGUP, PTT_START et PING -- est signé avec HMAC-SHA256 dérivé du secret partagé. Un nonce aléatoire est inclus par message afin que des commandes identiques produisent des signatures uniques. Les nonces déjà vus sont suivis par appel et les doublons sont rejetés, empêchant les attaques par rejeu. Le paramètre HMAC est figé au début de l'appel via un fichier d'exécution afin que les chemins d'envoi et de réception soient toujours d'accord, même si le paramètre est basculé en cours d'appel (les changements prennent effet au prochain appel). Côté réception, tout message avec une signature invalide, manquante ou rejouée est silencieusement ignoré. Cela empêche un attaquant qui compromet le circuit Tor (mais ne possède pas le secret partagé) d'injecter ou de rejouer des commandes. Les deux parties doivent activer HMAC pour que les appels fonctionnent. Non compatible avec les versions antérieures à 1.1.3.
Limites :
Sécurité du mode relais : Le relais est architecturalement à connaissance nulle. Il ne possède jamais le secret partagé et ne peut déchiffrer aucun contenu. Les données audio transitent par des tampons de pipe du noyau (FIFO) qui n'existent qu'en mémoire -- rien n'est écrit sur le disque. Lorsque le relais s'arrête, tous les fichiers temporaires sont supprimés. L'opérateur du relais ne peut pas déterminer ce qui a été dit, qui sont les appelants, ni lire aucun message. Le relais filtre tous les signaux de contrôle (HANGUP, ID:, CIPHER:, PTT_START, PTT_STOP) et ne transmet que AUDIO:, MSG: et PING. Un adversaire passif global pourrait effectuer une analyse de corrélation du trafic pour associer les appelants au relais, mais le contenu des messages reste opaque.
Capacité du relais : Le principal goulot d'étranglement est la bande passante de Tor. Le débit des services cachés de Tor est très variable et dépend de la qualité du circuit, de la congestion des relais et de la distance géographique. Un message vocal typique de 10 secondes fait environ 20 Ko chiffré, et chaque transmission est diffusée à N-1 auditeurs.
La capacité réaliste est de 3--5 appelants pour un relais fonctionnant sur un téléphone (Termux), ou 5--10 appelants sur une machine Linux dédiée avec une connexion stable. Les relais fonctionnant sur des appareils mobiles sont confrontés à des contraintes supplémentaires : les données mobiles ajoutent de la latence en plus de Tor, Android peut tuer les processus Termux en arrière-plan pour récupérer de la mémoire, et la consommation de batterie augmente avec chaque appelant connecté. La bande passante du circuit Tor peut varier de 50 Ko/s à 500 Ko/s selon la qualité du chemin, et les circuits peuvent se dégrader ou tourner en cours de session. Le mode à saut unique améliore le débit mais n'élimine pas la congestion des relais Tor. Ces estimations supposent le modèle PTT où une seule personne transmet à la fois -- des transmissions simultanées dégraderaient davantage les performances. Les appelants dans un appel de groupe devraient envisager de réduire leur débit binaire Opus (Paramètres → Encodage Opus) pour réduire la taille des messages et alléger la charge sur le relais.
Toute la configuration est stockée dans .terminalphone/ par rapport à l'emplacement du 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
Paramètres audio par défaut (définis en haut du script) :
| Paramètre | Défaut | Description |
|---|---|---|
| `LISTEN_PORT` | 7777 | Port TCP pour les connexions entrantes |
| `TOR_SOCKS_PORT` | 9050 | Port du proxy SOCKS de Tor |
| `OPUS_BITRATE` | 16 | Débit binaire d'encodage Opus en kbps |
| `CIPHER` | aes-256-cbc | Chiffrement (configurable via les paramètres) |
| `SNOWFLAKE_ENABLED` | 0 | Pont Snowflake pour contourner la censure |
| `AUTO_LISTEN` | 0 | Écoute automatique des appels au démarrage de Tor |
| `PTT_KEY` | ESPACE | Touche push-to-talk (configurable via les paramètres) |
| `VOL_PTT` | 0 | PTT par double pression sur le volume, Termux uniquement (expérimental) |
| `EXCLUDE_NODES` | (vide) | Liste de pays ExcludeNodes de Tor (p. ex. `{US},{GB}`) |
| `HMAC_AUTH` | 0 | Signature HMAC de tous les messages du protocole (optionnel, les deux côtés doivent correspondre) |
| `OVERWRITE_DELETE` | 0 | Écrasement des fichiers temporaires avec des données aléatoires avant suppression (désactivé par défaut) |
| `PTT_CHIME` | désactivé | Préréglage de carillon de notification PTT (désactivé, tonalité, double, gazouillis, ding, clic, personnalisé) |
| `SINGLE_HOP` | 0 | Mode Tor à saut unique pour une latence réduite (désactive l'anonymat du serveur) |
| `SAMPLE_RATE` | 8000 | Fréquence d'échantillonnage audio en Hz |
| `CHUNK_DURATION` | 1 | Durée des segments de test audio en secondes |
---
## Dépannage
**Échec du bootstrap de Tor :**
Consultez le journal de Tor dans `.terminalphone/tor_data/tor.log`. Les causes courantes incluent un décalage d'horloge, des restrictions réseau bloquant Tor, ou une autre instance de Tor utilisant le même port SOCKS.
**Aucun son sur Termux :**
Vérifiez que l'application Termux:API est installée depuis F-Droid (pas seulement le paquet `termux-api`). Accordez les autorisations de microphone à l'application Termux:API dans les paramètres Android. Exécutez le test de bouclage audio (option 5) pour vérifier.
**L'installation de ffmpeg échoue sur Termux :**
Exécutez `pkg upgrade` avant d'installer les dépendances. L'installateur le fait automatiquement, mais si vous avez installé les paquets manuellement, des bibliothèques partagées obsolètes peuvent provoquer des erreurs de liaison.
**Le test audio fonctionne mais les appels sont silencieux :**
Confirmez que les deux parties utilisent le même secret partagé. Des secrets non concordants entraînent un échec de déchiffrement sans message d'erreur -- l'appel se connecte mais aucun son n'est entendu.
**Le pont Snowflake est lent à se connecter :**
Snowflake achemine le trafic via des proxys WebRTC, ce qui ajoute un temps de bootstrap supplémentaire. Il est normal que Tor mette 30 à 60 secondes (ou plus) pour atteindre 100 % lorsque Snowflake est activé. Le script affichera un avis de patience pendant le bootstrap.
**Le premier bootstrap de Tor est lent :**
Au premier lancement, Tor doit télécharger l'intégralité du consensus réseau à partir de zéro, ce qui peut prendre une minute ou deux. Le script le détecte et affiche un avis. Le délai d'expiration du bootstrap est automatiquement prolongé de 120 à 300 secondes au premier lancement. Les lancements suivants utilisent les données de consensus en cache et sont beaucoup plus rapides.
**Le raccrochage ne revient pas au menu :**
Si le script se bloque après avoir appuyé sur Q, appuyez sur Ctrl+C pour forcer le nettoyage et revenir au shell.
**`Cannot install under Rosetta 2 in ARM default prefix` sur macOS :**
Cela se produit sur Apple Silicon lorsque le terminal s'exécute sous Rosetta 2 (un processus `x86_64`) mais que Homebrew se trouve dans le préfixe ARM natif (`/opt/homebrew`). L'installateur de dépendances (option **7**) détecte désormais cela et relance automatiquement `brew` sous `arch -arm64`. Si vous installez les paquets manuellement, préfixez-les vous-même : `arch -arm64 brew install <pkg>`. Vous pouvez également lancer le script en natif avec `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)
---
## Licence
MIT
jq (installé à la demande). Le volume est automatiquement restauré après chaque déclenchement..onion sert de point de terminaison permanent et routable. Aucune redirection de port ni IP publique requise..onion comme code QR scannable dans le terminal. Si qrencode n'est pas installé, vous êtes invité à l'installer. Le code QR s'affiche sur le tampon d'écran alternatif et est détruit lorsqu'il est fermé. Une note avertit que certains scanners QR ajoutent automatiquement http:// ; ce préfixe est automatiquement supprimé lors de la composition..tmp et des identifiants hexadécimaux aléatoires. Aucune métadonnée de type de fichier ou de timing n'est divulguée au système de fichiers.ExcludeNodes avec StrictNodes dans le torrc./dev/urandom avant suppression. La taille du fichier est lue, autant d'octets de données aléatoires sont écrits sur le fichier avec dd en utilisant conv=notrunc, l'écriture est synchronisée sur le périphérique de stockage avec sync, puis le fichier est supprimé avec rm. Couvre tous les fichiers sensibles d'exécution : enregistrements PCM bruts, audio encodé Opus, charges utiles chiffrées, audio et chat entrants déchiffrés, intermédiaires d'effets vocaux, matériel de clé de chiffrement et HMAC, journaux de nonces, indicateurs de session, fichiers PID, tubes nommés, clés de service caché Tor lors de la rotation et données de session de relais. Pour les répertoires, tous les fichiers à l'intérieur sont écrasés de manière récursive. Une option de test intégrée crée un fichier d'exemple, affiche le contenu original en texte clair et en hexadécimal, l'écrase et affiche l'hexadécimal écrasé afin que l'utilisateur puisse confirmer visuellement que les données sont détruites. Désactivé par défaut — pour la plupart des utilisateurs, un rm standard est parfaitement suffisant. Les fichiers temporaires de TerminalPhone sont petits et de courte durée, et l'espace disque est généralement réutilisé rapidement par l'activité normale du système. Cette fonctionnalité est destinée aux utilisateurs qui souhaitent une couche de protection supplémentaire contre la récupération forensique. Remarque : sur les SSD et le stockage flash, l'usure des cellules signifie que l'écrasement peut atterrir sur différentes cellules NAND physiques — le chiffrement complet du disque est la seule défense fiable sur les supports flash. Sur les disques durs traditionnels, l'écrasement remplace les données au même emplacement physique et est efficace contre toute récupération logicielle.RELAY:1 et affichent le nombre d'appelants du groupe en direct. Le départ d'un appelant ne déconnecte pas les autres. Le tableau de bord de l'opérateur affiche le nombre d'appelants, la durée de fonctionnement et le débit de données.| Paquet | Rôle |
|---|
tor | Routage en oignon et service caché |
opus-tools | Compression vocale (codec Opus) |
sox | Enregistrement et lecture audio (rec, play) |
socat | Relais TCP bidirectionnel via le proxy SOCKS de Tor |
openssl | Chiffrement et déchiffrement AES-256-CBC |
| T | Envoyer un message texte chiffré. |
| S | Ouvrir les paramètres en cours d'appel (changer le chiffrement, ajuster la qualité). |
| Q | Raccrocher et revenir au menu. |
| Vol Bas ×2 | Basculer l'enregistrement via le bouton de volume (nécessite Volume PTT activé dans les paramètres). |
| Message | Description |
|---|
ID:<onion> | ID de l'appelant -- adresse .onion de l'expéditeur |
CIPHER:<name> | Chiffrement de l'expéditeur. Échangé à la connexion et en cas de changement. |
PTT_START | L'expéditeur a commencé l'enregistrement |
PTT_STOP | L'expéditeur a terminé ; l'audio suit ou a été envoyé |
AUDIO:<base64> | Message audio chiffré complet |
MSG:<base64> | Message texte chiffré |
HANGUP | L'expéditeur se déconnecte |
PING | Signal de maintien de connexion |
RELAY:1 | Salutation du relais -- envoyé par le relais à la connexion, déclenche le mode groupe |
GROUP:<n> | Mise à jour de la taille du groupe -- diffusée par le relais lorsque des appelants rejoignent ou quittent |
| Appelants | Sortant par message | Expérience attendue |
|---|
| 2--3 | 20--40 Ko | Fiable sur la plupart des connexions |
| 3--5 | 40--80 Ko | Bon sur des circuits stables, délais possibles sur données mobiles |
| 5--10 | 80--180 Ko | Limites atteintes, délais notables entre les transmissions |
| 10+ | 180 Ko+ | Non fiable, files d'attente importantes et perte de messages potentielle |