# Place your first call

In this quickstart you place a real call with one command: `bird voice tools test-call` drives [baresip](https://github.com/baresip/baresip), a SIP client that runs in a terminal, through the same trunk, caller ID, and destination a phone system uses, so you keep all of it afterwards.

You need access to a phone number, a Linux or macOS terminal with the [Bird CLI](/docs/cli) signed in to your workspace, and baresip on your PATH:

```bash
brew install baresip          # macOS
sudo apt install baresip      # Debian, Ubuntu
```

## 1. Set up a SIP trunk

On the [**SIP Trunks**](https://bird.com/dashboard/w/voice/sip-trunks) page, choose **Create trunk** and name it.

A new trunk rejects every call until you allow a credential on it. Create an [API key](/docs/knowledge-base/account-security/api-keys) with the **voice** scope at **write** level, and copy the secret shown at creation. Add that key to the trunk under **Allowed API keys**: the trunk now accepts calls that authenticate with the key's secret.

## 2. Verify the number you will call from

Bird only lets you present numbers you own. On the [**Trust**](https://bird.com/dashboard/w/voice/trust) page, choose **Add caller ID** and enter a number you can answer in E.164 format, a leading `+` followed by the country code and national number (`+31201234567`). Bird calls it straight away and reads out a six-digit code. Enter the code.

The caller ID reads **Verified**, and you can present it as the calling number.

## 3. Turn on the country you are calling

On the [**Destinations**](https://bird.com/dashboard/w/voice/destinations) page, find the country of the number you are about to dial and switch its toggle on. Calls to countries you have not enabled are refused before a carrier is dialed.

## 4. Place the test call

The call authenticates with the API key you allowed in step 1. Hand the CLI its secret, then dial the number you verified:

```bash
export BIRD_VOICE_TEST_CALL_API_KEY=YOUR_API_KEY_SECRET
bird voice tools test-call +31612345678
```

The CLI picks your trunk and your verified caller ID (it prints both), writes a throwaway baresip account, and dials. Your phone rings, showing your own number as the caller, because that is the caller ID the call presented. Answer it and you have audio both ways; the call hangs up on its own after 30 seconds.

`--dry-run` prints the account file and the baresip command without dialing, a working starting point for [any other SIP client](/docs/guides/voice/sip-clients).

## 5. Read the record

```bash
bird voice list
```

The call you just placed is there, with its status, both numbers, and duration. For the whole record, open the [**Calls**](https://bird.com/dashboard/w/voice/calls) page: your call is the top row; select it to see when it was answered, its billable time, and what it cost.

That record is the thing to reach for whenever a later call does not behave. A refused call carries the reason on the record rather than in the SIP response, so the record is where the answer is.

## If the call does not go through

- **Nothing in the call log at all.** Bird turned the call away before a record existed, which means credentials: check that `BIRD_VOICE_TEST_CALL_API_KEY` is the key's secret and that the key is still allowed on the trunk.
- **The record says failed, with a rejection reason.** The reason names what to change. `destination_not_enabled` means step 3 did not cover the country you dialed; `caller_id_not_verified` means the number the call presented is not verified (the CLI picks your first verified one unless you pass `--caller-id`). [Rejected calls](/docs/guides/voice/call-log#rejected-calls) has the rest.
- **The call connects but the peak-audio summary shows zero in one direction.** That is the one-way-audio symptom: check your machine's microphone and speaker, and your network's NAT handling. `--raw` prints baresip's own output instead of the summary.

[Voice troubleshooting](/docs/guides/voice/troubleshooting) works through the same symptoms for any client.

## Next steps

| Page                                               | What it covers                                                      |
| -------------------------------------------------- | ------------------------------------------------------------------- |
| [SIP client setup](/docs/guides/voice/sip-clients) | The same setup for Asterisk, FreePBX, Zoiper, and five others       |
| [SIP trunks](/docs/guides/voice/sip-trunks)        | IP allow lists, rotating keys, and the Digest offer                 |
| [Placing calls](/docs/guides/voice/placing-calls)  | What Bird reads off each call, and what one costs                   |
| [Call log](/docs/guides/voice/call-log)            | Every field on a record, filtering, and CSV export                  |
| [Voice events](/docs/guides/voice/events)          | Getting call outcomes pushed to your own systems instead of polling |