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

# Build with an AI coding agent

> Install the Plivo SIP trunking skill so Claude Code, Cursor or Codex know how to connect LiveKit, ElevenLabs, Retell or Vapi to phone calls, check the setup is ready, and read a call that failed.

Plivo publishes a skill for AI coding agents such as Claude Code, Cursor and Codex. Install it once, and your agent knows how to connect an AI voice platform such as LiveKit, ElevenLabs, Retell or Vapi to phone calls over SIP trunking: which objects to create and in what order, what to check before the first call, and how to read a call that failed. A skill is a set of instructions your agent loads on its own when the task matches, so you keep working the way you already do.

## Install

<Info>
  The skill drives Plivo through the [Plivo CLI](https://github.com/plivo/plivo-cli). Install the CLI and log in first, or your agent falls back to raw API calls and loses the checks.
</Info>

```bash theme={null}
npx skills add https://www.plivo.com/docs --skill plivo-sip-trunking
```

That installs into every coding agent it finds. To pick one:

<CodeGroup>
  ```bash Claude Code theme={null}
  npx skills add https://www.plivo.com/docs --skill plivo-sip-trunking --agent claude-code
  ```

  ```bash Cursor theme={null}
  npx skills add https://www.plivo.com/docs --skill plivo-sip-trunking --agent cursor
  ```

  ```bash Codex theme={null}
  npx skills add https://www.plivo.com/docs --skill plivo-sip-trunking --agent codex
  ```
</CodeGroup>

Skills install at project scope by default, which puts them in your repository so teammates and cloud agents get the same setup. Add `--global` to install once for every project.

| Agent       | Where the skill lands                                                 |
| ----------- | --------------------------------------------------------------------- |
| Claude Code | `.claude/skills/` in the project, `~/.claude/skills/` with `--global` |
| Cursor      | `.agents/skills/` in the project, `~/.cursor/skills/` with `--global` |
| Codex       | `.agents/skills/` in the project, `~/.codex/skills/` with `--global`  |

Any tool that follows the [Agent Skills](https://agentskills.io) standard reads the same file.

### Read it before you install

The skill is a plain Markdown file. Open it yourself, or give the URL to your agent.

<Card title="plivo-sip-trunking" icon="file-code" href="https://www.plivo.com/docs/.well-known/agent-skills/plivo-sip-trunking/skill.md">
  The full skill file, published from this documentation site.
</Card>

Every Plivo skill is listed in the [skills index](https://www.plivo.com/docs/.well-known/agent-skills/index.json), with a SHA-256 digest so your agent can verify what it downloaded.

## What is in the skill

| Section               | What it holds                                                                                                                               |
| --------------------- | ------------------------------------------------------------------------------------------------------------------------------------------- |
| Readiness checks      | The number, the inbound trunk it is attached to, the origination URI, outbound authentication, and the steps only your platform can confirm |
| Setup in order        | Country prerequisites, number, inbound trunk and URI, attaching the number, outbound trunk and credentials, first call                      |
| Per-platform settings | The URI, port, transport and authentication method each platform expects                                                                    |
| Failure codes         | Plivo hangup causes and the platform's SIP response, mapped to who is at fault and what to change                                           |
| Transfers             | Handing a live call to a person with SIP REFER, and the rules on where it may point                                                         |
| India                 | KYC, media anchoring and consent for calls in India                                                                                         |
| Request bodies        | Ready-made JSON for every trunk, URI, credential and IP list, per platform                                                                  |

## What the agent does with it

1. **Checks readiness before writing code.** The number is rented and voice-enabled, India compliance is accepted, it is attached to an inbound trunk, the trunk is enabled, and the origination URI's host, port and transport match what your platform documents. Read-only: nothing on your account changes.
2. **Creates the objects in the right order,** with the values your platform expects, and names the steps you must do in the platform's own dashboard because Plivo cannot see them.
3. **Sets up both directions,** inbound so calls reach your agent and outbound so your agent can dial, using credentials or an IP list depending on the platform.
4. **Debugs from evidence.** It reads the Plivo call record and the platform's SIP response together, because they often disagree, and names who is at fault before suggesting a change. For example, ElevenLabs answering `404 Does not match any SIP Trunks` means the number is not imported on the platform.

## What it will not do

* It does not cover voice bots you host yourself over a WebSocket. Use [the Audio Streaming skill](/docs/voice-agents/audio-streaming/integration-guides/ai-coding-agent) for those.
* It does not cover connecting a PBX such as 3CX, FreePBX or Asterisk, and it does not cover carrier routing.
* It does not cover SMS, WhatsApp or the browser SDK.
* It changes nothing on your account while checking. Anything that spends money or changes routing is shown to you first.
* It does not invent CLI flags or SIP settings. Where the documentation does not answer a question, it says so instead of guessing.
* It cannot see inside your platform account. It asks you to confirm the steps that live there.

## Verify it is working

In the project where you installed it, ask your agent:

> Calls to my Plivo number are not reaching my ElevenLabs agent. What do I check?

You should get an ordered check of the number, the trunk it is attached to, the origination URI and its transport, then the import on the platform side, with the Plivo commands to run at each step. If you get generic SIP advice with no Plivo commands, the skill did not load.

## Keeping it current

The published skill tracks this documentation. Your local copy does not update itself:

```bash theme={null}
npx skills update plivo-sip-trunking
```

<Warning>
  An installed skill runs with your agent's permissions. Read the file before installing it, and treat a skill from a source you do not trust the way you would treat a shell script.
</Warning>

## Related

<CardGroup cols={2}>
  <Card title="Audio Streaming skill" href="/docs/voice-agents/audio-streaming/integration-guides/ai-coding-agent">
    For voice bots you host yourself over a WebSocket
  </Card>

  <Card title="Your first agent call" href="/docs/voice-agents/sip-trunking/getting-started/your-first-agent-call">
    The same setup done by hand, step by step
  </Card>

  <Card title="Transfer calls to humans" href="/docs/sip-trunking/concepts/sip-refer">
    SIP REFER, and where a transfer may point
  </Card>

  <Card title="Plivo CLI" href="https://github.com/plivo/plivo-cli">
    The command-line tool the skill drives
  </Card>
</CardGroup>
