cd /news/developer-tools/how-to-give-your-livekit-vapi-or-ret… · home topics developer-tools article
[ARTICLE · art-58376] src=dev.to ↗ pub= topic=developer-tools verified=true sentiment=· neutral

How to Give Your LiveKit, Vapi, or Retell Voice Agent a Real Indian (+91) Phone Number

A developer explains how to give voice AI agents built on LiveKit, Vapi, or Retell a legitimate Indian (+91) phone number. The post details the technical challenges of Indian telecom infrastructure, including regulatory compliance and lack of developer-friendly tooling, and outlines the ideal DID routing flow for inbound calls to voice AI agents.

read4 min views1 publishedJul 14, 2026

You have a working voice AI agent — maybe built on LiveKit Agents, Vapi, or Retell — and you need it to be reachable on a real Indian phone number. Not a virtual number from a gray-market SIM reseller. Not a US Twilio number with unreliable India routing. A legitimate +91 business inbound number that your users can call from any Indian mobile or landline.

Here is what the standard path looks like:

Most developers building voice AI side projects or SaaS products hit a wall at step 2. And even teams that get through provisioning discover that Indian telecom providers have almost zero developer-friendly tooling: no webhook endpoints, no call logs via API, no programmable routing rules.

This article explains the underlying telecom concept (DID routing), how it should connect to a voice AI agent, and what a developer-first approach looks like.

DID stands for Direct Inward Dialing. It is a phone number leased from a telecom carrier that, instead of connecting to a physical phone line, routes inbound calls over SIP (Session Initiation Protocol) to a destination you configure — a SIP URI, a media server, a WebRTC gateway, or an HTTP webhook.

The routing chain for a typical voice AI agent looks like this:

Caller dials +91 XXXXX XXXXX
         |
   Telecom PSTN (Jio, Airtel, BSNL)
         |
   ITSP / DID provider  <-- this is the layer most teams lack
         |
   SIP trunk or webhook  <-- where your code takes over
         |
   Your voice agent (LiveKit, Vapi, Retell, Asterisk, etc.)
         |
   AI model + TTS/STT

The ITSP layer is the piece that turns a PSTN call into something a developer can interact with. A good DID provider exposes:

Most Indian telecom providers expose none of this. They provision the number and give you a SIP trunk — full stop. The webhook layer, the fallback logic, and the call logs are your problem.

If you have built voice agents targeting the US market, you are used to Twilio, Vonage, or Plivo — providers that are developer-first from day one with REST APIs, webhooks, and SDKs.

India has structural differences:

Regulatory layer. Inbound business numbers in India require TRAI-compliant provisioning. The operator must verify the entity behind the number. This is not optional — it is what makes the number legitimate and ensures it works across all Indian carriers.

PSTN interconnect complexity. India has fragmented carrier interconnects. A number that works on Jio may not route cleanly from BSNL or a rural landline without proper carrier agreements on the ITSP side.

No developer-first incumbents. The large Indian telecom operators (Airtel Business, Jio Enterprise) are built for enterprise customers with long contract cycles, not for a developer who wants to spin up a number over a weekend.

The result is that most voice-AI developers building for the Indian market either skip inbound entirely, use SMS fallback, or cobble together offshore numbers with unreliable India routing.

The ideal flow for a voice AI agent on an Indian number:

1. Number provisioned and verified (handled by provider)
2. Inbound call arrives at DID
3. Provider fires webhook POST to your URL:
   { "call_id": "...", "from": "+919...", "to": "+9198...", "timestamp": "..." }
4. Your webhook responds with routing instruction:
   { "action": "connect", "destination": "sip:agent@your-livekit-host" }
   -- OR --
   { "action": "connect", "destination": "wss://your-retell-agent" }
5. Media is bridged; your agent handles the conversation
6. Call ends; CDR record available via API

With LiveKit specifically, you would run the LiveKit SIP component pointed at the DID provider's outbound SIP trunk, and use the webhook to trigger agent dispatch. With Vapi or Retell, you configure the inbound SIP URI in their dashboard and the DID provider terminates to it.

The critical insight: the DID provider only needs to answer the call and deliver it to your SIP/webhook endpoint. Your agent framework handles everything after that. The hard part is finding an Indian provider that actually exposes that clean hand-off.

Boni Voice API (boni.one/apis/voice) is built exactly for this gap. It provides dedicated Indian (+91) inbound business numbers with developer-oriented routing.

What the API surface covers:

Pricing starts at Rs 500/month per number — within range for a side project or early-stage SaaS. Onboarding is assisted beta; you get in via WhatsApp (link on the product pages above) so a human helps you through initial setup and KYC, which keeps the provisioning compliant without requiring you to negotiate directly with a telecom operator.

The KYC requirement is not optional — it is the same requirement that makes the number legitimate. Boni handles that layer on your behalf.

If you are on LiveKit, the dedicated connector page at boni.one/apis/voice/livekit covers the specific integration steps.

Getting a legitimate Indian inbound number for a voice agent is genuinely hard today. The problem is not technical — it is the opaque telecom layer sitting between PSTN and your code. Once that layer exposes a clean webhook or SIP hand-off, the rest is standard agent development. That is the gap Boni Voice API is built to close.

── more in #developer-tools 4 stories · sorted by recency
── more on @livekit 3 stories trending now
sponsored brought to you by zahid.host 4,200+ EU-deployed projects
reading about agents? ship yours in a single git push.

Run your AI side-project on zahid.host

EU-based hosting, git-push deploys, automatic HTTPS, no cold starts. Free tier with a custom domain — perfect for shipping the agent you just read about.

$git push zahid main
Live at https://your-agent.zahid.host
Get free account → Pricing
from €0/mo · no card required
LIVE [news/how-to-give-your-liv…] indexed:0 read:4min 2026-07-14 ·