bluetoothctl-endpoint - Man Page

Endpoint Submenu

Synopsis

bluetoothctl [--options] [endpoint.commands]

This submenu manages media endpoints for audio streaming using the org.bluez.MediaEndpoint(5) and org.bluez.Media(5) interfaces.

Endpoint Commands

list

List available endpoints.

Usage

> list [local]

[local]

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

Example List all available endpoints (local and remote)
> list
Example List only locally registered endpoints
> list local

show

Endpoint information.

Usage

> show [endpoint]

Uses

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
> show
Example Show local endpoint information
> show /local/endpoint/ep0
Example Show remote endpoint information
> show /org/bluez/hci0/dev_00_11_22_33_44_55/ep1
Example Show another local endpoint
> show /local/endpoint/ep1

register

Register Endpoint.

Usage

> register <UUID> <codec[:company]> [capabilities...]

Uses

org.bluez.Media(5) method RegisterEndpoint

<UUID>

Bluetooth service UUID for the endpoint type (required)

<codec[:company]>

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

[capabilities...]

Optional codec-specific capability data in hex format

Example LC3 BAP source
>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
>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
>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
>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: <https://gitlab.freedesktop.org/pipewire/pipewire/-/blob/master/doc/dox/config/pipewire-props.7.md>

unregister

Unregister Endpoint.

Usage

> unregister <UUID/object>

Uses

org.bluez.Media(5) method UnregisterEndpoint

<UUID/object>

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

Example Unregister LC3 source endpoint by UUID
> unregister 00002bcb-0000-1000-8000-00805f9b34fb
Example Unregister LC3 sink endpoint by UUID
> unregister 00002bc9-0000-1000-8000-00805f9b34fb
Example Unregister broadcast source endpoint by UUID
> unregister 00001852-0000-1000-8000-00805f9b34fb
Example Unregister broadcast sink endpoint by UUID
> unregister 00001851-0000-1000-8000-00805f9b34fb
Example Unregister endpoint by object path
> unregister /local/endpoint/ep0
Example Unregister another endpoint by object path
> unregister /local/endpoint/ep1
Example Unregister source endpoint by path
> unregister /local/endpoint/source0
Example Unregister sink endpoint by path
> 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

Configure Endpoint.

Usage

> config <endpoint> <local endpoint> [preset]

Uses

org.bluez.MediaEndpoint(5) method SetConfiguration

<endpoint>

Path to the remote endpoint to configure

<local endpoint>

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)
> 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
> config /org/bluez/hci0/dev_00_11_22_33_44_55/ep0 /local/endpoint/ep0 32_1_1
Example Configure LE Audio Broadcast Source
> 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

List available presets.

Usage

> presets <endpoint>/<UUID> [codec[:company]] [preset] [codec config] [metadata]

<endpoint>/<UUID>

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
>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
>presets /local/endpoint/ep0
Example List all presets for another endpoint
>presets /local/endpoint/ep1
Example using UUID
>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
>presets 00002bc9-0000-1000-8000-00805f9b34fb 0x06
Example List all LC3 source presets
>presets 00002bcb-0000-1000-8000-00805f9b34fb 0x06
Example List all broadcast source presets
>presets 00001852-0000-1000-8000-00805f9b34fb 0x06
Example List all broadcast sink presets
>presets 00001851-0000-1000-8000-00805f9b34fb 0x06
Example Show details for 48kHz stereo preset
>presets 00002bc9-0000-1000-8000-00805f9b34fb 0x06 48_2_1
Example Show details for 24kHz mono high-quality preset
>presets 00002bc9-0000-1000-8000-00805f9b34fb 0x06 24_1_2
Example Show details for 16kHz mono preset
>presets 00002bc9-0000-1000-8000-00805f9b34fb 0x06 16_1_1
Example setting up LC3 custom preset
>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
>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

<http://www.bluez.org>

Reporting Bugs

<linux-bluetooth@vger.kernel.org>

Referenced By

bluetoothctl(1), org.bluez.Media(5), org.bluez.MediaEndpoint(5).

November 2022 BlueZ Linux System Administration