# `bird voice numbers update`

## Usage

```bash
bird voice numbers update <number-id> [flags]
```

## Description

Update what a voice number does with a call, or its label

--route replaces whatever was set before, because a number has exactly one answer at
a time: reject is where every number starts, trunk needs --trunk-id and a trunk with inbound
calling enabled, forward needs --forward-to and --forward-as. Only a number whose calls arrive
at Bird can carry a route; one from another carrier is routed by that carrier. Removing the
label needs an explicit null in the request body: no flag sends a null, and --body-file takes a
path or "-" for stdin, never inline JSON.

Build the request from flags, a JSON VoiceNumberUpdate body via --body-file ("-" reads
stdin), or both — a flag overrides the matching body field. Run --example to
print a ready-to-edit body, or --dry-run to print the resolved request without
sending it.

## Examples

```bash
# print the body shape (no credentials needed)
bird voice numbers update --example

# the body it prints:
```

```json
{
  "inbound_configuration": {
    "route": {
      "trunk_id": "spt_01krdgeqcxet5s7t44vh8rt9mg",
      "type": "trunk"
    }
  }
}
```

```bash
# deliver calls to a SIP trunk
bird voice numbers update vnu_123 --route trunk --trunk-id spt_456

# forward calls to a verified caller ID
bird voice numbers update vnu_123 --route forward --forward-to +14155551234 --forward-as dialed_number

# stop the number answering
bird voice numbers update vnu_123 --route reject

# remove the label (a null only reaches the wire on stdin)
echo '{"name": null}' | bird voice numbers update vnu_123 --body-file -
```

## Options

#### Inbound route

| Name           | Description                                                    |
| -------------- | -------------------------------------------------------------- |
| `--route`      | What a call arriving here does: reject, trunk, or forward      |
| `--trunk-id`   | With --route trunk: the SIP trunk that answers (spt\_…)        |
| `--forward-to` | With --route forward: the verified caller ID to call, in E.164 |
| `--forward-as` | With --route forward: dialed\_number or calling\_number        |

#### Request

| Name                | Description                                                  |
| ------------------- | ------------------------------------------------------------ |
| `--body-file`       | Read the JSON request body from this file; "-" reads stdin   |
| `--example`         | Print a complete example request body, then exit             |
| `--dry-run`         | Print the resolved request without sending it, then exit     |
| `--idempotency-key` | Deduplication key; a retry with the same key won't act twice |

#### Options

| Name                | Description                                      |
| ------------------- | ------------------------------------------------ |
| `--name`            | Your own label for this number                   |
| `--response-schema` | Print the fields this command returns, then exit |

## Related

| Name                                                                | Description                            |
| ------------------------------------------------------------------- | -------------------------------------- |
| [`bird voice numbers get`](/docs/cli/reference/voice-numbers-get)   | Get a voice number                     |
| [`bird voice numbers list`](/docs/cli/reference/voice-numbers-list) | List the numbers you can use for voice |