# Voice Agents Overview

> Two-way phone calls answered by your AI agent

Voice Agents turn your sender's AI agent into a phone agent. It answers inbound calls to your number and places outbound calls, holding a real conversation over the phone — not a recorded message.

The same agent you already use for SMS and WhatsApp powers the call: its provider, model, system prompt, tools, and knowledge bases all carry over. You enable voice on the agent, and Zavu handles the call.

> **Note:**
> Voice Agents is in Beta and available to every team. Placing and hanging up calls needs a live (`zv_live_`) API key.

## How It Works

Each call runs through Zavu's managed voice pipeline:

1. **Speech recognition** transcribes the caller in real time.
2. **Your agent** processes the transcript with its configured model, tools, and knowledge bases — exactly as it does for text channels.
3. **Speech synthesis** speaks the agent's reply back to the caller.

The pipeline supports **barge-in**: the caller can interrupt while the agent is speaking, and the agent stops to listen. The agent can also call your tools mid-conversation, transfer the call to a human, or end it.

You never manage telephony, audio streaming, or transcription. You configure the agent and call the API.

## Inbound and Outbound

| Direction | How it starts |
|-----------|---------------|
| **Inbound** | A caller dials a phone number assigned to a sender whose agent has voice enabled. Zavu answers automatically. |
| **Outbound** | You call `POST /v1/calls`. Zavu dials the recipient and the agent takes over once answered. |

Both directions use the same agent configuration and produce the same call record and transcript.

## Pricing

Voice calls are billed per minute of connected time plus telephony, deducted from your prepaid balance. A short-duration estimate is reserved when a call is placed, and you are charged for the actual duration when it ends. A hard duration limit (`maxCallDurationMinutes`, default 15) caps every call.

> **Info:**
> Keep a positive balance to place and receive calls. Inbound calls are answered only while the team balance is above zero.

## Calls and Transcripts

Every call is recorded as a `call` resource with its status, duration, cost, and a turn-by-turn transcript. Retrieve a single call to read its full transcript, or list calls to review recent activity.

Subscribe to the `call.*` webhook events to react to calls in real time — for example, to log completed conversations or trigger follow-ups. See [Webhooks](https://www.zavu.dev/docs/guides/voice-agents/webhooks).

## Next Steps

  - [Quickstart](https://www.zavu.dev/docs/guides/voice-agents/quickstart): Enable voice and place your first call
  - [Configuration](https://www.zavu.dev/docs/guides/voice-agents/configuration): Greeting, language, voicemail, transfer, and limits
  - [Webhooks](https://www.zavu.dev/docs/guides/voice-agents/webhooks): Receive call lifecycle events
  - [AI Agents](https://www.zavu.dev/docs/guides/ai-agents/overview): Configure the agent that answers calls
