
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 et 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 en une seule unité. Vous pouvez également envoyer des messages textuels 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 taper un message..onion lors de 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.jq (installé à la demande). Le volume est automatiquement restauré après chaque déclenchement..onion sert de point d'extrémité permanent et routable. Aucun transfert de port ni adresse IP publique requis..onion sous forme de 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 ignoré. 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. Aucun type de fichier ni métadonnée temporelle n'est divulgué au système de fichiers.ExcludeNodes avec StrictNodes dans le torrc./dev/urandom avant la 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 vidée sur le périphérique de stockage avec sync, puis le fichier est supprimé avec rm. Couvre tous les fichiers d'exécution sensibles : enregistrements PCM bruts, audio codé 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 récursivement. Une option de test intégrée crée un fichier exemple, montre le contenu original en texte clair et en hexadécimal, l'écrase, et affiche l'hexadécimal écrasé afin que l'utilisateur puisse visuellement confirmer que les données sont détruites. Désactivé par défaut — pour la plupart des utilisateurs, 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 les mémoires flash, l'usure 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 en direct. Le départ d'un appelant ne déconnecte pas les autres. Le tableau de bord de l'opérateur montre le nombre d'appelants, la durée de fonctionnement et le débit de données.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** dans le menu pour installer automatiquement toutes les dépendances. Les paquets suivants seront installés :
| Paquet | Fonction |
|---|---|
| `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. Le programme d’installation des dépendances détecte désormais cela et relance automatiquement Homebrew sous arch -arm64, donc l’option 7 fonctionne quelle que soit la façon dont le script a été lancé.
TerminalPhone prend en charge les appareils Android via Termux. En raison de l’architecture audio cloisonnée d’Android, deux composants supplémentaires sont nécessaires.
É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 (pas un paquet Termux) qui fournit une passerelle entre Termux et les API système Android. TerminalPhone en a besoin pour accéder au microphone et à la lecture multimédia de l’appareil.
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 microphone lorsqu’elle vous le demande.
É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 les éventuels problèmes de liaison de paquets, puis installera tor, opus-tools, sox, socat, openssl-tool, ffmpeg et termux-api.
Dépendances spécifiques à Termux :
| Paquet | Fonction |
|---|---|
termux-api | Pont CLI vers le microphone et le lecteur multimédia Android |
ffmpeg | Convertit les enregistrements M4A d'Android en PCM brut pour le codage 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 le même secret partagé configuré 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
Linux (maintien pour parler) :
| Touche | Action |
|---|---|
| Maintenez SPACE | 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. |
Termux (mode bascule) :
Le clavier logiciel Android envoie les événements de touche au relâchement, pas à la pression. TerminalPhone s'adapte en utilisant le mode bascule sur Termux.
| Touche | Action |
|---|---|
| Appuyez sur SPACE |
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 via 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 le codage Opus.
Chiffrement : Tout l'audio est chiffré avec un chiffrement configurable par l'utilisateur (par défaut : AES-256-CBC) avant transmission. 21 chiffrements sélectionnés sont disponibles, classés du plus fort (256 bits) à adéquat (128 bits). La clé est dérivée d'un secret pré-partagé en utilisant PBKDF2 avec 10 000 itérations. Le chiffrement est appliqué au niveau de la couche application, indépendamment du chiffrement de transport de Tor. Les secrets sont transmis à OpenSSL via des descripteurs de fichier (-pass fd:3), et non via des arguments de ligne de commande, donc ils ne sont 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 changé 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 Tor. L'adresse IP d'aucune des parties n'est exposée. Il n'y a pas de trafic en clair. La connexion ne peut pas être attribuée à l'une ou l'autre des parties par un observateur réseau.
Résistance à l'analyse du trafic : Le modèle d'enregistrement puis d'envoi produit des motifs de transmission irréguliers (messages de longueur variable à intervalles irréguliers), qui sont plus difficiles à identifier que le streaming continu.
Authentification : Le secret partagé sert d'authentification implicite. Si les deux parties n'ont pas le 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 HMAC du protocole (optionnelle) : 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). Du côté récepteur, 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.
Limitations :
Sécurité du mode relais : Le relais est architecturalement sans connaissance. Il ne possède jamais le secret partagé et ne peut déchiffrer aucun contenu. Les données audio circulent via les tampons de tuyaux du noyau (FIFO) qui n'existent qu'en mémoire -- rien n'est écrit sur 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 Tor est très variable et dépend de la qualité du circuit, de la congestion du relais et de la distance géographique. Un message vocal typique de 10 secondes fait ~20 Ko chiffré, et chaque transmission se diffuse vers 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 la 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 du relais Tor. Ces estimations supposent le modèle PTT où une seule personne transmet à la fois -- les transmissions simultanées dégraderaient davantage les performances. Les appelants dans un appel de groupe devraient envisager de réduire leur débit Opus (Paramètres → Codage 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 Tor |
| `OPUS_BITRATE` | 16 | Débit binaire de codage Opus en kbps |
| `CIPHER` | aes-256-cbc | Chiffrement (configurable via les paramètres) |
| `SNOWFLAKE_ENABLED` | 0 | Pont Snowflake pour la censure |
| `AUTO_LISTEN` | 0 | Écoute automatique au démarrage de Tor |
| `PTT_KEY` | ESPACE | Touche Push-to-talk (configurable via les paramètres) |
| `VOL_PTT` | 0 | Double appui sur le volume pour PTT, Termux uniquement (expérimental) |
| `EXCLUDE_NODES` | (vide) | Liste des pays ExcludeNodes de Tor (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 | Écraser les fichiers temporaires avec des données aléatoires avant suppression (désactivé par défaut) |
| `PTT_CHIME` | désactivé | Son 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 morceaux de test audio en secondes |
---
## Dépannage
**Échec de l'amorçage de Tor :**
Consultez le journal Tor à l'emplacement `.terminalphone/tor_data/tor.log`. Les causes fréquentes incluent un décalage d'horloge, des restrictions réseau bloquant Tor ou une autre instance Tor utilisant le même port SOCKS.
**Pas d'audio sur Termux :**
Vérifiez que l'application Termux:API est installée depuis F-Droid (pas seulement le paquet `termux-api`). Accordez les permissions d'accès au microphone à l'application Termux:API dans les paramètres Android. Lancez le test de boucle 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 obsolètes peuvent causer 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 différents entraînent un échec de déchiffrement sans message d'erreur — l'appel se connecte mais aucun audio n'est entendu.
**Le pont Snowflake est lent à se connecter :**
Snowflake route le trafic via des proxys WebRTC, ce qui ajoute un temps supplémentaire d'amorçage. Il est normal que Tor mette 30 à 60 secondes (ou plus) pour atteindre 100 % lorsque Snowflake est activé. Le script affichera un message de patience pendant l'amorçage.
**Le premier amorçage 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 détecte cela et affiche un message. Le délai d'attente d'amorçage est automatiquement étendu de 120 à 300 secondes lors du premier lancement. Les lancements ultérieurs utilisent les données de consensus mises en cache et sont beaucoup plus rapides.
**Raccrocher ne ramène pas au menu :**
Si le script reste bloqué après avoir appuyé sur Q, appuyez sur Ctrl+C pour forcer le nettoyage et revenir au terminal.
**`Cannot install under Rosetta 2 in ARM default prefix` sur macOS :**
Cela se produit sur Apple Silicon lorsque le terminal est exécuté 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>`. Sinon, lancez le script nativement 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)
---
## Licence
MIT
| Paquet | Utilité |
|---|
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 |
| Commencer l'enregistrement. Appuyez à nouveau pour arrêter et envoyer. |
| 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 Down ×2 | Basculer l'enregistrement via le bouton de volume (nécessite l'activation de Volume PTT dans les paramètres). |
| Message | Description |
|---|
ID:<onion> | Identifiant de l'appelant -- adresse .onion de l'émetteur |
CIPHER:<name> | Chiffrement de l'émetteur. Échangé à la connexion et lors d'un changement. |
PTT_START | L'émetteur a commencé l'enregistrement |
PTT_STOP | L'émetteur a terminé ; l'audio suit ou a été envoyé |
AUDIO:<base64> | Message audio chiffré complet |
MSG:<base64> | Message texte chiffré |
HANGUP | L'émetteur 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 se joignent ou quittent |
| Appelants | Sortie par message | Expérience attendue |
|---|
| 2--3 | 20--40KB | Fiable sur la plupart des connexions |
| 3--5 | 40--80KB | Bon sur des circuits stables, retards possibles sur données mobiles |
| 5--10 | 80--180KB | Limites atteintes, retards notables entre les transmissions |
| 10+ | 180KB+ | Pas fiable, files d'attente importantes et perte potentielle de messages |