DEV Community

Animesh Gupta
Animesh Gupta

Posted on

A Real Indian Business Phone Number You Can Program

What Boni Voice Is

Boni Voice is a product from Boni, an Indian technology company that also builds Bino and Bow Chat.

It gives you a real Indian business phone number — a +91 number that any caller in India can dial from a mobile or landline — and lets you decide by API where each incoming call goes.

That is the whole idea. One number. You control the routing.

It is currently in assisted beta. That means you apply, Boni's team reviews the use case, activates the number, and stays available for setup help. Self-serve access is planned but not open yet.

The Problem It Solves

Getting a real +91 number that you can route programmatically has been harder than it should be in India.

Most phone numbers tied to Indian carriers come with fixed plans — ring a desk phone, forward to a mobile, or use a call center product that does not expose an API. If you want to send the call somewhere else — a voice AI agent, your own webhook, a SIP endpoint, a customer support app — you hit a wall.

Developers building voice AI agents, customer intake flows, or support automation face this directly. The voice model, the conversation logic, the transcription pipeline — all of that can be built and tested. But routing a real Indian inbound call into that stack, cleanly and reliably, stays a gap.

Boni Voice is built to close that gap.

How It Works in Plain Words

When a caller dials your Boni Voice number, the call hits Boni's infrastructure. Boni does not just ring a phone. It checks your configured route and decides what to do with the call.

You set the route by API. You choose a primary destination and a fallback. Before anything else happens, the system checks whether you have a free call slot available. If you do, the call proceeds. If you are at your concurrency limit, the call is rejected cleanly — not dropped silently, but logged and counted so you can see the demand.

If your primary route fails — your webhook times out, your AI endpoint is unreachable, your team is unavailable — the fallback fires. You configure the fallback. It could forward to a mobile number, or end the call cleanly. The call does not sit in dead air waiting forever.

Every call produces events. You can subscribe to those events on a webhook endpoint of your choice. Events are signed so you can verify they came from Boni.

You can also act on a live call by API — end it, transfer it, redirect it — from your own backend while the call is in progress.

What You Can Do With It

Route to a decision webhook

Your server gets a POST when a call arrives. You look at the caller, the time, any CRM data you have, and return an action. Boni executes whatever you tell it: connect the call to your AI agent, forward it to a team member, reject it, or play a message.

This is useful when routing logic lives in your application and changes based on context.

Route to a hosted AI agent

Boni can connect the call directly to a hosted voice AI agent. You configure the agent profile — the greeting, instructions, language, escalation rules. When a call arrives, the agent answers. Boni handles the media connection. You do not need to manage SIP or media servers to use this path.

This is the easiest path if you want AI to handle calls without writing call-handling infrastructure yourself.

Route to your own AI or SIP endpoint

If you already have a voice AI provider you use, or your own telephony stack, you can route the call to a SIP URI you control. Your provider handles the call from there. Boni acts as the Indian inbound carrier layer.

This is useful for teams who have already chosen a provider and need the Indian number layer on top.

Route to a team inbox

If your team handles calls inside a shared customer-conversation inbox, Boni Voice can route inbound calls there — agents answer in the browser or on a mobile app, and call history, notes, and the conversation thread stay in one place. This path does not require you to use the API.

Forward to a phone number

The simplest route. Calls arrive on your Boni number and forward to a mobile or landline. Useful as a fallback, or as a starting point before adding smarter routing.

End the call cleanly

If you want to reject calls outside business hours, or for numbers that are not ready yet, you can set the fallback to hang up cleanly. The call is logged. No silent drops.

Limits and Controls

Boni Voice enforces limits per number and per account.

Concurrency limit. Only a set number of simultaneous call sessions are allowed at once. The starter plan supports one active customer call session at a time. If a second call arrives while one is already in progress, it is rejected and logged rather than trying to start a half-available session. Concurrency limits are configurable on higher plans.

Monthly usage quota. There is a monthly cap on inbound minutes and on call attempts. If the quota is approaching or exceeded, calls are rejected with a logged event — not silently dropped. You can see the usage in the panel and get notified before you hit the wall.

Maximum call duration. Each call session has a maximum duration. When the limit is reached, the call ends. This prevents runaway sessions when something on your side goes silent or stops responding.

API rate limit. API calls to the control plane are rate limited per minute to prevent abuse.

Fallback is required. Every route must have a fallback configured. If your primary route fails, the fallback fires. If no fallback is set, the call ends cleanly. The call never waits indefinitely.

These limits exist because Boni Voice runs on real Indian carrier infrastructure. Protecting that infrastructure protects every customer's call quality. Limits scale up for customers with real verified demand — but they start conservative.

What Gets Logged

Every call and every event goes into a call log you can query by API or read in the panel. Each log entry shows the call direction, caller number, called number, start time, duration, status, and route taken.

Named usage events are also written to a usage ledger, so every outcome is countable:

  • a call attempted event — a call arrived and was processed
  • a connected event — the call was answered and bridged
  • a billable minute event — rounded billable minutes
  • a rejected — at concurrency limit event — the concurrency slot was full
  • a rejected — quota exhausted event — the monthly quota would be exceeded
  • a recording minute event — rounded stored duration, if recording is enabled
  • a transcription minute event — rounded duration, if transcription is enabled

You can query usage totals by API. Rejected calls appear in the ledger alongside connected calls so you can see actual demand, not just answered calls.

Webhook delivery is also logged. If your event endpoint fails, you can see the failed delivery and replay it manually.

Who It Is For

Boni Voice is for people who need to receive calls on a real Indian number and make programmatic decisions about what happens to those calls.

Voice AI developers. If you have built or are building a voice agent and need a real +91 inbound number to route calls into it, this is the direct path. You can route to a hosted agent Boni manages or to your own AI endpoint by SIP.

Teams building customer intake flows. If your product collects inbound calls from Indian customers — leads, support requests, orders, appointments — and you want to handle those calls with automation or route them intelligently, Boni Voice gives you the routing layer without building it from scratch.

Developers using workflow-automation tools, custom webhooks, or their own backend. The control webhook route works with any HTTPS endpoint you control. You do not need to adopt a specific framework.

Teams that already run a shared customer inbox. If your team handles conversations in a shared inbox and wants to add an inbound phone line, calls can route into that inbox without a separate setup.

What It Is Not

Boni Voice is not an outbound calling product at the starter tier. You cannot use it to make outbound sales calls, run autodialers, send bulk SMS, or run telemarketing campaigns. Outbound capability requires a separate arrangement and compliance review.

It is not for high-concurrency call centers out of the box. The starter plan is designed for developers who need one clean, reliable inbound number, not for routing hundreds of simultaneous calls.

It is not a generic cheap DID. KYC and use-case review are required. Numbers are approved individually, and only use cases that fit the fair-use policy are activated.

How to Get Started

Because Boni Voice is in assisted beta, the path is not a self-serve signup with an instant number. It looks like this:

  1. You contact Boni through the WhatsApp intake link or the product page.
  2. Boni's team asks about your use case — what you are building, where calls will go, expected volume.
  3. If the use case fits, Boni reserves a number for you, completes KYC, and sets up the initial route.
  4. You receive an API key, the number ID, and a webhook signing secret.
  5. You configure your event webhook and primary route by API.
  6. Boni's team validates the first real inbound call with you before marking the number live.

The first thing to have ready is a clear description of what the calls are for and where you want them to go. A fallback phone number is also required before activation.

Pricing for the starter plan is currently Rs 500 per month per approved number. Inbound calling is included under fair use. That means normal business inbound volume — Boni will review and contact you if usage patterns fall outside what the starter tier is designed for, rather than cutting calls silently.

If you are building voice-first products for Indian users and need a number that you can actually program, Boni Voice is worth looking at closely. The product is honest about what it is — an assisted beta with real carrier infrastructure and real limits — and the routing model is designed for developers, not for legacy call center tooling. Start at Boni Voice to read the product details and reach the intake.

Top comments (0)