---
title: "Voice overview"
description: "What Bird Voice is, how a call travels between your phone system and the telephone network over a SIP trunk, and where your calls show up."
canonical: "https://bird.com/docs/guides/voice/overview"
---

# Voice overview

Bird Voice lets you place calls to phone numbers and answer calls made to numbers you hold. Connect a phone system over SIP, place a browser call, or use the [sequence builder](/docs/guides/voice/sequence-builder) to run a saved call flow. Bird connects calls to the public telephone network, the PSTN.

The connection between your phone system and Bird is a **SIP trunk**. SIP (Session Initiation Protocol) sets up calls between phone systems. Bird gives your workspace a trunk address, which your phone system uses for outbound calls to the telephone network, and which Bird uses in reverse to deliver the calls arriving on your numbers.

You do not need a phone system to make the first call: the [phone](/docs/guides/voice/phone) in the dashboard places one straight from the browser, over one of your trunks.

You can also [build a sequence](/docs/guides/voice/sequence-builder) in the dashboard and [start it with the Create Call API](/docs/guides/voice/create-calls). The sequence handles prompts, keypad choices, and call routing after the recipient answers.

## How a call is placed

Your phone system sends a SIP `INVITE` to the trunk address to start a call. Bird checks the caller ID, destination country, limits, and wallet balance before contacting a carrier. If the call passes, Bird routes it and relays the audio. Each connection is a leg. When a leg ends, Bird writes its record under **Voice** > [**Legs**](https://bird.com/dashboard/w/voice/legs) and emits a `voice_call.ended` [event](/docs/guides/voice/events).

A call that fails a check is refused before a carrier is involved, and the specific reason goes onto the leg record. [Placing calls](/docs/guides/voice/placing-calls) covers what Bird reads off each call, and [Rejected calls](/docs/guides/voice/call-log#rejected-calls) lists every refusal reason and what to do about it.

## How an incoming call is answered

A number your workspace holds carries one answer at a time, set on the number itself or, when the number has none, taken from your workspace's default route: deliver the call to one of your SIP trunks, forward it to a number you have verified, run a published sequence, or reject it. The default route starts as reject, so a number nobody has configured turns callers away.

When a call arrives, Bird checks the account limits and the wallet the same way it does for a call you place, then acts on the number's answer and records what that answer was on the call. [Receiving calls](/docs/guides/voice/receiving-calls) covers pointing a number at an answer, what a forward presents to whoever picks up, and how to read a refusal.

## Before your first call

For calls through your own SIP equipment, prepare the following. API calls follow the [Create Call prerequisites](/docs/guides/voice/create-calls#before-you-start).

1. **[Create a SIP trunk](/docs/guides/voice/sip-trunks)**, turn outbound calling on, and allow callers on it: an IP range or an API key for your own equipment, session credentials for a browser or the CLI.
2. **[Choose an eligible caller ID](/docs/guides/voice/caller-ids)**: use a number your workspace holds through Bird, or register an external number and confirm it with a verification call.
3. **[Enable your destinations](/docs/guides/voice/destinations)**: turn on the countries you call.

[Place your first call](/docs/guides/voice/first-call) walks through all three requirements and ends with a real call.

Reading call records requires `voice:read`; placing calls requires `voice:write`. Managing trunks, number routes, caller IDs, and sequences uses `voice_management` permissions. Access to a page does not grant permission to change its settings or place a billable call.

## The Voice app in the dashboard

| Page                                                                | What it is for                                                                                                                                                        |
| ------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| [**Metrics**](https://bird.com/dashboard/w/voice/metrics)           | Call volume and answer rate over time, call outcomes, top countries, and the inbound and outbound split. See [Voice metrics](/docs/guides/voice/tracking-and-metrics) |
| [**Legs**](https://bird.com/dashboard/w/voice/legs)                 | Per-leg records for workspace calls, with usage totals for the month                                                                                                  |
| [**Calls**](https://bird.com/dashboard/w/voice/calls)               | Related legs and participants grouped into one call                                                                                                                   |
| [**Numbers**](https://bird.com/dashboard/w/voice/numbers)           | Every number the workspace can use for voice, and what each one does with an incoming call                                                                            |
| [**SIP Trunks**](https://bird.com/dashboard/w/voice/sip-trunks)     | Your trunks, their SIP domain, who may send traffic to them, and where inbound calls are delivered                                                                    |
| [**Destinations**](https://bird.com/dashboard/w/voice/destinations) | The countries your workspace may call, off by default                                                                                                                 |
| [**Sequences**](https://bird.com/dashboard/w/voice/sequences)       | [Build, preview, publish, and inspect call workflows](/docs/guides/voice/sequence-builder)                                                                            |
| [**Phone**](https://bird.com/dashboard/w/voice/phone)               | A floating phone that places calls from the browser, over one of your trunks                                                                                          |

## Visibility

A call can contain multiple legs. The log has one record per leg, whether it connected, rang out, or was refused. Forwarded or multi-party calls can therefore have several entries:

- **[Leg log](/docs/guides/voice/call-log)**: the per-leg view on the **Legs** page. Status, both numbers, the trunk the leg came in on, the SIP response it ended on, answer and end times, billable time, and cost. Filter it, then export the result as CSV.
- **[Voice events](/docs/guides/voice/events)**: `voice_call.initiated`, `voice_call.answered`, and `voice_call.ended` delivered to your own endpoint, so your systems learn about a call without polling.

The [API reference](/docs/api) lists the supported public HTTP contracts and SDK methods. The [CLI reference](/docs/cli/reference/voice) and [MCP tool reference](/docs/ai/mcp-server) describe their published operations. These surfaces can expose different operations; a dashboard action or CLI command does not by itself establish a public SDK method.

## Limits

Three ceilings apply to your calls, in both directions: how many you may have in progress at once, how many new calls per second, and what you may spend on voice in a UTC day. Each is set per organization, and the amounts depend on your plan. A call over any of them is refused at setup, and its record names which one, under [Rejected calls](/docs/guides/voice/call-log#rejected-calls).

The platform call duration cap is 3 hours. Bird hangs up both sides of a call that reaches that length, so plan a longer session as more than one call. A call that runs a [call sequence](/docs/guides/voice/call-sequences) counts from when Bird accepted or received it, so time spent waiting to dial and ringing uses part of the 3 hours. [Statuses](/docs/guides/voice/call-log#statuses) explains how such a call appears in the log.

The per-second ceiling is the `voice_call` policy in [Rate limits](/docs/guides/rate-limits#groups), which also explains how your effective limit is resolved and how to request more capacity.

## Next steps

| Page                                                   | What it covers                                                          |
| ------------------------------------------------------ | ----------------------------------------------------------------------- |
| [Place your first call](/docs/guides/voice/first-call) | From an empty workspace to a ringing phone                              |
| [Phone](/docs/guides/voice/phone)                      | Calling from the dashboard, what it needs, and what you can do mid-call |
| [SIP trunks](/docs/guides/voice/sip-trunks)            | Creating a trunk, its connection details, and controlling who may send  |
| [Placing calls](/docs/guides/voice/placing-calls)      | What Bird expects on the `INVITE`, and what a call costs                |
| [Receiving calls](/docs/guides/voice/receiving-calls)  | Pointing a number at a trunk or a forward, and what it records          |
| [Caller IDs](/docs/guides/voice/caller-ids)            | Registering a number and proving you own it with a verification call    |
| [Voice destinations](/docs/guides/voice/destinations)  | Turning on the countries you call, and what high risk means             |
| [Leg log](/docs/guides/voice/call-log)                 | Browsing, filtering, and exporting your leg records                     |
| [Voice events](/docs/guides/voice/events)              | The three call events and their payloads                                |
| [Troubleshooting](/docs/guides/voice/troubleshooting)  | Diagnosing a call that does not go through, from its symptom            |
| [Webhooks & events](/docs/guides/webhooks)             | Endpoint setup, signature verification, retries, and replay             |

## Related resources

- [What is a voice API?](/explained/voice/what-is-a-voice-api) (answer)
- [Voice](/voice-api) (product)

[Get an implementation brief](/learn/workspace?topic=voice)
