bluetoothctl-endpoint(1)

BLUETOOTHCTL-ENDPOINT(1) Linux System Administration BLUETOOTHCTL-ENDPOINT(1)

NAME

bluetoothctl-endpoint - 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

COPYRIGHT

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

November 2022 BlueZ