Skip to content

Releases: TadB0x/VoiceMesh

VoiceMesh v1.6.0

Choose a tag to compare

@TadB0x TadB0x released this 04 Apr 07:06

Removed TTS fallback and default dialer requirement. Cleaner permissions.

VoiceMesh v1.5.1

Choose a tag to compare

@TadB0x TadB0x released this 04 Apr 06:56

Fix: app now appears in default dialer list. Uses RoleManager on Android 10+.

VoiceMesh v1.5.0 — InCallService

Choose a tag to compare

@TadB0x TadB0x released this 04 Apr 06:50

Set VoiceMesh as default dialer → TTS goes directly into the call to the iPhone user. No speakerphone. No mic. Main screen shows a 'Set as Default Dialer' button.

VoiceMesh v1.4.3

Choose a tag to compare

@TadB0x TadB0x released this 04 Apr 06:46

Fix TTS not reaching iPhone user — routes through speakerphone→mic→call uplink. Earpiece restores automatically when message finishes speaking.

VoiceMesh v1.4.2

Choose a tag to compare

@TadB0x TadB0x released this 04 Apr 06:42

Fix send/attach buttons not working in TTS mode.

VoiceMesh v1.4.1

Choose a tag to compare

@TadB0x TadB0x released this 04 Apr 06:37

TTS fallback triggers after 15s of no response (was 36s).

VoiceMesh v1.4.0 — Quiet + iOS TTS

Choose a tag to compare

@TadB0x TadB0x released this 04 Apr 06:35

VoiceMesh v1.4.0

Quiet handshake + volume ducking

The key exchange no longer sounds eerie. Two changes:

8% amplitude for control frames — handshake, ACKs, and baud probe packets are encoded at 8% of max amplitude instead of 65%. The Goertzel decoder detects frequency, not volume, so it still works. In earpiece mode you'd hear a faint blip. In silent/digital mode you hear nothing.

Call volume ducked during transmission — whenever any FSK packet is sent, the call stream volume drops to 25% then restores immediately after. So even data packets (at 65% amplitude) are played at 1/4 of your current call volume.

iOS / no-VoiceMesh TTS fallback

When calling someone without VoiceMesh (iPhone, regular phone, etc.) the handshake times out after ~36 seconds. The app then switches to TTS mode:

  • Your typed messages are synthesised by Android TTS and spoken aloud over the call
  • The other person hears a clear voice saying "Message: [your text]"
  • No VoiceMesh required on their end — works with any phone
  • A red banner shows "TTS mode — speaking to non-VoiceMesh user"
  • Images are disabled in this mode (can't be spoken)

Decision flow on call connect

Call active → start handshake (quiet FSK tones)
    ↓ response within 36s?
   YES → E2E encrypted VoiceMesh session
    NO → TTS fallback (spoken messages, works with iPhone)

VoiceMesh v1.3.0 — No noise, call detection, dial

Choose a tag to compare

@TadB0x TadB0x released this 04 Apr 06:15

VoiceMesh v1.3.0

Fixes

Startup noise (was: ear-splitting noise on app open)
The modem now only activates when a phone call is active. Opening the app no longer changes audio routing at all. The speakerphone no longer overrides connected headphones — it checks for wired and Bluetooth headsets before enabling.

Call detection
The chat screen now reads your live call state:

  • Green banner: "Call active" — modem auto-starts, handshake begins
  • Amber banner: "No active call" — modem stays off, send/attach disabled
  • Reacts live as calls start or end while the app is open

Dial from app
Tap Dial in the chat header → enter a number → the call starts. Modem activates automatically when the call connects.

How to use now

  1. Open VoiceMesh → tap Dial → enter number
  2. When the call connects, the banner turns green and the modem starts automatically
  3. Wait for "E2E encrypted" to appear (~10–20 seconds for key exchange)
  4. Send text or images — fully encrypted, zero noise, works with headphones

VoiceMesh v1.2.0 — Silent Mode

Choose a tag to compare

@TadB0x TadB0x released this 04 Apr 06:01

VoiceMesh v1.2.0 — Silent Mode

No noise. No mic. Works with headphones or in complete silence.

What changed

Silent / digital mode (new default)

The app now captures call audio digitally from the phone's audio subsystem instead of acoustically through the microphone. FSK tones are injected directly into the call uplink — the remote party receives them but the local user hears nothing.

v1.1 v1.2
RX method Microphone picks up earpiece VOICE_CALL digital capture
TX method Speaker plays tones (audible) Injected into call uplink (silent)
Speakerphone Required Never needed
Headphones Broke it Works perfectly
Makes noise Yes No

Automatic fallback

If the device denies digital capture (some stock Android 10+ phones), the app silently falls back to speakerphone+mic mode. A small badge in the chat header shows "silent" (green) or "acoustic" (amber) so you know which mode is active.

Install

Download VoiceMesh.apk, enable Unknown Sources, install. Android 8.0+.

VoiceMesh v1.1.0 — E2E Encrypted

Choose a tag to compare

@TadB0x TadB0x released this 04 Apr 05:54

VoiceMesh v1.1.0

What's new

End-to-end encryption

  • ECDH key exchange (P-256) runs over the FSK channel itself — zero servers, zero internet
  • AES-256-GCM encrypts every message (random IV, authentication tag)
  • Send/attach locked until handshake completes (~10–20s at 300bps for key exchange)
  • Tap the fingerprint in the chat header, read it aloud — if it matches your contact, no MITM

ARQ reliable delivery

  • Every message waits for an ACK before sending the next
  • Auto-retransmits up to 3× if no ACK in 12 seconds
  • Failed messages marked in the UI

Baud rate negotiation

  • After handshake, probes at 1200 bps
  • Both sides upgrade automatically on VoLTE calls (4× faster image transfer)
  • Falls back to 300 bps on poor GSM calls

Install

Download VoiceMesh.apk, enable Unknown Sources, install. Requires Android 8.0+.

Fingerprint verification

After the green "E2E encrypted" badge appears, tap the fingerprint (e.g. A1:B2:C3:D4:E5:F6) and read it to your contact. If it matches theirs — you're secure.