What happens between a call ringing and a fee accruing
Every voice call and WhatsApp message a prospect sends runs through the same guarded, auditable path before it ever touches a rupee of outcome fee. This is that path in full — plain language, the real technical sequence, the engine underneath it, and the two ways it can be deployed.
The flow, as the room sees it
Six stages. Every real conversation — voice or WhatsApp — passes through all six before it can affect an invoice. No stage is skippable, and none of them depend on the AI's own word for it.
The same six stages, as a sequence
Five actors, nine steps, left to right in call order, top to bottom in time — this is what actually crosses the wire for one conversation.
The engine underneath
Step 02 of the runtime, expanded — what "Vani OS Runtime" is actually built from, layer by layer, from the moment audio or text arrives to the moment a reply is spoken or typed back.
Cloud or On-Prem — the same engine, two homes
The layered engine in §03 doesn't change. What changes is where each layer physically runs — and therefore who touches the audio and data, what it costs to stand up, and how fast it can go live.
Cloud — managed
- TransportLiveKit SFU, self-hosted on the production box via a Cloudflare Tunnel + TURN-over-TLS — no cloud VM in the loop; GCP was fully decommissioned 2026‑09‑07
- STTDeepgram (cloud API) — swapped in for the box's default Whisper after a real load test (2026‑09‑05) found Whisper's time-to-first-transcription climbing 2.9s→5.6s under concurrency; Deepgram holds ≤1.5s flat to 5 concurrent calls
- LLMOllama or a cloud model, routed via the LiteLLM proxy
- TTSSarvam bulbul:v3 (cloud API)
- HardwareNone — nothing for the institution to own or maintain
- DataCall audio and transcripts touch Vani OS's managed cloud infrastructure
- Go-liveFastest — this is what's running today for the pilot
On-Prem — sovereign
- TransportDirect PSTN via Plivo/Exotel, bidirectional WebSocket straight to the on-site server; LiveKit itself self-hosts the same way proven on the production box (Cloudflare Tunnel + TURN-over-TLS) — no cloud dependency either way, though this specific hardware combination isn't load-tested yet
- STTSelf-hosted Whisper / IndicWhisper (AI4Bharat) by default — 22 Indian languages, on-GPU, but a real load test found it degrades under concurrent calls; Deepgram (cloud API) is the proven fix and is what production actually runs
- LLMSelf-hosted, Unsloth-quantized (4-bit GGUF) model on owned hardware
- TTSSelf-hosted Kokoro / IndicParler-TTS — 23 Indian languages
- HardwareOne owned GPU server, sized to the seat count (see below)
- DataNot a single byte of audio or transcript leaves the institution's own network
- Go-liveSlower — hardware procurement + on-site setup before the first call
| Dimension | Cloud | On-Prem |
|---|---|---|
| One-time hardware | ₹0 | ~₹4–4.5L (RTX 4090 tower or equivalent, sized for a 10–12 seat closer floor) |
| Recurring AI compute | Cloud API / compute cost, scales with usage | ~₹0 — self-hosted inference |
| Telephony | Bundled into the platform fee — pooled/shared capacity | Billed directly to the institution, ~₹0.60–1.20/min via its own Plivo/Exotel account — raw telecom only, no AI processing leaves the site |
| WhatsApp Business Account | Institution's own Meta Business/BSP account either way — ~₹0.11–0.86/message, typically ₹1K–10K/mo | Same — WABA verification is entity-specific, so this is never bundled behind the platform fee in either mode |
| Data residency | Vani OS's managed cloud | Institution's own network, end to end |
| Setup time | Days | Weeks — hardware lead time + on-site install |
| Who maintains it | Vani OS | Institution's IT, with Vani OS supporting the software layer |
| Best fit | Fast pilot, no IT overhead, standard data-handling policy | Strict data-sovereignty requirements, or a multi-year deployment where owning the hardware pays for itself |