blob: 019e64e38452ba683928bebc3888964ad142dc9b [file]
=====================
bluetoothctl-endpoint
=====================
----------------
Endpoint Submenu
----------------
:Version: BlueZ
:Copyright: Free use of this software is granted under the terms of the GNU
Lesser General Public Licenses (LGPL).
:Date: November 2022
:Manual section: 1
:Manual group: Linux System Administration
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