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).