How to Call and Chat Over Wi-Fi Without Internet
Why calls between people in the same building still depend on the internet, and how ZooCall, an open-source app, does encrypted calls and chat over local Wi-Fi.

Two people sit forty metres apart in the same office. One calls the other on a popular calling app. The voice leaves the building, crosses the internet to a data centre that might be on another continent, and comes back down the same pipe. The two phones in between were connected to the same Wi-Fi router the whole time.
For most calls, nobody notices. But the internet link is often the weakest part of a building's network. When it goes down, gets slow, runs out of data, or is blocked, those same two people can't talk at all, even though the router between them never stopped working.
ZooCall is an open-source project built around a simple idea: people on the same local network should be able to call, video call and message each other directly, with no internet, no accounts and no servers. This post explains why that's useful, where it fits, and what the project can do today.
ZooCall is in active development and has no public release yet. Everything described as verified below has been tested on real devices. Everything marked as in testing is implemented and covered by automated tests, but has not yet been run across enough real phones and computers. The project's roadmap on GitHub tracks exactly which is which.
Why local calling is still hard
The router in the corner already does everything a local call needs: it moves packets between devices in the same building, fast and at no cost. What is missing is software that uses it.
Mainstream calling apps are built around a server. Accounts, contact lists, call setup and often the audio itself pass through the provider's infrastructure. That's how they reach anyone in the world, and it's why they need the internet even when both people are in the same room.
The traditional local alternative is heavy. Businesses that want an internal phone system usually end up with a PBX or SIP setup: extensions to configure, a server to maintain, and someone in IT who understands it. That works for large organisations and is far too much for a clinic, a workshop or a film crew.
Walkie-talkies solve part of it, but they're separate hardware, unencrypted by default, and don't carry chat, files or video.
So there's a gap: a calling app that is as easy as a consumer one and as local as an intercom. That is where ZooCall sits.
What ZooCall does
ZooCall lets people on the same Wi-Fi network, or connected to one phone's hotspot, find each other and talk directly. It runs on Android phones and tablets and on Windows and macOS computers, built from one Kotlin Multiplatform codebase. A phone can call a PC as easily as it calls another phone.
The core, verified on real devices for Android-to-Android and Android-to-Windows:
- One-to-one audio and video calls, using WebRTC with the Opus codec, echo cancellation and noise suppression, with quality that adapts to the network.
- Text chat, with an outbox: messages to someone who is offline wait and send themselves when that person reappears on the network.
- Photos and files of any type, hash-verified, and able to pause and resume.
- Voice notes, for when a live call isn't needed.
Implemented and in multi-device testing:
- Group calls: audio for up to eight people and video for up to four, with people added mid-call.
- Push-to-talk to a person or a group, with a Space-bar hotkey on the desktop. This is the walkie-talkie mode.
- Knock, a gentle "are you free?" nudge with one-tap replies like Call me, 2 min or Busy.
- Screen sharing from a Windows or macOS computer, viewable on phones and computers.
Security that can't be turned off
Local doesn't automatically mean private. Anyone else on a shared Wi-Fi network is, technically, on your network. ZooCall treats that seriously:
- Encryption is always on. The control channel for signaling, chat, presence and files uses the Noise XX protocol. Call media uses WebRTC's DTLS-SRTP, with its fingerprint bound to the same device identity, so the media can't be quietly redirected.
- Identity is a key, not a name. On first launch, your device generates a cryptographic key pair. There is no phone number, no email address and no account.
- Contacts are verified. When you add someone, both screens show a six-digit safety code derived from the encrypted handshake. If the codes match, nobody is sitting in the middle. Scanning someone's QR code verifies automatically. If a contact's key ever changes, ZooCall warns you, the same model Signal uses with safety numbers.
- Data at rest is encrypted too. The local message database is encrypted, and so are received attachments.
There is no telemetry, no analytics and no advertising, and the whole project is MIT-licensed and open to audit.
Real-world use cases
The places ZooCall is designed for have one thing in common: people who share a network, and a reason not to depend on the internet to talk.
Offices and small teams. Call the desk across the floor, message the front desk, send a file to the person in the next room, without anything leaving the building. For a small team, this is an internal phone system you install instead of configure.
Clinics and hospital floors. Conversations that never leave the building's network, and no accounts to provision for each member of staff.
Warehouses, workshops and events. Push-to-talk and group calls turn phones people already carry into walkie-talkies that work anywhere the site Wi-Fi reaches.
Schools and campuses. Staff rooms, labs and offices on the same network can reach each other at no cost per call, including where internet access is filtered.
Film sets and field teams. A phone hotspot is a network. One person turns theirs on, everyone else connects, and the crew has calling and chat with no infrastructure and no mobile signal needed.
Homes, ships, and anywhere the uplink is unreliable. The family upstairs, the crew below deck, the colleague across a building whose internet just failed. As long as the devices can see each other, they can talk.
How it works, step by step
The project has a design rule: if a feature needs a tutorial, redesign it or cut it. Getting started is meant to be that short.
- Join the same network. Wi-Fi or one phone's hotspot. That's the only infrastructure ZooCall needs.
- Type your name. Add a display name and an avatar. Your identity is the key pair your device just created.
- Find people. Everyone running ZooCall on the network appears in a live Nearby list. On networks that block the discovery protocol, add someone by scanning their QR code or by typing their IP address.
- Verify and add. Compare the six-digit safety code, or scan a QR code, and they become a verified contact.
- Call, chat and share. Audio, video, messages, photos, files and voice notes, all peer to peer and encrypted.
When devices can't see each other
Local networking has one classic failure: two devices on the "same" Wi-Fi that can't see each other. Usually the network is keeping them apart deliberately. Guest Wi-Fi with client isolation, a VPN that blocks local traffic, a router that blocks multicast discovery, a Windows network set to Public, or a firewall can each cause it.
ZooCall's Network Doctor checks for each of these and explains the problem in plain language, with the fix. That includes an in-app helper for Windows Firewall and fixes for Android battery settings that stop the app from staying reachable. When all else fails, a phone hotspot sidesteps the problem entirely.
What ZooCall is not
Being clear about scope is part of being useful:
- It doesn't call over the internet. No NAT traversal, no relay servers. It's for the network you're on.
- It doesn't call phone numbers. There is no connection to the public phone network.
- It isn't for large meetings. Group calls are small by design: eight for audio, four for video.
- It isn't on iOS yet. iOS and official Linux support are planned after Android and desktop reach 1.0.
Why build it in the open
A calling app asks for a lot of trust: your microphone, your camera, your contacts, your conversations. ZooCall is MIT-licensed and developed publicly, with its plan, architecture, versioned protocol specification, security model and roadmap all in the repository. The protocol is specified so that other clients, including a future iOS client or a third-party one, can interoperate with it.
Building in the open also means the roadmap is honest about where the project stands. It records which features have been verified on devices, which are in testing, and what's left before 1.0: an accessibility pass, performance budgets, fuzzing and a security review, and signed builds with app-store distribution.
How to follow along, or help
ZooCall is free forever: no payments, no ads, no tracking. It's early, and the best way to shape what ships first is to get involved:
- Star or watch the repository at github.com/FlyToRakib/zoocall to follow progress.
- Read the roadmap to see what's verified and what's next.
- Build it from source and test it on your own devices. Reports from real networks are the most valuable contribution right now.
Learn more on the ZooCall product page. If you're weighing local-first tools for a team more broadly, our piece on self-hosted team communication covers the wider trade-offs. For another open-source app that keeps audio between your own devices, see how to use your phone as a PC microphone and speaker with SoundPush.

Written by
Tanvir AhmedLead Full-Stack Engineer
Lead full-stack engineer at Degird, shipping the products and the platform they run on.
Keep Reading
Product UpdatesWhat's New in Tubeup 2.0?
Tubeup 2.0 turns a YouTube uploader into a publishing engine: automation flows, chat, nine AI providers, every channel on one Google project, and a faster, safer app.
Read Article
TutorialsHow to Use Your Phone as a PC Microphone and Speaker
Turn your Android phone into your computer's microphone, speaker, or wireless headset over Wi-Fi or USB — free, open source, and encrypted, with SoundPush.
Read Article
Product UpdatesSyncDock Client 1.2: WordPress Publishing on Autopilot
SyncDock Client 1.2.1 runs automations on your own WordPress server, bulk-edits 50 posts across 10 sites, and finds the posts losing search traffic.
Read Article