bluetoothctl-endpoint(1) Linux System Administration bluetoothctl-endpoint(1)

# [Name](#Name)

bluetoothctl-endpoint - Endpoint Submenu

# [SYNOPSIS](#SYNOPSIS)

**bluetoothctl** \[--options] \[endpoint.commands]

This submenu manages media endpoints for audio streaming using the [**org.bluez.MediaEndpoint(5)**](/man/os/bluez/org.bluez.MediaEndpoint.5) and [**org.bluez.Media(5)**](/man/os/bluez/org.bluez.Media.5) interfaces.

# [Endpoint Commands](#Endpoint_Commands)

## [list](#list)

List available endpoints.

[**Usage**](#Usage)

**&gt; list \[local]**

**\[local]**

Only show locally registered endpoints (optional, shows all if omitted)

[**Example List all available endpoints (local and remote)**](#Example)

```
> list
```

[**Example List only locally registered endpoints**](#Example~2)

```
> list local
```

## [show](#show)

Endpoint information.

[**Usage**](#Usage~2)

**&gt; show \[endpoint]**

[**Uses**](#Uses)

[**org.bluez.MediaEndpoint(5)**](/man/os/bluez/org.bluez.MediaEndpoint.5) properties

**\[endpoint]**

Path to specific endpoint to display (optional, shows current selection if omitted)

[**Example Show information for currently selected endpoint**](#Example~3)

```
> show
```

[**Example Show local endpoint information**](#Example~4)

```
> show /local/endpoint/ep0
```

[**Example Show remote endpoint information**](#Example~5)

```
> show /org/bluez/hci0/dev_00_11_22_33_44_55/ep1
```

[**Example Show another local endpoint**](#Example~6)

```
> show /local/endpoint/ep1
```

## [register](#register)

Register Endpoint.

[**Usage**](#Usage~3)

**&gt; register &lt;UUID&gt; &lt;codec\[:company]&gt; \[capabilities...]**

[**Uses**](#Uses~2)

[**org.bluez.Media(5)**](/man/os/bluez/org.bluez.Media.5) method **RegisterEndpoint**

**&lt;UUID&gt;**

Bluetooth service UUID for the endpoint type (required)

**&lt;codec\[:company]&gt;**

Codec ID in hex format, optionally with company ID (required)

**\[capabilities...]**

Optional codec-specific capability data in hex format

[**Example LC3 BAP source**](#Example~7)

```
>endpoint.register 00002bcb-0000-1000-8000-00805f9b34fb 0x06
>Auto Accept (yes/no): y
>Max Transports (auto/value): a
>Locations: a
>Supported Context (value): 3
>Context (value): 3
>CIG (auto/value): a
>CIS (auto/value): a
```

[**Example LC3 BAP sink with extra capabilities**](#Example~8)

```
>endpoint.register 00002bc9-0000-1000-8000-00805f9b34fb 0x06 "0x03 0xe5 0x03 0x00 0x02 0xe6 0x07"
>Enter Metadata (value/no): n
>Auto Accept (yes/no): y
>Max Transports (auto/value): a
>Locations: a
>Supported Context (value): 3
>Context (value): 3
>CIG (auto/value): a
>CIS (auto/value): a
```

[**Example LC3 BAP Broadcast source**](#Example~9)

```
>endpoint.register 00001852-0000-1000-8000-00805f9b34fb 0x06
>Auto Accept (yes/no): y
>Max Transports (auto/value): a
>Locations: 3
>Supported Context (value): 1
```

[**Example LC3 BAP Broadcast sink**](#Example~10)

```
>endpoint.register 00001851-0000-1000-8000-00805f9b34fb 0x06
>Auto Accept (yes/no): y
>Max Transports (auto/value): a
>Locations: 3
>Supported Context (value): 1
```

Note:

If running the setup with an audio server that has LE Audio support (such as PipeWire) it will automatically register endpoints according to the configured roles. For more details about configuring a Broadcast Source with PipeWire check: &lt;https://gitlab.freedesktop.org/pipewire/pipewire/-/blob/master/doc/dox/config/pipewire-props.7.md&gt;

## [unregister](#unregister)

Unregister Endpoint.

[**Usage**](#Usage~4)

**&gt; unregister &lt;UUID/object&gt;**

[**Uses**](#Uses~3)

[**org.bluez.Media(5)**](/man/os/bluez/org.bluez.Media.5) method **UnregisterEndpoint**

**&lt;UUID/object&gt;**

Either the service UUID or the object path of the endpoint to unregister

[**Example Unregister LC3 source endpoint by UUID**](#Example~11)

```
> unregister 00002bcb-0000-1000-8000-00805f9b34fb
```

[**Example Unregister LC3 sink endpoint by UUID**](#Example~12)

```
> unregister 00002bc9-0000-1000-8000-00805f9b34fb
```

[**Example Unregister broadcast source endpoint by UUID**](#Example~13)

```
> unregister 00001852-0000-1000-8000-00805f9b34fb
```

[**Example Unregister broadcast sink endpoint by UUID**](#Example~14)

```
> unregister 00001851-0000-1000-8000-00805f9b34fb
```

[**Example Unregister endpoint by object path**](#Example~15)

```
> unregister /local/endpoint/ep0
```

[**Example Unregister another endpoint by object path**](#Example~16)

```
> unregister /local/endpoint/ep1
```

[**Example Unregister source endpoint by path**](#Example~17)

```
> unregister /local/endpoint/source0
```

[**Example Unregister sink endpoint by path**](#Example~18)

```
> unregister /local/endpoint/sink0
```

Note:

If the endpoint was registered by an audio server, it can't be unregistered from bluetoothctl. This must be done by the audio server as well.

## [config](#config)

Configure Endpoint.

[**Usage**](#Usage~5)

**&gt; config &lt;endpoint&gt; &lt;local endpoint&gt; \[preset]**

[**Uses**](#Uses~4)

[**org.bluez.MediaEndpoint(5)**](/man/os/bluez/org.bluez.MediaEndpoint.5) method **SetConfiguration**

**&lt;endpoint&gt;**

Path to the remote endpoint to configure

**&lt;local endpoint&gt;**

Path to the local endpoint to use for the configuration

**\[preset]**

Audio quality preset name (optional, auto-detected if omitted)

[**Example Configure remote endpoint with local endpoint (auto preset)**](#Example~19)

```
> config /org/bluez/hci0/dev_00_11_22_33_44_55/ep0 /local/endpoint/ep0
```

[**Example Configure LE Audio Unicast with BAP setting 32\_1\_1**](#Example~20)

```
> config /org/bluez/hci0/dev_00_11_22_33_44_55/ep0 /local/endpoint/ep0 32_1_1
```

[**Example Configure LE Audio Broadcast Source**](#Example~21)

```
> config /org/bluez/hci0/dev_00_11_22_33_44_55/bis0 /local/endpoint/broadcast0
```

Note:

If the endpoint was registered by an audio server, it can't be configured from bluetoothctl. This must be done by the audio server as well.

## [presets](#presets)

List available presets.

[**Usage**](#Usage~6)

**&gt; presets &lt;endpoint&gt;/&lt;UUID&gt; \[codec\[:company]] \[preset] \[codec config] \[metadata]**

**&lt;endpoint&gt;/&lt;UUID&gt;**

Either endpoint path or service UUID to work with presets

**\[codec\[:company]]**

Codec ID with optional company identifier

**\[preset]**

Preset name to display details or create custom preset

**\[codec config]**

Custom codec configuration data in hex format

**\[metadata]**

Additional metadata for the preset

[**Example using endpoint**](#Example~22)

```
>presets /local/endpoint/ep0 32_1_1
>presets /local/endpoint/ep0
Preset 32_1_1
Configuration.**>0: len 0x02 type 0x01
Configuration.Sampling Frequency: 32 Khz (0x06)
Configuration.**>1: len 0x02 type 0x02
Configuration.Frame Duration: 7.5 ms (0x00)
Configuration.**>2: len 0x03 type 0x04
Configuration.Frame Length: 60 (0x003c)
```

[**Example List all available presets for local endpoint**](#Example~23)

```
>presets /local/endpoint/ep0
```

[**Example List all presets for another endpoint**](#Example~24)

```
>presets /local/endpoint/ep1
```

[**Example using UUID**](#Example~25)

```
>presets 00002bc9-0000-1000-8000-00805f9b34fb 0x06 32_1_1
>presets 00002bc9-0000-1000-8000-00805f9b34fb 0x06
...
*32_1_1
```

[**Example List all LC3 sink presets**](#Example~26)

```
>presets 00002bc9-0000-1000-8000-00805f9b34fb 0x06
```

[**Example List all LC3 source presets**](#Example~27)

```
>presets 00002bcb-0000-1000-8000-00805f9b34fb 0x06
```

[**Example List all broadcast source presets**](#Example~28)

```
>presets 00001852-0000-1000-8000-00805f9b34fb 0x06
```

[**Example List all broadcast sink presets**](#Example~29)

```
>presets 00001851-0000-1000-8000-00805f9b34fb 0x06
```

[**Example Show details for 48kHz stereo preset**](#Example~30)

```
>presets 00002bc9-0000-1000-8000-00805f9b34fb 0x06 48_2_1
```

[**Example Show details for 24kHz mono high-quality preset**](#Example~31)

```
>presets 00002bc9-0000-1000-8000-00805f9b34fb 0x06 24_1_2
```

[**Example Show details for 16kHz mono preset**](#Example~32)

```
>presets 00002bc9-0000-1000-8000-00805f9b34fb 0x06 16_1_1
```

[**Example setting up LC3 custom preset**](#Example~33)

```
>presets 00002bc9-0000-1000-8000-00805f9b34fb 0x06 custom
>[Codec] Enter frequency (Khz): 48
>[Codec] Enter frame duration (ms): 10
>[Codec] Enter channel allocation: 3
>[Codec] Enter frame length: 100
>[QoS] Enter Target Latency (Low, Balance, High): Low
>[QoS] Enter SDU Interval (us): 1000
>[QoS] Enter Framing (Unframed, Framed): Unframed
>[QoS] Enter PHY (1M, 2M): 2M
>[QoS] Enter Max SDU: 200
>[QoS] Enter RTN: 3
>[QoS] Enter Max Transport Latency (ms): 10
>[QoS] Enter Presentation Delay (us): 20000
>presets 00002bc9-0000-1000-8000-00805f9b34fb 0x06
...
*custom
```

[**Example setting up LC3 custom preset with extra configuration**](#Example~34)

```
>presets 00002bc9-0000-1000-8000-00805f9b34fb 0x06 custom "0x03 0xe8 0x00 0x00 0x02 0xe9 0x00"
>[Codec] Enter frequency (Khz): 48
>[Codec] Enter frame duration (ms): 10
>[Codec] Enter channel allocation: 3
>[Codec] Enter frame length: 100
>[QoS] Enter Target Latency (Low, Balance, High): Low
>[QoS] Enter SDU Interval (us): 1000
>[QoS] Enter Framing (Unframed, Framed): Unframed
>[QoS] Enter PHY (1M, 2M): 2M
>[QoS] Enter Max SDU: 200
>[QoS] Enter RTN: 3
>[QoS] Enter Max Transport Latency (ms): 10
>[QoS] Enter Presentation Delay (us): 20000
>presets 00002bc9-0000-1000-8000-00805f9b34fb 0x06
...
*custom
```

# [RESOURCES](#RESOURCES)

&lt;http://www.bluez.org&gt;

# [REPORTING BUGS](#REPORTING_BUGS)

&lt;linux-bluetooth@vger.kernel.org&gt;

# [Copyright](#Copyright)

Free use of this software is granted under the terms of the GNU Lesser General Public Licenses (LGPL).

November 2022 BlueZ

---

Document: bluetoothctl-endpoint(1) from bluez 5.87-r3 (Chainguard OS)
Source: https://github.com/bluez/bluez
