> ## Documentation Index
> Fetch the complete documentation index at: https://docs.kataven.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Inbound calls — wire a phone number to an AI agent

> Connect a Twilio, Plivo, or Vobiz number to a Kataven AI voice agent so inbound calls route to the right agent. Carrier credentials, agent pinning, and a test call walkthrough.

Three steps:

1. Register provider credentials (see [Telephony](/concepts/telephony)).
2. Register the phone number with `agent_id` set to the agent that
   should handle inbound.
3. Carrier-side, point the number's webhook at Kataven's gateway.

The carrier-side webhook URL depends on your provider — see your
provider's docs for "voice webhook URL." Point it at:

```
https://api.kataven.ai/twilio/voice    # for Twilio
https://api.kataven.ai/plivo/voice     # for Plivo
https://api.kataven.ai/vobiz/voice     # for Vobiz
```

That's the entire wiring. When the number rings, the gateway looks
up which agent it's pinned to and brings up the conversation.

## Reassign at runtime

Pinning a number to a different agent is one PATCH:

```python theme={null}
client.telephony.update_number(number_id, agent_id="<new agent>")
```

Effective on the next inbound call — no carrier reconfiguration.

## Detach (free the number)

```python theme={null}
client.telephony.update_number(number_id, agent_id=None)
```

Inbound calls to a detached number return a busy signal until you
re-attach.
