
Comunicación cifrada de voz push-to-talk y texto a través de servicios ocultos de Tor con cifrado de extremo a extremo, cifrados configurables, modo de retransmisión para llamadas grupales y destrucción de datos anti-forense.
Comunicación de voz push-to-talk cifrada a través de servicios ocultos de Tor.
TerminalPhone es un único script Bash autocontenido que proporciona comunicación de voz y texto anónima, cifrada de extremo a extremo, entre dos o más partes a través de la red Tor. Funciona como un walkie-talkie: grabas un mensaje de voz y este se comprime, cifra y transmite a la parte remota como una sola unidad. También puedes enviar mensajes de texto cifrados durante una llamada. Sin infraestructura de servidores, sin cuentas, sin números de teléfono. Tu dirección .onion del servicio oculto de Tor es tu identidad.
T para escribir un mensaje..onion al conectar. La dirección remota se muestra en el encabezado de la llamada.S durante una llamada para acceder a los ajustes. Cambia tu cifrado sobre la marcha; la pantalla de la parte remota se actualiza automáticamente.jq (instalado bajo demanda). El volumen se restaura automáticamente después de cada activación..onion sirve como un endpoint permanente y enrutable. No se requiere reenvío de puertos ni IP pública..onion como un código QR escaneable en la terminal. Si qrencode no está instalado, se te solicita instalarlo. El código QR se renderiza en el buffer de pantalla alternativo y se destruye al descartarlo. Una nota advierte que algunos escáneres QR añaden automáticamente http://; este prefijo se elimina automáticamente al marcar..tmp genéricas e identificadores hexadecimales aleatorios. No se filtra al sistema de archivos ningún metadato de tipo de archivo ni de tiempo.ExcludeNodes con StrictNodes en el torrc./dev/urandom antes de su eliminación. Se lee el tamaño del archivo, se escriben esa cantidad de bytes de datos aleatorios sobre el archivo con dd usando conv=notrunc, la escritura se vacía al dispositivo de almacenamiento con sync, y luego el archivo se elimina con rm. Cubre todos los archivos sensibles en tiempo de ejecución: grabaciones PCM crudas, audio codificado en Opus, payloads cifrados, audio y chat entrantes descifrados, intermediarios de efectos de voz, material de claves de cifrado y HMAC, registros de nonces, flags de sesión, archivos PID, named pipes, claves de servicios ocultos de Tor en rotación y datos de sesión de relays. Para directorios, todos los archivos internos se sobrescriben recursivamente. Una opción de prueba integrada crea un archivo de muestra, muestra el contenido original en texto plano y hexadecimal, lo sobrescribe y muestra el hexadecimal sobrescrito para que el usuario pueda confirmar visualmente que los datos están destruidos. Desactivado por defecto — para la mayoría de los usuarios, el rm estándar es perfectamente suficiente. Los archivos temporales de TerminalPhone son pequeños y de corta duración, y el espacio en disco normalmente se reutiliza rápidamente por la actividad normal del sistema. Esta función es para usuarios que quieren una capa extra de protección contra la recuperación forense. Nota: en SSDs y almacenamiento flash, el nivelado de desgaste significa que la sobrescritura puede aterrizar en celdas NAND físicas diferentes — el cifrado de disco completo es la única defensa fiable en medios flash. En HDDs tradicionales, la sobrescritura reemplaza los datos en la misma ubicación física y es efectiva contra toda recuperación basada en software.RELAY:1 y muestran el recuento en vivo de llamantes del grupo. Que un llamante se vaya no desconecta a los demás. El panel del operador muestra el recuento de llamantes, el tiempo de actividad y el rendimiento de datos.Distribuciones compatibles: Debian/Ubuntu (apt), Fedora/RHEL (dnf), Arch (pacman).``` bash
git clone https://gitlab.com/here_forawhile/terminalphone.git cd terminalphone bash terminalphone.sh
Selecciona la opción **7** del menú para instalar todas las dependencias automáticamente. Se instalarán los siguientes paquetes:
| Paquete | Propósito |
|---|---|
| `tor` | Enrutamiento onion y servicio oculto |
| `opus-tools` | Compresión de voz (códec Opus) |
| `sox` | Utilidades de procesamiento de audio |
| `socat` | Relé TCP bidireccional a través del proxy SOCKS de Tor |
| `openssl` | Cifrado y descifrado AES-256-CBC |
| `alsa-utils` | Grabación y reproducción de audio (`arecord`, `aplay`) |
### macOS``` bash
git clone https://gitlab.com/here_forawhile/terminalphone.git
cd terminalphone
bash terminalphone.sh
Selecciona la opción 7 para instalar todas las dependencias automáticamente. Si Homebrew no está instalado, el script lo instalará primero y luego instalará los siguientes paquetes:
Nota: macOS utiliza sox tanto para grabar (rec) como para reproducir (play) en lugar de ALSA. No se necesitan paquetes de audio adicionales.
Apple Silicon (M1/M2/M3+): Si tu terminal se ejecuta bajo Rosetta 2 (un proceso x86_64) mientras Homebrew está instalado en el prefijo ARM nativo (/opt/homebrew), brew install normalmente falla con Cannot install under Rosetta 2 in ARM default prefix. El instalador de dependencias ahora detecta esto y vuelve a ejecutar Homebrew automáticamente bajo arch -arm64, por lo que la opción 7 funciona independientemente de cómo se haya lanzado el script.
TerminalPhone es compatible con dispositivos Android a través de Termux. Debido a la arquitectura de audio aislada de Android, se requieren dos componentes adicionales.
Paso 1: Instalar Termux
Instala Termux desde F-Droid. No uses la versión de Play Store, ya que está desactualizada y ya no recibe actualizaciones.
Paso 2: Instalar la aplicación Termux:API
Instala Termux:API desde F-Droid. Esta es una aplicación de Android independiente (no un paquete de Termux) que proporciona un puente entre Termux y las API del sistema Android. TerminalPhone la requiere para acceder al micrófono del dispositivo y a la reproducción multimedia.
Sin la aplicación Termux:API instalada en el dispositivo, los comandos termux-microphone-record y termux-media-player no funcionarán, y la grabación y reproducción de audio fallarán silenciosamente.
Después de instalar la aplicación Termux:API, concédele permisos de micrófono cuando se te solicite.
Paso 3: Instalar el paquete Termux:API dentro de Termux```bash pkg install termux-api
This installs the command-line utilities that communicate with the Termux:API app.
**Step 4: Run TerminalPhone**```bash
git clone https://gitlab.com/here_forawhile/terminalphone.git
cd terminalphone
bash terminalphone.sh
Selecciona la opción 7 para instalar todas las dependencias restantes. El instalador ejecutará pkg upgrade primero para resolver cualquier problema de enlace de paquetes, y luego instalará tor, opus-tools, sox, socat, openssl-tool, ffmpeg y termux-api.
Dependencias específicas de Termux:
| Paquete | Propósito |
|---|---|
termux-api | Puente CLI hacia el micrófono y el reproductor multimedia de Android |
ffmpeg | Convierte las grabaciones M4A de Android a PCM sin procesar para la codificación Opus |
To receive a call: Select option 1 (Listen for calls) To make a call: Select option 2 (Call an onion address)
Ambas partes deben tener Tor en ejecución y el mismo secreto compartido configurado antes de iniciar una llamada.
---
## Uso
### Opciones del Menú```
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
Modo Full Duplex (WebSockets):
| Tecla | Acción |
|---|---|
| M | Silenciar / Reactivar micrófono. |
| T | Enviar un mensaje de texto cifrado durante la llamada. |
| Q | Colgar y volver al menú. |
Modo Push-to-Talk (Linux / macOS):
| Tecla | Acción |
|---|---|
| Mantener ESPACIO | Grabar mensaje de voz. Se envía automáticamente al soltar. |
| T | Enviar un mensaje de texto cifrado. |
| S | Abrir ajustes durante la llamada (cambiar cifrado, ajustar calidad). |
| Q | Colgar y volver al menú. |
Modo Push-to-Talk (Termux):
El teclado de software de Android envía eventos de tecla al soltar, no al pulsar. TerminalPhone se adapta usando el modo de alternancia en Termux.
| Tecla | Acción |
|---|---|
| Tocar ESPACIO | Iniciar grabación. Tocar de nuevo para detener y enviar. |
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)
---
## Cómo Funciona
TerminalPhone utiliza un modelo de grabar-y-enviar. Cuando activas PTT, el micrófono graba continuamente hasta que lo sueltas. La grabación completa se procesa luego a través del siguiente flujo:```
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
El protocolo de cable es texto basado en líneas sobre una conexión TCP:
En Termux, un paso de conversión adicional maneja el formato de grabación M4A nativo de Android, usando ffmpeg para convertir a PCM sin procesar antes de la codificación Opus.
Cifrado: Todo el audio se cifra con un cifrado configurable por el usuario (predeterminado: AES-256-CBC) antes de la transmisión. Hay 21 cifrados seleccionados disponibles, clasificados desde el más fuerte (256 bits) hasta el adecuado (128 bits). La clave se deriva de un secreto precompartido usando PBKDF2 con 10,000 iteraciones. El cifrado se aplica en la capa de aplicación, independiente del cifrado de transporte de Tor. Los secretos se pasan a OpenSSL mediante descriptores de archivo (-pass fd:3), no mediante argumentos de línea de comandos, por lo que nunca se exponen en la tabla de procesos.
Negociación de cifrado: Ambas partes intercambian nombres de cifrado al conectar y cada vez que se cambia un cifrado a mitad de llamada. Los nombres de cifrado no son secretos (principio de Kerckhoffs). Si los cifrados local y remoto no coinciden, ambas partes ven indicadores rojos en el encabezado de la llamada.
Transporte: Todos los datos se enrutan a través de circuitos de servicios ocultos de Tor. La dirección IP de ninguna de las partes queda expuesta. No hay tráfico en la red clara. La conexión no puede atribuirse a ninguna de las partes por un observador de red.
Resistencia al análisis de tráfico: El modelo de grabar-y-enviar produce patrones de transmisión irregulares (mensajes de longitud variable a intervalos irregulares), que son más difíciles de identificar que la transmisión continua.
Autenticación: El secreto compartido sirve como autenticación implícita. Si ambas partes no tienen el mismo secreto, el descifrado falla y no se reproduce audio. Al conectar, ambas partes intercambian direcciones .onion para la identificación del llamante. El secreto puede cifrarse opcionalmente en reposo con una frase de contraseña; al iniciar, el script solicita la frase de contraseña para desbloquearlo.
Firma de protocolo HMAC (opcional): Cuando está habilitado, cada mensaje del protocolo de cable -- incluidos los señales de control como HANGUP, PTT_START y PING -- se firma con HMAC-SHA256 derivado del secreto compartido. Se incluye un nonce aleatorio por mensaje para que comandos idénticos produzcan firmas únicas. Los nonces vistos se rastrean por llamada y los duplicados se rechazan, evitando ataques de repetición. La configuración de HMAC se congela al inicio de la llamada mediante un archivo en tiempo de ejecución para que tanto la ruta de envío como la de recepción siempre coincidan, incluso si la configuración se alterna a mitad de llamada (los cambios surten efecto en la siguiente llamada). En el extremo receptor, cualquier mensaje con una firma inválida, faltante o repetida se descarta silenciosamente. Esto evita que un atacante que comprometa el circuito de Tor (pero no tenga el secreto compartido) inyecte o repita comandos. Ambas partes deben habilitar HMAC para que las llamadas funcionen. No es compatible con versiones anteriores a la 1.1.3.
Limitaciones:
Seguridad del modo relay: El relay es arquitectónicamente de conocimiento cero. Nunca posee el secreto compartido y no puede descifrar ningún contenido. Los datos de audio fluyen a través de buffers de tubería del kernel (FIFOs) que existen solo en memoria -- nada se escribe en disco. Cuando el relay se detiene, todos los archivos temporales se eliminan. El operador del relay no puede determinar qué se dijo, quiénes son los llamantes, ni leer ningún mensaje. El relay filtra todos los señales de control (HANGUP, ID:, CIPHER:, PTT_START, PTT_STOP) y solo reenvía AUDIO:, MSG: y PING. Un adversario pasivo global podría realizar análisis de correlación de tráfico para asociar llamantes con el relay, pero el contenido de los mensajes permanece opaco.
Capacidad del relay: El cuello de botella principal es el ancho de banda de Tor. El rendimiento de los servicios ocultos de Tor es muy variable y depende de la calidad del circuito, la congestión del relay y la distancia geográfica. Un mensaje de voz típico de 10 segundos es de ~20KB cifrado, y cada transmisión se distribuye a N-1 oyentes.
La capacidad realista es de 3--5 llamantes para un relay que se ejecuta en un teléfono (Termux), o 5--10 llamantes en una máquina Linux dedicada con una conexión estable. Los relays que se ejecutan en dispositivos móviles enfrentan restricciones adicionales: los datos móviles añaden latencia sobre Tor, Android puede matar procesos de Termux en segundo plano para recuperar memoria, y el consumo de batería aumenta con cada llamante conectado. El ancho de banda del circuito de Tor puede variar de 50KB/s a 500KB/s dependiendo de la calidad de la ruta, y los circuitos pueden degradarse o rotarse a mitad de sesión. El modo de salto único mejora el rendimiento pero no elimina la congestión del relay de Tor. Estas estimaciones asumen el modelo PTT donde solo una persona transmite a la vez -- las transmisiones simultáneas degradarían aún más el rendimiento. Los llamantes en una llamada grupal deberían considerar reducir su tasa de bits de Opus (Configuración → Codificación Opus) para reducir los tamaños de mensaje y aliviar la carga en el relay.
Toda la configuración se almacena en .terminalphone/ relativo a la ubicación del 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
Parámetros de audio predeterminados (definidos al inicio del script):
| Parámetro | Valor predeterminado | Descripción |
|---|---|---|
| `LISTEN_PORT` | 7777 | Puerto TCP para conexiones entrantes |
| `TOR_SOCKS_PORT` | 9050 | Puerto del proxy SOCKS de Tor |
| `OPUS_BITRATE` | 16 | Tasa de bits de codificación Opus en kbps |
| `CIPHER` | aes-256-cbc | Cifrado (configurable mediante Ajustes) |
| `SNOWFLAKE_ENABLED` | 0 | Puente Snowflake para evadir la censura |
| `AUTO_LISTEN` | 0 | Escucha automática de llamadas cuando Tor se inicia |
| `PTT_KEY` | ESPACIO | Tecla de pulsar para hablar (configurable mediante Ajustes) |
| `VOL_PTT` | 0 | PTT con doble pulsación de bajar volumen, solo Termux (experimental) |
| `EXCLUDE_NODES` | (vacío) | Lista de países ExcludeNodes de Tor (p. ej. `{US},{GB}`) |
| `HMAC_AUTH` | 0 | Firmar todos los mensajes del protocolo con HMAC (opcional, ambos lados deben coincidir) |
| `OVERWRITE_DELETE` | 0 | Sobrescribir archivos temporales con datos aleatorios antes de eliminarlos (desactivado por defecto) |
| `PTT_CHIME` | off | Ajuste predefinido de aviso sonoro de PTT (off, tone, double, chirp, ding, click, custom) |
| `SINGLE_HOP` | 0 | Modo Tor de un solo salto para menor latencia (desactiva el anonimato del servidor) |
| `SAMPLE_RATE` | 8000 | Frecuencia de muestreo de audio en Hz |
| `CHUNK_DURATION` | 1 | Duración de los fragmentos de prueba de audio en segundos |
---
## Solución de problemas
**Tor no logra arrancar (bootstrap):**
Revisa el registro de Tor en `.terminalphone/tor_data/tor.log`. Las causas comunes incluyen desviación del reloj, restricciones de red que bloquean Tor u otra instancia de Tor usando el mismo puerto SOCKS.
**Sin audio en Termux:**
Verifica que la aplicación Termux:API esté instalada desde F-Droid (no solo el paquete `termux-api`). Concede permisos de micrófono a la aplicación Termux:API en los ajustes de Android. Ejecuta la prueba de bucle de retorno de audio (opción 5) para verificarlo.
**La instalación de ffmpeg falla en Termux:**
Ejecuta `pkg upgrade` antes de instalar las dependencias. El instalador lo hace automáticamente, pero si instalaste los paquetes manualmente, las bibliotecas compartidas desactualizadas pueden causar errores de enlace.
**La prueba de audio funciona pero las llamadas son silenciosas:**
Confirma que ambas partes usan el mismo secreto compartido. Los secretos no coincidentes provocarán un fallo de descifrado sin mensaje de error: la llamada se conecta pero no se escucha audio.
**El puente Snowflake tarda en conectarse:**
Snowflake enruta el tráfico a través de proxies WebRTC, lo que añade tiempo adicional de arranque. Es normal que Tor tarde 30--60 segundos (o más) en alcanzar el 100% cuando Snowflake está habilitado. El script mostrará un aviso de paciencia durante el arranque.
**El primer arranque de Tor es lento:**
En el primer lanzamiento, Tor debe descargar el consenso completo de la red desde cero, lo que puede tardar uno o dos minutos. El script lo detecta y muestra un aviso. El tiempo de espera de arranque se extiende automáticamente de 120 a 300 segundos en la primera ejecución. Los lanzamientos posteriores usan datos de consenso en caché y son mucho más rápidos.
**Colgar no vuelve al menú:**
Si el script se bloquea después de pulsar Q, pulsa Ctrl+C para forzar la limpieza y volver al shell.
**`Cannot install under Rosetta 2 in ARM default prefix` en macOS:**
Esto ocurre en Apple Silicon cuando la terminal se ejecuta bajo Rosetta 2 (un proceso `x86_64`) pero Homebrew reside en el prefijo ARM nativo (`/opt/homebrew`). El instalador de dependencias (opción **7**) ahora lo detecta y vuelve a ejecutar `brew` automáticamente bajo `arch -arm64`. Si instalas los paquetes manualmente, prefíjalos tú mismo: `arch -arm64 brew install <paquete>`. Alternativamente, lanza el script de forma nativa 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)
---
## Licencia
MIT
| Paquete | Propósito |
|---|
tor | Enrutamiento onion y servicio oculto |
opus-tools | Compresión de voz (códec Opus) |
sox | Grabación y reproducción de audio (rec, play) |
socat | Relé TCP bidireccional a través del proxy SOCKS de Tor |
openssl | Cifrado y descifrado AES-256-CBC |
| T | Enviar un mensaje de texto cifrado. |
| S | Abrir ajustes durante la llamada (cambiar cifrado, ajustar calidad). |
| Q | Colgar y volver al menú. |
| Vol Down ×2 | Alternar grabación mediante el botón de volumen (requiere PTT por volumen habilitado en ajustes). |
| Mensaje | Descripción |
|---|
ID:<onion> | ID de llamante -- dirección .onion del remitente |
CIPHER:<nombre> | Cifrado del remitente. Se intercambia al conectar y al cambiar. |
PTT_START | El remitente ha comenzado a grabar |
PTT_STOP | El remitente ha terminado; el audio sigue o ya se ha enviado |
AUDIO:<base64> | Mensaje de audio cifrado completo |
MSG:<base64> | Mensaje de texto cifrado |
HANGUP | El remitente se está desconectando |
PING | Señal de mantenimiento de conexión |
RELAY:1 | Saludo del relay -- enviado por el relay al conectar, activa el modo grupal |
GROUP:<n> | Actualización del tamaño del grupo -- transmitido por el relay cuando los llamantes se unen o salen |
| Llamantes | Saliente por mensaje | Experiencia esperada |
|---|
| 2--3 | 20--40KB | Confiable en la mayoría de las conexiones |
| 3--5 | 40--80KB | Buena en circuitos estables, retrasos posibles en datos móviles |
| 5--10 | 80--180KB | Llegando al límite, retrasos notables entre transmisiones |
| 10+ | 180KB+ | No confiable, colas significativas y posible pérdida de mensajes |