Docs

PSTN connectivity for AI voice agents in India

How an AI voice agent built on LiveKit or Pipecat gets onto the Indian public telephone network. The three layers, what carries the audio, where latency comes from, and what an Indian number can and cannot do once the agent is on the line.

Updated 6 September 2026

In short: a voice agent reaches the Indian public switched telephone network (PSTN) through three layers, the agent framework, a SIP bridge such as LiveKit SIP, and a SIP trunk with an Indian number, and RingTrunk is the third layer.

The three layers

LayerWhat it doesExample
AgentListens, thinks, speaks. Works with audio tracks in a room.Pipecat pipeline, LiveKit Agents worker
SIP bridgeTurns a phone call into a room participant and back.LiveKit SIP, on LiveKit Cloud or self-hosted
Trunk and numberConnects the bridge to the Indian phone network on a real Indian number.RingTrunk

The agent never speaks SIP. It joins a room. The bridge converts between the room's audio and the phone leg. The trunk is what makes the phone leg exist: the number people dial, the credentials your bridge authenticates with, and the rules the Indian network requires.

Inbound: someone calls the agent

The call arrives on your Indian number, RingTrunk sends an INVITE to your bridge's SIP address, the bridge creates a room and adds the caller as a participant, and your agent joins that room. On LiveKit the dispatch rule decides the room; a Pipecat worker joins on a webhook. See Connect LiveKit Cloud and Pipecat.

Outbound: the agent calls someone

Your code creates a SIP participant through the bridge, which authenticates to pstn.ringtrunk.com with the trunk id and password and places the call with one of your attached numbers as caller ID. The callee answers into the same room the agent is in.

Where latency comes from

Audio between the Indian network and your SIP bridge flows directly; RingTrunk does not relay media, so it adds no hop. What you control: keep the bridge and the agent close to each other (LiveKit Cloud offers an India SIP endpoint so rooms stay in Mumbai), and keep speech recognition and synthesis near the agent. The phone leg is G.711 A-law at 8 kHz; the bridge converts between that and the room.

What an Indian number can do once the agent is on the line

  • Receive calls from any Indian phone, and place calls to Indian mobile numbers, 10 digits starting 6, 7, 8 or 9.
  • Present only its own number as caller ID; anything else is rejected with 403 cli_not_allowed, an Indian regulatory requirement.
  • Not call landlines, short codes or international destinations; those return 403 destination_not_supported.
  • Carry as many concurrent calls as the channels bought with the number, summed per trunk.

What you need to start

A RingTrunk trunk with a number attached, and a SIP bridge. The documentation overview lists the connection details; the guides cover LiveKit Cloud, self-hosted LiveKit and Pipecat step by step.