Voice mode for everyone
Phones switch at their next talk. Per-channel and per-user overrides in the Channels and Users tabs win over this.
New accounts waiting
New devices waiting
An approved user signing in on a new phone. Approving it signs their old phone out.
A group is a set of people who can talk to each other one-to-one: they see each other under Contacts and in the app's Groups tab. For group talk use a channel.
Adding days counts from today for expired licenses. Phones show a reminder 7 days before the end; when it ends they cannot talk or send messages until renewed. Users with no end date never expire.
Expired or ending within 7 days
An invite code pre-approves the person and their phone, and adds them to the selected groups.
Data storage
SOS messages are always kept. With history off the server only holds a message until the phones fetch it.
Legal pages
Shown on the Terms of use, Privacy policy and Delete account pages (also linked in the app and needed for the Play Store). Indian law requires a named grievance officer with contact details.
Staying reachable
App settings on every phone
"Phone decides" leaves it to each user. A user's own settings in Users win over these.
Change your password
Superadmin: everything, including admins. Admin: users, channels, invites, settings. Moderator: for employees. Handles reports, blocks, limits and investigations; never sees phone numbers, emails, locations, settings or backups. Dispatcher: can see users and channels and talk, cannot change anything.
Reported users
People reported from the app (with the category, a note and up to five messages the reporter chose to send). An account reported or blocked by many different people is limited automatically: it cannot send contact requests until the limit ends or you lift it.
Investigations
For a complaint you can investigate one account for up to 30 days. While it is open, that person's one-to-one talk and messages are not end-to-end encrypted, everything they send and receive is kept on the server, and you can read and play it here. Every opening, view and playback is written to the audit log. Use it only for a real complaint.
Spam and abuse limits
Staff are never limited. 0 turns a limit off.
Announcements
Ads never show while someone is talking or listening. To earn from AppLovin, Unity and Meta as well, add them as mediation partners in your AdMob account; the app already includes them. The AdMob app ID is set once when the app is built.
Where each ad network's ID goes
- Google AdMob app ID (looks like
ca-app-pub-1234…~5678…): Google only reads it from inside the app, so it goes into the next app build. Paste it in the box below and say "build with my AdMob ID". - AdMob ad unit IDs (
ca-app-pub-1234…/5678…): paste them above. Phones pick them up within a minute, no new app needed. - AppLovin, Unity Ads, Meta Audience Network: do not paste their keys here. In AdMob go to Mediation, add each one as an ad source and enter its SDK key, game ID or placement ID there. The app already carries all three, so they start bidding by themselves.
- Ad places: tick the places above. "Chats tab", "Channels tab" and "Contacts tab" show one banner at the top of each main tab.
Promotions
Use the arm64 APK (app-arm64-v8a-release.apk). The build is the number after "+" in the app's version (e.g. 7.0.0+7 → 7). Phones see the update at once.
Versions
Rules
Phones below the minimum build or on a blocked build are locked with an "Update required" screen until they install the offered version.
Active users per day
Downloads, website visits and app opens
Latest visitors
City from the free DB-IP.com database (IP geolocation by DB-IP, CC BY 4.0). City by IP is approximate, mobile data often shows the operator's city.
Analytics settings
Last minutes
Refreshes every 3 seconds while this tab is open. CPU, memory and network are for the whole server; disk is the drive holding the app's data.
Ways to sign in
MSG91
Keys are stored on the server and never shown again. Leave a key empty to keep the saved one.
You talk as Control room. Your talk and messages always reach the person: blocks, mute and prayer quiet do not stop them, and you can cut in on anyone talking in a channel. Replies play here. Needs Chrome or Edge and a microphone.
Recent
Backups
A backup is the whole database and stored files, locked with your backup password. Without that password nobody can open it, not even us, so write it down somewhere safe.
Google Drive
In Google Cloud Console, create an OAuth client of type "TVs and Limited Input devices" and turn on the Google Drive API. The server can only see the files it uploads.
On the server
In Google Drive
To restore on a new server, copy the backup file there and run walkie-api restore-backup FILE FOLDER with the password in WALKIE_BACKUP_PASSWORD, then use the same .env file as before.
Organisations are your customers (companies, tour operators, event teams). Each gets its own people, channels, invites and admins, walled off from the others. People join with the organisation's join code. Paused or expired organisations cannot use the app.
Every account that was deleted, by the person in the app or by an admin. Kept for audit after the account is gone: when, who did it, from which internet address, phone and place, and how much was removed. The messages and photos themselves are not kept.
Superadmin only. Everything you open or change here is written to the audit log. Secret values (passwords, keys, tokens) are always hidden.
Tables
Clean-up rules (every night at 4:00)
Each night a backup is made first; only if it works are rows older than the chosen days removed. Accounts, groups, keys, settings, reports and legal records can never be removed here.
Speed
Indexes for the busiest app and dashboard searches are added automatically (count per table above; point at it to see names). Optimise refreshes the statistics the database uses to pick them. Compact gives the space of removed rows back to the disk; the app may pause for a few seconds while it runs.