Kaaka Call settings
Kaaka Call is the app on the Kaaka number. Everything it does is configured under [config]. This page explains every setting and what the app does with it.
Settings
| Setting | Default | What it does |
|---|---|---|
| reject incoming calls | on | Rejects every incoming call after reading the number. Off: calls ring through, but the SMS reply, responder texts and dashboard report still happen. |
| reply language | English | English, Malayalam or both. The Malayalam text should be checked by a native speaker before real use. Malayalam SMS use Unicode and split into more parts. |
| custom auto-reply | empty | Replaces the default reply text. Leave empty to use the language setting. |
| escalate after (minutes) | 5 | If nobody ACKs or resolves an incident in this time, every responder gets one reminder. 0 turns it off. |
| max replies per number per hour | 3 | After this many contacts from the same number in an hour, further contacts are logged and reported but nobody is texted. 0 = no limit. |
| responder numbers | empty | Phones texted on every call, help SMS and alert. Only these numbers can use the responder commands. |
| dashboard server | empty | http://<ip>:8080. Empty = phone-only mode, no control room. |
| public link URL | empty | An https address that reaches the control room. Normally left empty: the phone learns it from the dashboard's heartbeat reply. See Location links. |
| dashboard token | empty | Must match KAAKA_ADMIN_TOKEN on the server. Sent as the X-Kaaka-Token header on every request. |
How a call is handled
- Unknown numbers go through Android's call screening: the app reads the number and rejects the call. The call still shows in the call log as missed.
- Saved contacts are not passed to call screening by Android. Kaaka Call sees them through the phone-state broadcast and ends the call. Those events show "(contact)". This uses an API Android has deprecated; if it ever stops working, the call keeps ringing but the SMS, responder texts and dashboard report still happen.
- Hidden numbers get no SMS, since there is nowhere to send it. The call is still logged and reported.
- Repeat calls from the same number within 10 seconds are treated as one.
Rate limiting and escalation
Each contact from a number counts toward the hourly limit. Beyond it, the event is logged as "rate-limited" and posted to the dashboard with sms: skipped, but no texts go out and no reminder is scheduled. Escalation reminders run through Android's WorkManager, so a sleeping phone may deliver them a little late, more so without the battery exemption. A newer contact from the same number restarts its timer.
Heartbeat
While a dashboard server is set, the phone posts a heartbeat every 15 minutes and right after saving settings: battery level, charging state, and whether call screening, SMS and contact-call permissions are in place. The control room shows "last seen" and warns when no heartbeat has arrived for 20 minutes or a permission is missing.
Recent events and manual SMS
The app keeps its last 200 events (calls, help SMS, alerts, ACKs, resolves, reminders) and shows them on its main screen. STATUS replies, rate limiting and escalation use this log, not the dashboard. At the bottom you can type a number and a message to send an SMS by hand.
Kaaka 1.0.0 · Edit this page · In immediate danger, call 112.