> For the complete documentation index, see [llms.txt](https://tools.docs.sendbird.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://tools.docs.sendbird.com/readme/calls/update-calls-relay-settings.md).

# Update Calls relay settings

Choose how your app's calls connect when callers' devices can't reach each other directly. In this tutorial, you change the Calls relay setting of a test app, check the saved value, and then restore the original value.

## Before you begin

* [Log in](/readme/quickstart.md#step-2-log-in) and [select an app](/readme/quickstart.md#step-3-select-your-app) by following the Quickstart. Use an app that doesn't serve real users.
* Check that Calls is turned on for the app and supported by its region and your contract. To turn it on, follow [Turn on Calls for an app](/readme/calls/turn-on-calls.md).
* Use a Sendbird account with permission to view and change Calls settings.

## Understand call relays

A call relay is a server that passes audio and video between callers when their devices can't connect directly, for example because of firewall or router restrictions.

Sendbird Calls uses two protocols to connect callers:

* **STUN** helps a device discover its public network address so the callers can connect directly.
* **TURN** relays the audio and video through a server when a direct connection isn't possible.

The `relay_method` setting on this page chooses how calls use these protocols:

<table><thead><tr><th width="139.609375">Value</th><th>What happens</th></tr></thead><tbody><tr><td><code>stun&#x26;turn</code></td><td>Calls first try to connect the callers directly. If a NAT or firewall blocks the direct connection, the call switches to a TURN server relay.</td></tr><tr><td><code>turn</code></td><td>Calls always relay audio and video through a TURN server instead of connecting directly.</td></tr></tbody></table>

The setting applies to direct calls. If direct-call cloud recording is on, you can't change it. For the connection process, see [Call relay protocol](https://sendbird.com/docs/calls/sdk/v1/react-native/ref/index.html#call-relay-protocol).

## Step 1. Check the app and note its current setting

```bash
sendbird --profile prod app get
sendbird --profile prod --json calls settings general get
```

Check that the App ID belongs to your test app. Note `result.general.relay_method`, which is `turn` or `stun&turn`. You need it to restore the setting later.

Steps 2 and 3 change the setting to `turn`. If it's already `turn`, use `'stun&turn'` in Steps 2 and 3 instead. Keep the quotes so the shell reads `stun&turn` as one value.

## Step 2. Preview the change

```bash
sendbird --profile prod --json calls settings general set --relay-method 'turn' --dry-run
```

The preview shows the target app and the requested value without changing anything. Continue when both are what you intend.

## Step 3. Apply the change

Run the command with `--yes` instead of `--dry-run`. The `--yes` option confirms the change:

```bash
sendbird --profile prod --json calls settings general set --relay-method 'turn' --yes
```

In the response, `result.readback.status` is `read_completed` when the CLI read the setting back after the change. If it's `unavailable` or the command times out, read the setting in Step 4 before you do anything else.

## Step 4. Read the setting again

```bash
sendbird --profile prod --json calls settings general get
```

The `result.general.relay_method` field shows the value you applied.

## Step 5. Restore the original setting

Repeat Steps 2–4 with the value you noted in Step 1.

Next, follow [Check Calls usage](/readme/calls/check-calls-usage.md), or see [Calls commands](/readme/commands/command-reference-1.md) for other settings.
