Engineering Deep Dive

Under the Hood

A detailed look at how Meow delivers native performance, crystal-clear audio, and rock-solid SIP connectivity, all in a lightweight package.

~30 MB RAMtypical usage<1s startupcold launchC++20native speed0 web viewsno Electron

Layered Architecture

Five cleanly separated layers with one-way dependencies. Each layer only talks to the one directly below it.

QML UI Layer
Main.qml · Views · Components
QmlBridge (C++)
Context properties · Signal/Slot
Core Controllers
CallManager · SettingsManager · LicenseManager ContactModel · CallStateMachine · Database
SIP Engine
PJSIP · PjAccount · PjCall · SRTP
Audio Backend
PulseAudioDev (Linux) · WASAPI/WMME (Windows)
UI (QML/Qt Quick)
Bridge (C++ / QML)
Core Logic
SIP Stack
Platform Audio

Audio Pipeline

Custom audio backend built for VoIP. Not a generic media player repurposed for calls.

Custom PulseAudio Backend

Direct PulseAudio integration with no dependency on system-compiled audio backends. Works everywhere PulseAudio or PipeWire runs.

VoIP-Optimized Buffers

80ms target playback latency, 20ms capture fragments. Tuned for voice clarity over raw throughput.

Audio Hot-plug

Background pactl subscribe process with 500ms debounce. Plug in a headset mid-call and it just works.

Conference Bridge

PJSIP conference bridge at 8000 Hz clock rate. Native G.711 match eliminates unnecessary resampling.

audio-config
Audio Pipeline Configuration
─────────────────────────────

Playback latency:   80 ms target
Capture fragments:  20 ms intervals
Sample rate:        8000 Hz (G.711)
Channels:           Mono
Codec match:        Native (no resampling)

Platform backends:
  Linux  → PulseAudio (libpulse-simple)
  Windows → WASAPI / WMME

SIP & Call Management

State-machine-driven call handling with thread-safe PJSIP integration.

Idle
Dialing
Ringing
Connecting
Active
Disconnecting

QStateMachine FSM

Single source of truth for call state. Transitions are atomic and thread-safe via Qt signal/slot.

Thread-Safe PJSIP

PJSIP runs on background threads; all callbacks are safely marshaled to the Qt UI thread, preventing race conditions and ensuring smooth UI updates.

DTMF (RFC 2833)

RFC 2833 DTMF digit transmission for IVR navigation. Compatible with all major PBX systems.

Call Recording

Record calls to WAV files on demand or automatically. Recordings are stored locally with per-call metadata and can be played back from the call history.

Contact Enrichment

Incoming calls are matched against contacts using phone number normalization with country code awareness.

Security & Licensing

Cryptographically sound licensing with hardware-bound activation.

Hardware Fingerprinting

An anonymous, multi-factor hardware fingerprint uniquely identifies each device. The fingerprint is stable across reboots and cannot be used to identify you personally.

SHA-256AnonymousMulti-factor

Cryptographic Signatures

License tokens are cryptographically signed by the server. The client verifies them offline using an embedded certificate — no network needed for validation.

Ed25519Offline verify

Anti-Reset Protection

Server-side hardware matching prevents trial resets. Reinstalling the OS or clearing local storage won't grant a new trial — the server remembers your device.

Server-sideHardware-bound

Voice Encryption

SRTP media encryption is supported and negotiated automatically when the SIP server supports it. TLS is available for signaling encryption.

SRTPTLSOptional

Performance

Native code means native performance. No runtime overhead, no garbage collector pauses.

~30 MB
Memory usage
typical runtime
<1s
Cold startup
to registration
8 kHz
Clock rate
native G.711
20ms
Capture latency
audio fragments

Memory Comparison (typical idle call)

Meow (C++/Qt)30 MB
Typical Electron SIP180 MB
Java SIP Client250 MB
Browser WebRTC400 MB

Platform Support

Truly native on each platform. Not a cross-platform wrapper with platform quirks.

Windows

Fully Supported
WASAPI / WMME audioNative Windows audio
System trayQt SystemTrayIcon
Desktop notificationsQt native
Dark mode detectionRegistry AppTheme
AutostartRegistry Run key
Audio device selectionNative device enum
Machine identitySystem-level ID

Linux

Fully Supported
PulseAudio backenddlopen + libpulse-simple
System trayQt SystemTrayIcon
Desktop notificationsD-Bus / org.freedesktop
Dark mode detectionD-Bus color-scheme
Autostart.desktop in autostart dir
Audio hot-plugpactl subscribe
Machine identitySystem-level ID

Standards & Compatibility

Built on PJSIP, the most widely deployed open-source SIP stack. Standards-first, vendor-agnostic.

RFC 3261

SIP: Session Initiation Protocol

RFC 3550

RTP: Real-Time Transport Protocol

RFC 2833

DTMF Tones via RTP Payloads

RFC 3711

SRTP: Secure Real-Time Transport

RFC 3263

SIP: Locating SIP Servers

RFC 5626

SIP Outbound Connections

Tested PBX Systems

FreePBXAsterisk3CXFusionPBXKamailioOpenSIPS

Ready to experience a truly native SIP client?

Start 14 Days Free Trial