org.bluez.AdvertisementMonitor

title: org.bluez.AdvertisementMonitor(5)

text:
# org.bluez.AdvertisementMonitor(5)

## NAME
org.bluez.AdvertisementMonitor - BlueZ D-Bus AdvertisementMonitor API documentation

## DESCRIPTION
This API allows an client to specify a job of monitoring advertisements by registering the root of hierarchy and then exposing advertisement monitors under the root with filtering conditions, thresholds of RSSI and timers of RSSI thresholds.

Once a monitoring job is activated by bluetoothd(8), the client can expect to get notified on the targeted advertisements no matter if there is an ongoing discovery session (see StartDiscovery() in org.bluez.Adapter(5)).

## INTERFACE
Service

org.bluez

Interface

org.bluez.AdvertisementMonitor1 [experimental]

Object path

freely definable

Used by

bluetoothctl-monitor(1)

### void Release() [noreply]
This gets called as a signal for a client to perform clean-up when:

- Monitor cannot be activated after it was exposed

- Monitor has been deactivated.

### void Activate() [noreply]
After a monitor was exposed, this gets called as a signal for client to get acknowledged when a monitor has been activated, so the client can expect to receive calls on DeviceFound() or DeviceLost().

### void DeviceFound(object device) [noreply]
This gets called to notify the client of finding the targeted device.

Once receiving the call, the client should start to monitor the corresponding device to retrieve the changes on RSSI and advertisement content.

### void DeviceLost(object device) [noreply]
This gets called to notify the client of losing the targeted device.

Once receiving this call, the client should stop monitoring the corresponding device.

### string Type [read-only]
The type of the monitor. See SupportedMonitorTypes in org.bluez.AdvertisementMonitorManager(5) for the available options.

### int16 RSSILowThreshold [read-only, optional]
Used in conjunction with RSSILowTimeout to determine whether a device becomes out-of-range.

Valid range is -127 to 20 (dBm), while 127 indicates unset.

### int16 RSSIHighThreshold [read-only, optional]
Used in conjunction with RSSIHighTimeout to determine whether a device becomes in-range.

Valid range is -127 to 20 (dBm), while 127 indicates unset.

### uint16 RSSILowTimeout [read-only, optional]
The time it takes to consider a device as out-of-range. If this many seconds elapses without receiving any signal at least as strong as RSSILowThreshold, a currently in-range device will be considered as out-of-range (lost). Valid range is 1 to 300 (seconds), while 0 indicates unset.

### uint16 RSSIHighTimeout [read-only, optional]
The time it takes to consider a device as in-range. If this many seconds elapses while we continuously receive signals at least as strong as RSSIHighThreshold, a currently out-of-range device will be considered as in-range (found).

Valid range is 1 to 300 (seconds), while 0 indicates unset.

### uint16 RSSISamplingPeriod [read-only, optional]
Grouping rules on how to propagate the received advertisement packets to the client.

Possible values:

0

All advertisement packets from in-range devices would be propagated.

255

Only the first advertisement packet of in-range devices would be propagated. If the device becomes lost, then the first packet when it is found again will also be propagated.

1 to 254

Advertisement packets would be grouped into 100ms * N time period. Packets in the same group will only be reported once, with the RSSI value being averaged out. Currently this is unimplemented in user space, so the value is only used to be forwarded to the kernel.

### array{(uint8, uint8, array{byte})} Patterns [read-only, optional]
If the Type property is set to "or_patterns", then this property must exist and have at least one entry in the array.

The structure of a pattern contains the following:

uint8 start_position

The index in an AD data field where the search should start. The beginning of an AD data field is index 0.

uint8 AD_data_type

See https://www.bluetooth.com/specifications/assigned-numbers/ generic-access-profile/ for the possible allowed value.

array{byte} content_of_pattern

This is the value of the pattern. The maximum length of the bytes is 31.


org.bluez.AdvertisementMonitorManager

package: libbluez-devel

text:
# org.bluez.AdvertisementMonitorManager(5)

## NAME
org.bluez.AdvertisementMonitorManager - BlueZ D-Bus AdvertisementMonitorManager API documentation

## INTERFACE
Service

org.bluez

Interface

org.bluez.AdvertisementMonitorManager1 [experimental]

Object path

/org/bluez/{hci0,hci1,...}

Used by

bluetoothctl-monitor(1)

### void RegisterMonitor(object application)
Registers the root path of a hierarchy of advertisement monitors implementing org.bluez.AdvertisementMonitor(5).

The application object path together with the D-Bus ystem bus connection ID define the identification of the application registering advertisement monitors.

Once a root path is registered by a client via this method, the client can freely expose/unexpose advertisement monitors without re-registering the root path again.

After use, the client should call UnregisterMonitor() method to invalidate the advertisement monitors.

Possible errors:

org.bluez.Error.InvalidArguments

org.bluez.Error.AlreadyExists

org.bluez.Error.Failed

Examples:

bluetoothctl

[monitor] > add-or-pattern <start_pos> <ad_type> <content>

### void UnregisterMonitor(object application)
Unregisters a hierarchy of advertisement monitors that has been previously registered with RegisterMonitor(). The object path parameter must match the same value that has been used on registration.

Upon unregistration, the advertisement monitor(s) should expect to receive Release() method as the signal that the advertisement monitor(s) has been deactivated.

Possible errors:

org.bluez.Error.InvalidArguments

org.bluez.Error.DoesNotExist

Examples:

bluetoothctl

[monitor] > remove-pattern <monitor-id/all>

### array{string} SupportedMonitorTypes [read-only]
This lists the supported types of advertisement monitors. An application should check this before instantiate and expose an object of org.bluez.AdvertisementMonitor(5).

Possible values:

"or_patterns"

Patterns with logic OR applied. With this type, property Patterns must exist and has at least one pattern.

### array{string} SupportedFeatures [read-only]
This lists the features of advertisement monitoring supported by bluetoothd(8).

Possible values:

"controller-patterns"

If the controller is capable of performing advertisement monitoring by patterns, bluetoothd(8) would offload the patterns to the controller to reduce power consumption.


org.bluez.Agent

title: org.bluez.Agent(5)

summary: BlueZ D-Bus Agent API documentation

text:
# org.bluez.Agent(5)

## NAME
org.bluez.Agent - BlueZ D-Bus Agent API documentation

## INTERFACE
Service

unique name

Interface

org.bluez.Agent1

Object path

freely definable

### void Release()
This method gets called when bluetoothd(8) unregisters the agent.

An agent can use it to do cleanup tasks. There is no need to unregister the agent, because when this method gets called it has already been unregistered.

### string RequestPinCode(object device)
This method gets called when bluetoothd(8) needs to get the passkey for an authentication.

The return value should be a string of 1-16 characters length. The string can be alphanumeric.

Possible errors:

org.bluez.Error.Rejected

org.bluez.Error.Canceled

### void DisplayPinCode(object device, string pincode)
This method gets called when bluetoothd(8) needs to display a pincode for an authentication.

An empty reply should be returned. When the pincode needs no longer to be displayed, the Cancel method of the agent will be called.

This is used during the pairing process of keyboards that don't support Bluetooth 2.1 Secure Simple Pairing, in contrast to DisplayPasskey which is used for those that do.

This method will only ever be called once since older keyboards do not support typing notification.

Note that the PIN will always be a 6-digit number, zero-padded to 6 digits. This is for harmony with the later specification.

Possible errors:

org.bluez.Error.Rejected

org.bluez.Error.Canceled

### uint32 RequestPasskey(object device)
This method gets called when bluetoothd(8) needs to get the passkey for an authentication.

The return value should be a numeric value between 0-999999.

Possible errors:

org.bluez.Error.Rejected

org.bluez.Error.Canceled

### void DisplayPasskey(object device, uint32 passkey, uint16 entered)
This method gets called when bluetoothd(8) needs to display a passkey for an authentication.

The entered parameter indicates the number of already typed keys on the remote side.

An empty reply should be returned. When the passkey needs no longer to be displayed, the Cancel method of the agent will be called.

During the pairing process this method might be called multiple times to update the entered value.

Note that the passkey will always be a 6-digit number, so the display should be zero-padded at the start if the value contains less than 6 digits.

### void RequestConfirmation(object device, uint32 passkey)
This method gets called when bluetoothd(8) needs to confirm a passkey for an authentication.

To confirm the value it should return an empty reply or an error in case the passkey is invalid.

Note that the passkey will always be a 6-digit number, so the display should be zero-padded at the start if the value contains less than 6 digits.

Possible errors:

org.bluez.Error.Rejected

org.bluez.Error.Canceled

### void RequestAuthorization(object device)
This method gets called to request the user to authorize an incoming pairing attempt which would in other circumstances trigger the just-works model, or when the user plugged in a device that implements cable pairing. In the latter case, the device would not be connected to the adapter via Bluetooth yet.

Possible errors:

org.bluez.Error.Rejected

org.bluez.Error.Canceled

### void AuthorizeService(object device, string uuid)
This method gets called when bluetoothd(8) needs to authorize a connection/service request.

Possible errors:

org.bluez.Error.Rejected

org.bluez.Error.Canceled

### void Cancel()
This method gets called to indicate that the agent request failed before a reply was returned.


org.bluez.AgentManager

title: org.bluez.AgentManager(5)

text:
# org.bluez.AgentManager(5)

## NAME
org.bluez.AgentManager - BlueZ D-Bus AgentManager API documentation

## INTERFACE
Service

org.bluez

Interface

org.bluez.AgentManager1

Object path

/org/bluez

Used by

bluetoothctl(1)

### void RegisterAgent(object agent, string capability)
Registers pairing agent.

The object path defines the path of the agent that will be called when user input is needed and must implement org.bluez.Agent(5) interface.

Every application can register its own agent and for all actions triggered by that application its agent is used.

It is not required by an application to register an agent. If an application does chooses to not register an agent, the default agent is used. This is on most cases a good idea. Only application like a pairing wizard should register their own agent.

An application can only register one agent. Multiple agents per application is not supported.

Possible capability values:

""

Fallback to "KeyboardDisplay".

"DisplayOnly"

"DisplayYesNo"

"KeyboardOnly"

"NoInputNoOutput"

"KeyboardDisplay"

Possible errors:

org.bluez.Error.InvalidArguments

org.bluez.Error.AlreadyExists

Examples:

bluetoothctl

> agent <on/off/auto/capability>

### void UnregisterAgent(object agent)
Unregisters an agent that has been previously registered using RegisterAgent. The object path parameter must match the same value that has been used on registration.

Possible errors:

org.bluez.Error.DoesNotExist

### void RequestDefaultAgent(object agent)
Requests to make the application agent the default agent. The application is required to register an agent.

Special permission might be required to become the default agent.

Possible errors:

org.bluez.Error.DoesNotExist

Examples:

bluetoothctl

> default-agent


org.bluez.Battery

title: org.bluez.Battery(5)

summary: BlueZ D-Bus Battery API documentation

text:
# org.bluez.Battery(5)

## NAME
org.bluez.Battery - BlueZ D-Bus Battery API documentation

## INTERFACE
Service

org.bluez

Interface

org.bluez.Battery1

Object path

[variable prefix]/{hci0,hci1,...}/dev_{BDADDR}

### byte Percentage [readonly]
The percentage of battery left as an unsigned 8-bit integer.

### string Source [readonly, optional]
Describes where the battery information comes from.

This property is informational only and may be useful for debugging purposes.

Providers from org.bluez.BatteryProvider(5) may make use of this property to indicate where the battery report comes from (e.g. "HFP 1.7", "HID", or the profile UUID).


org.bluez.BatteryProvider

title: org.bluez.BatteryProvider(5)

text:
# org.bluez.BatteryProvider(5)

## NAME
org.bluez.BatteryProvider - BlueZ D-Bus BatteryProvider API documentation

## INTERFACE
Service

<client D-Bus address>

Interface

org.bluez.BatteryProvider1

Object path

{provider_root}/{unique battery object path}

### Properties
Objects provided on this interface contain the same properties as org.bluez.Battery(5) interface. Additionally, this interface needs to have the Device property indicating the object path of the device this battery provides.

### object Device [readonly]
The object path of the device that has this battery.


org.bluez.BatteryProviderManager

title: org.bluez.BatteryProviderManager(5)

text:
# org.bluez.BatteryProviderManager(5)

## NAME
org.bluez.BatteryProviderManager - BlueZ D-Bus BatteryProviderManager API documentation

## DESCRIPTION
A battery provider starts by registering itself as a battery provider with the RegisterBatteryProvider() method passing an object path as the provider ID. Then, it can start exposing org.bluez.BatteryProvider(5) objects having the path starting with the given provider ID. It can also remove objects at any time. The objects and their properties exposed by battery providers will be reflected on org.bluez.Battery(5) interface.

bluetoothd(8) will stop monitoring these exposed and removed objects after UnregisterBatteryProvider is called for that provider ID.

## INTERFACE
Service

org.bluez

Interface

org.bluez.BatteryProviderManager1

Object path

/org/bluez/{hci0,hci1,...}

### void RegisterBatteryProvider(object provider)
Registers a battery provider. A registered battery provider can then expose objects with org.bluez.BatteryProvider(5) interface.

### void UnregisterBatteryProvider(object provider)
Unregisters a battery provider previously registered with RegisterBatteryProvider(). After unregistration, the org.bluez.BatteryProvider(5) objects provided by this client are ignored by bluetoothd(8).


org.bluez.Bearer.BREDR

title: org.bluez.Bearer.BREDR(5)

text:
# org.bluez.Bearer.BREDR(5)

## NAME
org.bluez.Bearer.BREDR - BlueZ D-Bus Bearer BREDR API documentation

## INTERFACE
Service

org.bluez

Interface

org.bluez.Bearer.BREDR1

Object path

[variable prefix]/{hci0,hci1,...}/dev_{BDADDR}

### void Connect() [experimental]
Connects all BREDR profiles the remote device supports that can be connected to and have been flagged as auto-connectable. If only subset of profiles is already connected it will try to connect currently disconnected ones.

If at least one profile was connected successfully this method will indicate success.

Possible errors:

org.bluez.Error.NotReady

org.bluez.Error.Failed

org.bluez.Error.InProgress

org.bluez.Error.AlreadyConnected

### void Disconnect() [experimental]
Disconnects all connected profiles and then terminates low-level ACL connection.

ACL connection will be terminated even if some profiles were not disconnected properly e.g. due to misbehaving device.

This method can be also used to cancel a preceding Connect call before a reply to it has been received.

For non-trusted devices connected calling this method will disable incoming connections until Connect method is called again.

Possible errors:

org.bluez.Error.NotConnected

### void Disconnected(string reason, string message) [experimental]
This signal is launched when a device is disconnected, with the reason of the disconnection.

This could be used by client application, depending on internal policy, to try to reconnect to the device in case of timeout or unknown disconnection, or to try to connect to another device.

Possible reasons:

org.bluez.Reason.Unknown

org.bluez.Reason.Timeout

Connection timeout. The link supervision timeout has expired for a connection or the synchronization timeout has expired for a broadcast.

org.bluez.Reason.Local

Connection terminated by local host. The local device terminated the connection, terminated synchronization with a broadcaster, or terminated broadcasting packets.

org.bluez.Reason.Remote

Connection terminated by remote host. This disconnection can be due to:

- the user on the remote device either terminated the connection or stopped broadcasting packets,

- the remote device terminated the connection because of low resources,

- the remote device terminated the connection because the device is about to power off.

org.bluez.Reason.Authentication

Connection terminated due to an authentication failure.

org.bluez.Reason.Suspend

Connection terminated by local host for suspend.

### object Adapter [readonly, experimental]
The object path of the adapter the set belongs to.

### boolean Paired [readonly, experimental]
Indicates if the remote device is paired to BREDR bearer.

Paired means the pairing process where devices exchange the information to establish an encrypted connection has been completed.

### boolean Bonded [readonly, experimental]
Indicates if the remote device is bonded to BREDR bearer.

Bonded means the information exchanged on pairing process has been stored and will be persisted.

### boolean Connected [readonly, experimental]
Indicates if the remote device is currently connected to BREDR bearer.

A PropertiesChanged signal indicate changes to this status.


org.bluez.Bearer.LE

title: org.bluez.Bearer.LE(5)

summary: BlueZ D-Bus Bearer LE API documentation

text:
# org.bluez.Bearer.LE(5)

## NAME
org.bluez.Bearer.LE - BlueZ D-Bus Bearer LE API documentation

## INTERFACE
Service

org.bluez

Interface

org.bluez.Bearer.LE1

Object path

[variable prefix]/{hci0,hci1,...}/dev_{BDADDR}

### void Connect() [experimental]
Connects all LE profiles the remote device supports that can be connected to and have been flagged as auto-connectable. If only subset of profiles is already connected it will try to connect currently disconnected ones.

If at least one profile was connected successfully this method will indicate success.

Possible errors:

org.bluez.Error.NotReady

org.bluez.Error.Failed

org.bluez.Error.InProgress

org.bluez.Error.AlreadyConnected

### void Disconnect() [experimental]
Disconnects all connected profiles and then terminates low-level ACL-LE connection.

ACL-LE connection will be terminated even if some profiles were not disconnected properly e.g. due to misbehaving device.

This method can be also used to cancel a preceding Connect call before a reply to it has been received.

For non-trusted devices connected calling this method will disable incoming connections until Connect method is called again.

Possible errors:

org.bluez.Error.NotConnected

### void Disconnected(string reason, string message) [experimental]
This signal is launched when a device is disconnected, with the reason of the disconnection.

This could be used by client application, depending on internal policy, to try to reconnect to the device in case of timeout or unknown disconnection, or to try to connect to another device.

Possible reasons:

org.bluez.Reason.Unknown

org.bluez.Reason.Timeout

Connection timeout. The link supervision timeout has expired for a connection or the synchronization timeout has expired for a broadcast.

org.bluez.Reason.Local

Connection terminated by local host. The local device terminated the connection, terminated synchronization with a broadcaster, or terminated broadcasting packets.

org.bluez.Reason.Remote

Connection terminated by remote host. This disconnection can be due to:

- the user on the remote device either terminated the connection or stopped broadcasting packets,

- the remote device terminated the connection because of low resources,

- the remote device terminated the connection because the device is about to power off.

org.bluez.Reason.Authentication

Connection terminated due to an authentication failure.

org.bluez.Reason.Suspend

Connection terminated by local host for suspend.

### object Adapter [readonly, experimental]
The object path of the adapter the set belongs to.

### boolean Paired [readonly, experimental]
Indicates if the remote device is paired to LE bearer.

Paired means the pairing process where devices exchange the information to establish an encrypted connection has been completed.

### boolean Bonded [readonly, experimental]
Indicates if the remote device is bonded to LE bearer.

Bonded means the information exchanged on pairing process has been stored and will be persisted.

### boolean Connected [readonly, experimental]
Indicates if the remote device is currently connected to LE bearer.

A PropertiesChanged signal indicate changes to this status.


org.bluez.Call

title: org.bluez.Call(5)

text:
# org.bluez.Call(5)

## NAME
org.bluez.Call1 - BlueZ D-Bus Telephony Call API documentation

## INTERFACE
Service

org.bluez

Interface

org.bluez.Call1 [experimental]

Object path

[variable prefix]/{hci0,hci1,...}/dev_{BDADDR}/telephony#/call#

Used by

bluetoothctl-telephony(1)

### void Answer()
Answers an incoming call. Only valid if the state of the call is "incoming".

Possible Errors: :org.bluez.Error.InvalidState :org.bluez.Error.Failed

Examples:

bluetoothctl

> telephony.answer <call>

### void Hangup()
Hangs up the call.

For an incoming call, the call is hung up using ATH or equivalent. For a waiting call, the remote party is notified by using the User Determined User Busy (UDUB) condition. This is generally implemented using CHLD=0.

Please note that the GSM specification does not allow the release of a held call when a waiting call exists. This is because 27.007 allows CHLD=1X to operate only on active calls. Hence a held call cannot be hung up without affecting the state of the incoming call (e.g. using other CHLD alternatives). Most manufacturers provide vendor extensions that do allow the state of the held call to be modified using CHLD=1X or equivalent. It should be noted that Bluetooth HFP specifies the classic 27.007 behavior and does not allow CHLD=1X to modify the state of held calls.

Based on the discussion above, it should also be noted that releasing a particular party of a held multiparty call might not be possible on some implementations. It is recommended for the applications to structure their UI accordingly.

NOTE: Releasing active calls does not produce side-effects. That is the state of held or waiting calls is not affected. As an exception, in the case where a single active call and a waiting call are present, releasing the active call will result in the waiting call transitioning to the 'incoming' state.

Possible Errors: :org.bluez.Error.InvalidState :org.bluez.Error.Failed

Examples:

bluetoothctl

> telephony.hangup <call>

### string LineIdentification [readonly]
Contains the Line Identification information returned by the network, if present. For incoming calls this is effectively the CLIP. For outgoing calls this attribute will hold the dialed number, or the COLP if received by the audio gateway.

Please note that COLP may be different from the dialed number. A special "withheld" value means the remote party refused to provide caller ID and the "override category" option was not provisioned for the current subscriber.

### string IncomingLine [readonly, optional]
Contains the Called Line Identification information returned by the network. This is only available for incoming calls and indicates the local subscriber number which was dialed by the remote party. This is useful for subscribers which have a multiple line service with their network provider and would like to know what line the call is coming in on.

### string Name [readonly]
Contains the Name Identification information returned by the network, if present.

### boolean Multiparty [readonly]
Contains the indication if the call is part of a multiparty call or not.

Notifications if a call becomes part or leaves a multiparty call are sent.

### string State [readonly]
Contains the state of the current call.

Possible values:

"active"

The call is active

"held"

The call is on hold

"dialing"

The call is being dialed

"alerting"

The remote party is being alerted

"incoming"

Incoming call in progress

"waiting"

Call is waiting

"response_and_hold"

Incoming call has been set on hold

"disconnected"

No further use of this object is allowed, it will be destroyed shortly


org.bluez.Device

title: org.bluez.Device(5)

summary: BlueZ D-Bus Device API documentation

text:
# org.bluez.Device(5)

## NAME
org.bluez.Device - BlueZ D-Bus Device API documentation

## INTERFACE
Service

org.bluez

Interface

org.bluez.Device1

Object path

[variable prefix]/{hci0,hci1,...}/dev_{BDADDR}

Used by

bluetoothctl(1)

### void Connect()
Connects all profiles the remote device supports that can be connected to and have been flagged as auto-connectable. If only subset of profiles is already connected it will try to connect currently disconnected ones.

If at least one profile was connected successfully this method will indicate success.

For dual-mode devices only one bearer is connected at time, the conditions are in the following order:

1.

Connect the disconnected bearer if already connected.

2.

Connect first the bonded bearer. If no bearers are bonded or both are skip and check latest seen bearer.

3.

Connect last used bearer, in case the timestamps are the same BR/EDR takes precedence, or in case PreferredBearer has been set to a specific bearer then that is used instead.

Possible errors:

org.bluez.Error.NotReady

org.bluez.Error.Failed

org.bluez.Error.InProgress

org.bluez.Error.AlreadyConnected

org.bluez.Error.BREDR.ProfileUnavailable

Examples:

bluetoothctl

> connect <dev> [uuid]

### void Disconnect()
Disconnects all connected profiles and then terminates low-level ACL connection.

ACL connection will be terminated even if some profiles were not disconnected properly e.g. due to misbehaving device.

This method can be also used to cancel a preceding Connect call before a reply to it has been received.

For non-trusted devices connected over LE bearer calling this method will disable incoming connections until Connect method is called again.

Possible errors:

org.bluez.Error.NotConnected

Examples:

bluetoothctl

> disconnect [dev] [uuid]

### void ConnectProfile(string uuid)
Connects a specific profile of this device. The UUID provided is the remote service UUID for the profile.

Possible errors:

org.bluez.Error.Failed

org.bluez.Error.InProgress

org.bluez.Error.InvalidArguments

org.bluez.Error.NotAvailable

org.bluez.Error.NotReady

### void DisconnectProfile(string uuid)
Disconnects a specific profile of this device. The profile needs to be registered client profile.

There is no connection tracking for a profile, so as long as the profile is registered this will always succeed.

Possible errors:

org.bluez.Error.Failed

org.bluez.Error.InProgress

org.bluez.Error.InvalidArguments

org.bluez.Error.NotSupported

### void Pair()
Connects to the remote device and initiate pairing procedure then proceed with service discovery.

If the application has registered its own agent, then that specific agent will be used. Otherwise it will use the default agent.

Only for applications like a pairing wizard it would make sense to have its own agent. In almost all other cases the default agent will handle this just fine.

In case there is no application agent and also no default agent present, this method will fail.

Possible errors:

org.bluez.Error.InvalidArguments

org.bluez.Error.Failed

org.bluez.Error.AlreadyExists

org.bluez.Error.AuthenticationCanceled

org.bluez.Error.AuthenticationFailed

org.bluez.Error.AuthenticationRejected

org.bluez.Error.AuthenticationTimeout

org.bluez.Error.ConnectionAttemptFailed

Examples:

bluetoothctl

> pair [dev]

### void CancelPairing()
Cancels a pairing operation initiated by the Pair method.

Possible errors:

org.bluez.Error.DoesNotExist

org.bluez.Error.Failed

Examples:

bluetoothctl

> cancel-pairing [dev]

### array{array{byte}} GetServiceRecords() [experimental]
Returns all currently known BR/EDR service records for the device. Each individual byte array represents a raw SDP record, as defined by the Bluetooth Service Discovery Protocol specification.

This method is intended to be only used by compatibility layers like Wine, that need to provide access to raw SDP records to support foreign Bluetooth APIs.

General applications should instead use the Profile API for services-related functionality.

Possible errors:

org.bluez.Error.Failed

org.bluez.Error.NotReady

org.bluez.Error.NotConnected

org.bluez.Error.DoesNotExist

### void Disconnected(string reason, string message)
This signal is launched when a device is disconnected, with the reason of the disconnection.

This could be used by client application, depending on internal policy, to try to reconnect to the device in case of timeout or unknown disconnection, or to try to connect to another device.

Possible reasons:

org.bluez.Reason.Unknown

org.bluez.Reason.Timeout

Connection timeout. The link supervision timeout has expired for a connection or the synchronization timeout has expired for a broadcast.

org.bluez.Reason.Local

Connection terminated by local host. The local device terminated the connection, terminated synchronization with a broadcaster, or terminated broadcasting packets.

org.bluez.Reason.Remote

Connection terminated by remote host. This disconnection can be due to:

- the user on the remote device either terminated the connection or stopped broadcasting packets,

- the remote device terminated the connection because of low resources,

- the remote device terminated the connection because the device is about to power off.

org.bluez.Reason.Authentication

Connection terminated due to an authentication failure.

org.bluez.Reason.Suspend

Connection terminated by local host for suspend.

### string Address [readonly]
The Bluetooth device address of the remote device.

### string AddressType [readonly]
The Bluetooth device Address Type. For dual-mode and BR/EDR only devices this defaults to "public". Single mode LE devices may have either value.

If remote device uses privacy than before pairing this represents address type used for connection and Identity Address after pairing.

Possible values:

"public"

Public address

"random"

Random address

### string Name [readonly, optional]
The Bluetooth remote name.

This value is only present for completeness. It is better to always use the Alias property when displaying the devices name.

If the Alias property is unset, it will reflect this value which makes it more convenient.

### string Icon [readonly, optional]
Proposed icon name according to the freedesktop.org icon naming specification.

### uint32 Class [readonly, optional]
The Bluetooth class of device of the remote device.

### uint16 Appearance [readonly, optional]
External appearance of device, as found on GAP service.

### array{string} UUIDs [readonly, optional]
List of 128-bit UUIDs that represents the available remote services.

### boolean Paired [readonly]
Indicates if the remote device is paired. Paired means the pairing process where devices exchange the information to establish an encrypted connection has been completed.

### boolean Bonded [readonly]
Indicates if the remote device is bonded. Bonded means the information exchanged on pairing process has been stored and will be persisted.

### boolean Connected [readonly]
Indicates if the remote device is currently connected.

A PropertiesChanged signal indicate changes to this status.

### boolean Trusted [readwrite]
Indicates if the remote is seen as trusted.

This setting can be changed by the application.

Examples:

bluetoothctl

> trust [dev]

bluetoothctl

> untrust [dev]

### boolean Blocked [readwrite]
If set to true any incoming connections from the device will be immediately rejected.

Any device drivers will also be removed and no new ones will be probed as long as the device is blocked.

Examples:

bluetoothctl

> block [dev]

bluetoothctl

> unblock [dev]

### boolean WakeAllowed [readwrite]
If set to true this device will be allowed to wake the host from system suspend.

Examples:

bluetoothctl

> wake [dev] [on/off]

### string Alias [readwrite]
The name alias for the remote device. The alias can be used to have a different friendly name for the remote device.

In case no alias is set, it will return the remote device name. Setting an empty string as alias will convert it back to the remote device name.

When resetting the alias with an empty string, the property will default back to the remote name.

Examples:

bluetoothctl

> set-alias <alias>

### object Adapter [readonly]
The object path of the adapter the device belongs to.

### boolean LegacyPairing [readonly]
Set to true if the device only supports the pre-2.1 pairing mechanism.

This property is useful during device discovery to anticipate whether legacy or simple pairing will occur if pairing is initiated.

Note that this property can exhibit false-positives in the case of Bluetooth 2.1 (or newer) devices that have disabled Extended Inquiry Response support.

### boolean CablePairing [readonly]
Set to true if the device was cable paired and it doesn't support the canonical bonding with encryption, e.g. the Sixaxis gamepad.

If true, BlueZ will establish a connection without enforcing encryption.

### string Modalias [readonly, optional]
Remote Device ID information in modalias format used by the kernel and udev.

### int16 RSSI [readonly, optional]
Received Signal Strength Indicator of the remote device (inquiry or advertising).

### int16 TxPower [readonly, optional]
Advertised transmitted power level (inquiry or advertising).

### dict ManufacturerData [readonly, optional]
Manufacturer specific advertisement data. Keys are 16 bits Manufacturer ID followed by its byte array value.

### dict ServiceData [readonly, optional]
Service advertisement data. Keys are the UUIDs in string format followed by its byte array value.

### bool ServicesResolved [readonly]
Indicate whether or not service discovery has been resolved.

### array{byte} AdvertisingFlags [readonly]
The Advertising Data Flags of the remote device.

### dict AdvertisingData [readonly]
The Advertising Data of the remote device. Keys are 1 byte AD Type followed by data as byte array.

Note: Only types considered safe to be handled by application are exposed.

Possible values:

<type>

<byte array>

Example:

<Transport Discovery> <Organization Flags...> 0x26 0x01 0x01...

### array{object, dict} Sets [readonly, experimental]
The object paths of the sets the device belongs to followed by a dictionary which can contain the following:

byte Rank

Rank of the device in the Set.

### string PreferredBearer [readwrite, optional, experimental]
Indicate the preferred bearer when initiating a connection, only available for dual-mode devices.

When changing from "bredr" to "le" the device will be removed from the 'auto-connect' list so it won't automatically be connected when advertising.

Note: Changes only take effect when the device is disconnected.

Possible values:

"last-used"

Connect to last used bearer first. Default.

"bredr"

Connect to BR/EDR first.

"le"

Connect to LE first.

"last-seen"

Connect to last seen bearer first.

Examples:

bluetoothctl

> bearer <dev> [last-seen/bredr/le]


org.bluez.DeviceSet

title: org.bluez.DeviceSet(5)

summary: BlueZ D-Bus DeviceSet API documentation

text:
# org.bluez.DeviceSet(5)

## NAME
org.bluez.DeviceSet - BlueZ D-Bus DeviceSet API documentation

## INTERFACE
Service

org.bluez

Interface

org.bluez.DeviceSet1

Object path

[variable prefix]/{hci0,hci1,...}/set_{sirk}

### void Connect() [experimental]
Connects all devices members of the set, each member is connected in sequence as they were added/loaded following the same procedure as described in Device1.Connect.

Possible errors:

org.bluez.Error.NotReady

org.bluez.Error.Failed

org.bluez.Error.InProgress

org.bluez.Error.AlreadyConnected

### void Disconnect() [experimental]
Disconnects all devices members of the set, each member is disconnected in sequence as they were connected following the same procedure as described in Device1.Disconnect.

Possible errors:

org.bluez.Error.NotConnected

### object Adapter [readonly, experimental]
The object path of the adapter the set belongs to.

### bool AutoConnect [read-write, experimental]
Indicates if the devices members of the set shall be automatically connected once any of its members is connected.

### array(object) Devices [ready-only, experimental]
List of devices objects that are members of the set.

### byte Size [read-only, experimental]
Set members size.


org.bluez.GattCharacteristic

title: org.bluez.GattCharacteristic(5)

text:
# org.bluez.GattCharacteristic(5)

## NAME
org.bluez.GattCharacteristic - BlueZ D-Bus GattCharacteristic API documentation

## DESCRIPTION
GATT local/server and remote/client characteristic attribute representation share the same high-level D-Bus API.

Local/Server refers to GATT based characteristics exported by a plugin or an external application.

Remote/Client refers to GATT characteristics exported by the peer.

## INTERFACE

### Client
Service

org.bluez

Interface

org.bluez.GattCharacteristic1

Object path

[variable prefix]/{hci0,hci1,...}/dev_{BDADDR}/service#/char#

Used by

bluetoothctl-gatt(1)

### Server
Service

unique name

Interface

org.bluez.GattCharacteristic1

Object path

freely definable

### array{byte} ReadValue(dict options)
Issues a request to read the value of the characteristic and returns the value if the operation was successful.

Possible options:

uint16 offset

Read start offset in bytes.

uint16 mtu (server only)

Exchange MTU in bytes.

object device (server only)

Device object.

string link (server only)

Link type. Possible values:

"BR/EDR"

"LE"

Possible Errors:

org.bluez.Error.Failed

Possible values: string 0x80 - 0x9f

org.bluez.Error.InProgress

org.bluez.Error.NotPermitted

org.bluez.Error.NotAuthorized

org.bluez.Error.InvalidOffset

org.bluez.Error.NotSupported

Examples:

bluetoothctl

> gatt.read [offset]

### void WriteValue(array{byte} value, dict options)
Issues a request to write the value of the characteristic.

Possible options:

uint16 offset

Write start offset in bytes.

string type

Possible values:

"command"

Use Write without response procedure.

"request"

Use Write with response procedure.

"reliable"

Use Reliable Write procedure.

uint16 mtu

Exchanged MTU (Server only).

object device

Device path (Server only).

string link

Link type (Server only). Possible values:

"BR/EDR"

"LE"

boolean prepare-authorize

True if prepare authorization request.

Possible Errors:

org.bluez.Error.Failed

Possible values: string 0x80 - 0x9f

org.bluez.Error.InProgress

org.bluez.Error.NotPermitted

org.bluez.Error.InvalidValueLength

org.bluez.Error.NotAuthorized

org.bluez.Error.NotSupported

org.bluez.Error.ImproperlyConfigured

Examples:

bluetoothctl

> gatt.write <data=xx xx ...> [offset] [type]

### fd, uint16 AcquireWrite(dict options) [optional]
Acquire file descriptor and MTU for writing. Only sockets are supported. Usage of WriteValue will be locked causing it to return NotPermitted error.

For server the MTU returned shall be equal or smaller than the negotiated MTU.

For client it only works with characteristic that has WriteAcquired property which relies on write-without-response Flag.

To release the lock the client shall close the file descriptor, a HUP is generated in case the device is disconnected.

Note: the MTU can only be negotiated once and is symmetric therefore this method may be delayed in order to have the exchange MTU completed, because of that the file descriptor is closed during reconnections as the MTU has to be renegotiated.

Possible options:

object device

Object Device (Server only).

uint16 mtu

Exchanged MTU (Server only).

string link

Link type (Server only). Possible values:

"BR/EDR"

"LE"

Possible Errors:

org.bluez.Error.Failed

org.bluez.Error.NotSupported

Examples:

bluetoothctl

> gatt.acquire-write

### fd, uint16 AcquireNotify(dict options) [optional]
Acquire file descriptor and MTU for notify. Only sockets are support.

Usage of StartNotify will be locked causing it to return org.bluez.Error.NotPermitted.

For server the MTU returned shall be equal or smaller than the negotiated MTU.

Only works with characteristic that has NotifyAcquired property which relies on presence of "notify" or "indicate" Flag and no other client have called StartNotify().

Notification are enabled during this procedure so StartNotify() shall not be called, any notification will be dispatched via file descriptor therefore the Value property is not affected during the time where notify has been acquired.

To release the lock the client shall close the file descriptor, a HUP is generated in case the device is disconnected.

As a client if indication procedure is used the confirmation is generated automatically once received, for a server if the file descriptor is writable (POLLOUT) then upon receiving a confirmation from the client one byte (0x01) is written to the file descriptor.

Note: the MTU can only be negotiated once and is symmetric therefore this method may be delayed in order to have the exchange MTU completed, because of that the file descriptor is closed during reconnections as the MTU has to be renegotiated.

Possible options:

object device

Object Device (Server only).

uint16 mtu

Exchanged MTU (Server only).

string link

Link type (Server only). Possible values:

"BR/EDR"

"LE"

Possible Errors:

org.bluez.Error.Failed

org.bluez.Error.NotSupported

org.bluez.Error.NotPermitted

Examples:

bluetoothctl

> gatt.acquire-notify

### void StartNotify()
Starts a notification session from this characteristic if it supports value notifications or indications.

Possible Errors:

org.bluez.Error.Failed

org.bluez.Error.NotPermitted

org.bluez.Error.InProgress

org.bluez.Error.NotConnected

org.bluez.Error.NotSupported

Examples:

bluetoothctl

> gatt.notify <on/off>

### void StopNotify()
Stops or cancel session previously created by StartNotify().

Note that notifications from a characteristic are shared between sessions thus calling StopNotify will release a single session.

Possible Errors:

org.bluez.Error.Failed

### void Confirm() [noreply, optional] (Server only)
Confirms value was received.

Possible Errors:

org.bluez.Error.Failed

### string UUID [read-only]
128-bit characteristic UUID.

### object Service [read-only]
Object path of the GATT service the characteristic belongs to.

### array{byte} Value [read-only, optional]
The cached value of the characteristic. This property gets updated only after a successful read request and when a notification or indication is received, upon which a PropertiesChanged signal will be emitted.

### boolean WriteAcquired [read-only, optional]
True, if this characteristic has been acquired by any client using AcquireWrite.

For client properties is omitted in case 'write-without-response' flag is not set.

For server the presence of this property indicates that AcquireWrite is supported.

### boolean NotifyAcquired [read-only, optional]
True, if this characteristic has been acquired by any client using AcquireNotify.

For client this properties is omitted in case 'notify' flag is not set.

For server the presence of this property indicates that AcquireNotify is supported.

### boolean Notifying [read-only, optional]
True, if notifications or indications on this characteristic are currently enabled.

### array{string} Flags [read-only]
Defines how the characteristic value can be used. See Core spec "Table 3.5: Characteristic Properties bit field", and "Table 3.8: Characteristic Extended Properties bit field".

The "x-notify" and "x-indicate" flags restrict access to notifications and indications by imposing write restrictions on a characteristic's client characteristic configuration descriptor.

Possible values:

"broadcast"

"read"

"write-without-response"

"write"

"notify"

"indicate"

"authenticated-signed-writes"

"extended-properties"

"reliable-write"

"writable-auxiliaries"

"encrypt-read"

"encrypt-write"

"encrypt-notify" (Server only)

"encrypt-indicate" (Server only)

"encrypt-authenticated-read"

"encrypt-authenticated-write"

"encrypt-authenticated-notify" (Server only)

"encrypt-authenticated-indicate" (Server only)

"secure-read" (Server only)

"secure-write" (Server only)

"secure-notify" (Server only)

"secure-indicate" (Server only)

"authorize"

### uint16 Handle [read-only] (Client Only)
Characteristic handle.

### uint16 Handle [read-write, optional] (Server Only)
Characteristic handle. When available in the server it would attempt to use to allocate into the database which may fail, to auto allocate the value 0x0000 shall be used which will cause the allocated handle to be set once registered.

### uint16 MTU [read-only]
Characteristic MTU, this is valid both for ReadValue() and WriteValue() but either method can use long procedures when supported.


org.bluez.GattDescriptor

title: org.bluez.GattDescriptor(5)

text:
# org.bluez.GattDescriptor(5)

## NAME
org.bluez.GattDescriptor - BlueZ D-Bus GattDescriptor API documentation

## DESCRIPTION
GATT local/server and remote/client descriptor attribute representation share the same high-level D-Bus API.

Local/Server refers to GATT based descriptors exported by a plugin or an external application.

Remote/Client refers to GATT descriptors exported by the peer.

## INTERFACE

### Client
Service

org.bluez

Interface

org.bluez.GattDescriptor1

Object path

[variable prefix]/{hci0,hci1,...}/dev_{BDADDR}/service#/char#/descriptor#

Used by

bluetoothctl-gatt(1)

### Server
Service

unique name

Interface

org.bluez.GattDescriptor1

Object path

freely definable

### array{byte} ReadValue(dict flags)
Issues a request to read the value of the descriptor and returns the value if the operation was successful.

Possible options:

uint16 offset

Read start offset in bytes.

object device (server only)

Device object.

string link

Link type (Server only). Possible values:

"BR/EDR"

"LE"

Possible Errors:

org.bluez.Error.Failed

org.bluez.Error.InProgress

org.bluez.Error.NotPermitted

org.bluez.Error.NotAuthorized

org.bluez.Error.NotSupported

Examples:

bluetoothctl

[gatt] > read [offset]

### void WriteValue(array{byte} value, dict flags)
Issues a request to write the value of the descriptor.

Possible flags:

uint16 offset

Write start offset in bytes.

uint16 mtu

Exchanged MTU (Server only).

object device

Device path (Server only).

string link

Link type (Server only). Possible values:

"BR/EDR"

"LE"

boolean prepare-authorize

True if prepare authorization request.

Possible Errors:

org.bluez.Error.Failed

org.bluez.Error.InProgress

org.bluez.Error.NotPermitted

org.bluez.Error.InvalidValueLength

org.bluez.Error.NotAuthorized

org.bluez.Error.NotSupported

org.bluez.Error.ImproperlyConfigured

Examples:

bluetoothctl

[gatt] > write <data=xx ...> [offset] [type]

### string UUID [read-only]
128-bit descriptor UUID.

### object Characteristic [read-only]
Object path of the GATT characteristic the descriptor belongs to.

### array{byte} Value [read-only, optional]
The cached value of the descriptor. This property gets updated only after a successful read request, upon which a PropertiesChanged signal will be emitted.

### array{string} Flags [read-only]
Defines how the descriptor value can be used.

Possible values:

"read"

"write"

"encrypt-read"

"encrypt-write"

"encrypt-authenticated-read"

"encrypt-authenticated-write"

"secure-read" (Server Only)

"secure-write" (Server Only)

"authorize"

### uint16 Handle [read-only] (Client Only)
Descriptor handle.

### uint16 Handle [read-write, optional] (Server Only)
Descriptor handle. When available in the server it would attempt to use to allocate into the database which may fail, to auto allocate the value 0x0000 shall be used which will cause the allocated handle to be set once registered.


org.bluez.GattManager

title: org.bluez.GattManager(5)

text:
# org.bluez.GattManager(5)

## NAME
org.bluez.GattManager - BlueZ D-Bus GattManager API documentation

## DESCRIPTION
GATT Manager allows external applications to register GATT services and profiles.

Registering a profile allows applications to subscribe to remote/client services.

Registering a service allows applications to publish a local/server GATT service, which then becomes available to remote devices. A GATT service is represented by a D-Bus object hierarchy where the root node corresponds to a service and the child nodes represent characteristics and descriptors that belong to that service. Each node must implement one of org.bluez.GattService(5), org.bluez.GattCharacteristic(5) or org.bluez.GattDescriptor(5) interfaces, based on the attribute it represents. Each node must also implement the standard D-Bus Properties interface to expose their properties. These objects collectively represent a GATT service definition.

To make service registration simple, bluetoothd(8) requires that all objects that belong to a GATT service be grouped under a D-Bus Object Manager that solely manages the objects of that service. Hence, the standard DBus.ObjectManager interface must be available on the root service path. An example application hierarchy containing two separate GATT services may look like this:

```
-> /com/example

  |   - org.freedesktop.DBus.ObjectManager

  |

  -> /com/example/service0

  | |   - org.freedesktop.DBus.Properties

  | |   - org.bluez.GattService1

  | |

  | -> /com/example/service0/char0

  | |     - org.freedesktop.DBus.Properties

  | |     - org.bluez.GattCharacteristic1

  | |

  | -> /com/example/service0/char1

  |   |   - org.freedesktop.DBus.Properties

  |   |   - org.bluez.GattCharacteristic1

  |   |

  |   -> /com/example/service0/char1/desc0

  |       - org.freedesktop.DBus.Properties

  |       - org.bluez.GattDescriptor1

  |

  -> /com/example/service1

    |   - org.freedesktop.DBus.Properties

    |   - org.bluez.GattService1

    |

   -> /com/example/service1/char0

        - org.freedesktop.DBus.Properties

        - org.bluez.GattCharacteristic1
```

When a service is registered, bluetoothd(8) will automatically obtain information about all objects using the service's Object Manager. Once a service has been registered, the objects of a service should not be removed. If bluetoothd(8) receives an InterfacesRemoved signal from a service's Object Manager, it will immediately unregister the service. Similarly, if the application disconnects from the bus, all of its registered services will be automatically unregistered. InterfacesAdded signals will be ignored.

## INTERFACE
Service

org.bluez

Interface

org.bluez.GattManager1

Object path

[variable prefix]/{hci0,hci1,...}

Used by

bluetoothctl-gatt(1)

### void RegisterApplication(object application, dict options)
Registers a local GATT services hierarchy as described above (GATT Server) and/or GATT profiles (GATT Client).

The application object path together with the D-Bus system bus connection ID define the identification of the application registering a GATT based service (org.bluez.GattService(5)) and/or profile (org.bluez.GattProfile(5)).

Possible errors:

org.bluez.Error.InvalidArguments

org.bluez.Error.AlreadyExists

Examples:

bluetoothctl

> gatt.register-application [UUID ...]

### void UnregisterApplication(object application)
This unregisters the services and/or profiles that has been previously registered using RegisterApplication(). The object path parameter must match the same value that has been used on registration.

Possible errors:

org.bluez.Error.InvalidArguments

org.bluez.Error.DoesNotExist

Examples:

bluetoothctl

> gatt.unregister-application


org.bluez.GattProfile

title: org.bluez.GattProfile(5)

text:
# org.bluez.GattProfile(5)

## NAME
org.bluez.GattProfile - BlueZ D-Bus GattProfile API documentation

## DESCRIPTION
Local profile (GATT client) instance. By registering this type of object an application effectively indicates support for a specific GATT profile and requests automatic connections to be established to devices supporting it.

## INTERFACE
Service

<application dependent>

Interface

org.bluez.GattProfile1

Object path

<application dependent>

### void Release()
This method gets called when bluetoothd(8) unregisters the profile. The profile can use it to do cleanup tasks.

There is no need to unregister the profile, because when this method gets called it has already been unregistered.

### array{string} UUIDs [read-only]
128-bit GATT service UUIDs to auto connect.


org.bluez.GattService

title: org.bluez.GattService(5)

text:
# org.bluez.GattService(5)

## NAME
org.bluez.GattService - BlueZ D-Bus GattService API documentation

## DESCRIPTION
GATT local/server and remote/client services share the same high-level D-Bus API.

Local/Server refers to GATT based service exported by a plugin or an external application.

Remote/Client refers to GATT services exported by the peer.

## INTERFACE

### Client
Service

org.bluez

Interface

org.bluez.GattService1

Object path

[variable prefix]/{hci0,hci1,...}/dev_{BDADDR}/service#

Used by

bluetoothctl-gatt(1)

### Server
Service

unique name

Interface

org.bluez.GattService1

Object path

freely definable

### string UUID [read-only]
128-bit service UUID.

### boolean Primary [read-only]
Indicates whether or not this GATT service is a primary service. If false, the service is secondary.

### object Device [read-only, optional]
Object path of the Bluetooth device the service belongs to. Only present on services from remote devices.

### array{object} Includes [read-only, optional]
Array of object paths representing the included services of this service.

### uint16 Handle [read-only] (client only)
Service handle.

### uint16 Handle [read-write, optional] (Server Only)
Service handle. When available in the server it would attempt to use to allocate into the database which may fail, to auto allocate the value 0x0000 shall be used which will cause the allocated handle to be set once registered.


org.bluez.Input

title: org.bluez.Input(5)

summary: BlueZ D-Bus Input API documentation

text:
# org.bluez.Input(5)

## NAME
org.bluez.Input - BlueZ D-Bus Input API documentation

## INTERFACE
Service

org.bluez

Interface

org.bluez.Input1

Object path

[variable prefix]/{hci0,hci1,...}/dev_{BDADDR}

### string ReconnectMode [readonly]
Indicates the Connectability mode of the HID device as defined by the HID Profile specification, Section 5.4.2.

This mode is based in the two properties HIDReconnectInitiate (see Section 5.3.4.6) and HIDNormallyConnectable (see Section 5.3.4.14) which define the following four possible values:

"none"

Device and host are not required to automatically restore the connection.

"host"

Bluetooth HID host restores connection.

"device"

Bluetooth HID device restores connection.

"any"

Bluetooth HID device shall attempt to restore the lost connection, but Bluetooth HID Host may also restore the connection.


org.bluez.LEAdvertisement

title: org.bluez.LEAdvertisement(5)

text:
# org.bluez.LEAdvertisement(5)

## NAME
org.bluez.LEAdvertisement - BlueZ D-Bus LEAdvertisement API documentation

## DESCRIPTION
Advertising packets are structured data which is broadcast on the LE Advertising channels and available for all devices in range. Because of the limited space available in LE Advertising packets, each packet's contents must be carefully controlled.

bluetoothd(8) acts as a store for the Advertisement Data which is meant to be sent. It constructs the correct Advertisement Data from the structured data and configured the kernel to send the correct advertisement.

## INTERFACE
Specifies the Advertisement Data to be broadcast and some advertising parameters. Properties which are not present will not be included in the data. Required advertisement data types will always be included. All UUIDs are 128-bit versions in the API, and 16 or 32-bit versions of the same UUID will be used in the advertising data as appropriate.

Service

org.bluez

Interface

org.bluez.LEAdvertisement1

Object path

freely definable

Used by

bluetoothctl-advertise(1)

### void Release() [noreply]
This method gets called when the bluetoothd(8) removes the Advertisement.

A client can use it to do cleanup tasks. There is no need to call UnregisterAdvertisement() because when this method gets called it has already been unregistered.

### string Type [readonly]
Determines the type of advertising packet requested.

Possible values:

"broadcast"

"peripheral"

### array{string} ServiceUUIDs [readonly, optional]
List of UUIDs to include in the "Service UUID" field of the Advertising Data.

### dict ManufacturerData [readonly, optional]
Manufacturer Data fields to include in the Advertising Data.

Keys are the Manufacturer ID to associate with the data.

### array{string} SolicitUUIDs [readonly, optional]
List of UUIDs to include in the "Service Solicitation" field of the Advertising Data.

### dict ServiceData [readonly, optional]
Service Data elements to include in the Advertising Data.

The keys are the UUID to associate with the data.

### dict Data [readonly, optional]
Advertising Data to include.

Key is the advertising type and value is the data as byte array.

Note: Types already handled by other properties shall not be used.

Possible values:

<type>

<byte array>

Example:

<Transport Discovery> <Organization Flags...> 0x26 0x01 0x01...

### array{string} ScanResponseServiceUUIDs [readonly, optional, experimental]
List of UUIDs to include in the "Service UUID" field of the Scan Response Data.

### dict ScanResponseManufacturerData [readonly, optional, experimental]
Manufacturer Data fields to include in the Scan Response Data.

Keys are the Manufacturer ID to associate with the data.

### array{string} ScanResponseSolicitUUIDs [readonly, optional, experimental]
List of UUIDs to include in the "Service Solicitation" field of the Scan Response Data.

### dict ScanResponseServiceData [readonly, optional, experimental]
Service Data elements to include in the Scan Response Data.

The keys are the UUID to associate with the data.

### dict ScanResponseData [readonly, optional, experimental]
Scan Response Data to include.

Key is the advertising type and value is the data as byte array.

### bool Discoverable [readonly, optional]
Advertise as general discoverable. When present this will override adapter Discoverable property.

Note: This property shall not be set when Type is set to "broadcast".

### uint16 DiscoverableTimeout [readonly, optional]
The discoverable timeout in seconds. A value of zero means that the timeout is disabled and it will stay in discoverable/limited mode forever.

Note: This property shall not be set when Type is set to "broadcast".

### array{string} Includes [readonly, optional]
List of features to be included in the advertising packet.

Possible values:

See org.bluez.LEAdvertisingManager(5) SupportedIncludes property.

### string LocalName [readonly, optional]
Local name to be used in the advertising report. If the string is too big to fit into the packet it will be truncated.

If this property is available 'local-name' cannot be present in the Includes.

### uint16 Appearance [readonly, optional]
Appearance to be used in the advertising report.

Possible values: as found on GAP Service.

### uint16 Duration [readonly, optional]
Rotation duration of the advertisement in seconds.

If there are other applications advertising no duration is set the default is 2 seconds.

### uint16 Timeout [readonly, optional]
Timeout of the advertisement in seconds. This defines the lifetime of the advertisement.

### string SecondaryChannel [readonly, optional]
Secondary channel to be used.

Primary channel is always set to "1M" except when "Coded" is set.

Possible value:

"1M" (default)

"2M"

"Coded"

### uint32 MinInterval [readonly, optional]
Minimum advertising interval to be used by the advertising set, in milliseconds.

Acceptable values are in the range [20ms, 10,485s].

If the provided MinInterval is larger than the provided MaxInterval, the registration will return failure.

### uint32 MaxInterval [readonly, optional]
Maximum advertising interval to be used by the advertising set, in milliseconds.

Acceptable values are in the range [20ms, 10,485s].

If the provided MinInterval is larger than the provided MaxInterval, the registration will return failure.

### int16 TxPower [readonly, optional]
Requested transmission power of this advertising set.

The provided value is used only if the "CanSetTxPower" feature is enabled on the org.bluez.LEAdvertisingManager(5).

Values must be in range [-127 to +20], where units are in dBm.


org.bluez.LEAdvertisingManager

title: org.bluez.LEAdvertisingManager(5)

text:
# org.bluez.LEAdvertisingManager(5)

## NAME
org.bluez.LEAdvertisingManager - BlueZ D-Bus LEAvertisingManager API documentation

## INTERFACE
The Advertising Manager allows external applications to register Advertisement Data which should be broadcast to devices. Advertisement Data elements must follow the API for LE Advertisement Data described above.

Service

org.bluez

Interface

org.bluez.LEAdvertisingManager1

Object path

/org/bluez/{hci0,hci1,...}

Used by

bluetoothctl(1)

### void RegisterAdvertisement(object advertisement, dict options)
Registers an advertisement object to be sent over the LE Advertising channel.

The service must implement org.bluez.LEAdvertisement(5) interface.

Possible errors:

org.bluez.Error.InvalidArguments

Indicates that the object has invalid or conflicting properties.

org.bluez.Error.AlreadyExists

Indicates the object is already registered.

org.bluez.Error.InvalidLength

Indicates that the data provided generates a data packet which is too long.

org.bluez.Error.NotPermitted

Indicates the maximum number of advertisement instances has been reached.

Examples:

bluetoothctl

> advertise <on/off/type>

### void UnregisterAdvertisement(object advertisement)
Unregisters an advertisement that has been previously registered using RegisterAdvertisement().

The object path parameter must match the same value that has been used on registration.

Possible errors:

org.bluez.Error.InvalidArguments

org.bluez.Error.DoesNotExist

### byte ActiveInstances [readonly]
Number of active advertising instances.

### byte SupportedInstances [readonly]
Number of available advertising instances.

### array{string} SupportedIncludes [readonly]
List of supported system includes.

Possible values:

"tx-power"

"appearance"

"local-name"

"rsi"

### array{string} SupportedSecondaryChannels [readonly]
List of supported Secondary channels. Secondary channels can be used to advertise with the corresponding PHY.

Possible values:

"1M"

"2M"

"Coded"

### dict SupportedCapabilities [readonly]
Enumerates Advertising-related controller capabilities useful to the client.

Possible Values:

byte MaxAdvLen

Max advertising data length

byte MaxScnRspLen

Max advertising scan response length

int16 MinTxPower

Min advertising tx power (dBm)

int16 MaxTxPower

Max advertising tx power (dBm)

### array{string} SupportedFeatures [readonly,optional]
List of supported platform features. If no features are available on the platform, the SupportedFeatures array will be empty.

Possible values:

"CanSetTxPower"

Indicates whether platform can specify tx power on each advertising instance.

"HardwareOffload"

Indicates whether multiple advertising will be offloaded to the controller.


org.bluez.Media

title: org.bluez.Media(5)

summary: BlueZ D-Bus Media API documentation

text:
# org.bluez.Media(5)

## NAME
org.bluez.Media - BlueZ D-Bus Media API documentation

## INTERFACE
Service

org.bluez

Interface

org.bluez.Media1

Object path

[variable prefix]/{hci0,hci1,...}

Used by

bluetoothctl-endpoint(1)

### void RegisterEndpoint(object endpoint, dict properties)
Register a local end point to sender, the sender can register as many end points as it likes.

Note: If the sender disconnects the end points are automatically unregistered.

possible properties:

string UUID

UUID of the profile which the endpoint is for. UUID must be in the list of SupportedUUIDS.

byte Codec

Assigned number of codec that the endpoint implements. The values should match the profile specification which is indicated by the UUID.

uint32_t Vendor [Optional]

Vendor-specific Company ID, Codec ID tuple that the endpoint implements. It shall be set to appropriate value when Vendor Specific Codec (0xff) is used.

array{byte} Capabilities

Capabilities blob, it is used as it is so the size and byte order must match.

array{byte} Metadata [Optional]

Metadata blob, it is used as it is so the size and byte order must match.

Possible Errors:

org.bluez.Error.InvalidArguments

org.bluez.Error.NotSupported

emitted when interface for the end-point is disabled

Examples:

bluetoothctl

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

### void UnregisterEndpoint(object endpoint)
Unregister sender end point.

Examples:

bluetoothctl

> endpoint.unregister <UUID/object>

### void RegisterPlayer(object player, dict properties)
Register a media player object to sender, the sender can register as many objects as it likes.

Object must implement at least org.mpris.MediaPlayer2.Player as defined in MPRIS 2.2 spec:

http://specifications.freedesktop.org/mpris-spec/latest/

Note: If the sender disconnects its objects are automatically unregistered.

Possible Errors:

org.bluez.Error.InvalidArguments

org.bluez.Error.NotSupported

### void UnregisterPlayer(object player)
Unregister sender media player.

### void RegisterApplication(object root, dict options)
Register endpoints an player objects within root object which must implement org.freedesktop.DBus.ObjectManager.

The application object path together with the D-Bus system bus connection ID define the identification of the application.

Possible errors:

org.bluez.Error.InvalidArguments

org.bluez.Error.AlreadyExists

### void UnregisterApplication(object application)
This unregisters the services that has been previously registered.

The object path parameter must match the same value that has been used on registration.

Possible errors:

org.bluez.Error.InvalidArguments

org.bluez.Error.DoesNotExist

### array{string} SupportedUUIDs [readonly]
List of 128-bit UUIDs that represents the supported Endpoint registration.

### array{string} SupportedFeatures [readonly]
List of strings that represent supported special features.

Possible values:

"tx-timestamping"

Bluetooth TX timestamping in media stream sockets is supported by BlueZ and kernel. Applications may check kernel support for specific timestamp types via SIOCETHTOOL.


org.bluez.MediaAssistant

title: org.bluez.MediaAssistant(5)

text:
# org.bluez.MediaAssistant(5)

## NAME
org.bluez.MediaAssistant - BlueZ D-Bus MediaAssistant API documentation

## INTERFACE
Service

org.bluez

Interface

org.bluez.MediaAssistant1

Object path

/org/bluez/{hci0,hci1,...}/dev_{BDADDR}/src_{BDADDR}/sid#/bis#

Used by

bluetoothctl-assistant(1)

### void Push(dict properties)
Send stream information to the remote device.

dict properties

Indicate stream properties that will be sent to the peer.

Values:

array{byte} Metadata [ISO only]

See Metadata property.

dict QoS [ISO only]

See QoS property.

object Device [ISO only, State=local only]

Push to a specific device. Device must be connected and with an active BASS session.

Examples:

bluetoothctl

> assistant.push <assistant>

### string State [readonly]
Indicates the state of the assistant object. Possible values are:

"idle"

assistant object was created for the stream

"pending"

assistant object was pushed (stream information was sent to the peer)

"requesting"

remote device requires Broadcast_Code

"active"

remote device started receiving stream

"local"

assistant object was created for a local stream

### array{byte} Metadata [readwrite, ISO Only, experimental]
Indicates stream Metadata.

### dict QoS [readwrite, ISO only, experimental]
Indicates stream QoS capabilities.

Values:

byte Encryption

Indicates whether the stream is encrypted.

:array{byte} BCode

Indicates Broadcast_Code to decrypt stream.


org.bluez.MediaControl

title: org.bluez.MediaControl(5)

text:
# org.bluez.MediaControl(5)

## NAME
org.bluez.MediaControl - BlueZ D-Bus MediaControl API documentation

## INTERFACE
Service

org.bluez

Interface

org.bluez.MediaControl1

Object path

[variable prefix]/{hci0,hci1,...}/dev_{BDADDR}

### void Play() [Deprecated]
Resume playback.

### void Pause() [Deprecated]
Pause playback.

### void Stop() [Deprecated]
Stop playback.

### void Next() [Deprecated]
Next item.

### void Previous() [Deprecated]
Previous item.

### void VolumeUp() [Deprecated]
Adjust remote volume one step up

### void VolumeDown() [Deprecated]
Adjust remote volume one step down

### void FastForward() [Deprecated]
Fast forward playback, this action is only stopped when another method in this interface is called.

### void Rewind() [Deprecated]
Rewind playback, this action is only stopped when another method in this interface is called.

### object Player [readonly, optional]
Addressed Player object path.


org.bluez.MediaEndpoint

title: org.bluez.MediaEndpoint(5)

text:
# org.bluez.MediaEndpoint(5)

## NAME
org.bluez.MediaEndpoint - BlueZ D-Bus MediaEndpoint API documentation

## INTERFACE
Service

unique name (Server role) org.bluez (Client role)

Interface

org.bluez.MediaEndpoint1

Object path

freely definable (Server role) [variable prefix]/{hci0,hci1,...}/dev_{BDADDR}/sep# (Client role)

Used by

bluetoothctl-endpoint(1)

### void SetConfiguration(object transport, dict properties)
Set configuration for the transport.

object transport

Configured transport object.

dict properties

Configured org.bluez.MediaTransport(5) properties.

For client role transport must be set with a server endpoint object which will be configured and the properties must contain the following properties:

array{byte} Capabilities [Mandatory]

See Capabilities property.

array{byte} Metadata [ISO only]

See Metadata property.

dict QoS [ISO only]

See org.bluez.MediaTransport(5) QoS property.

Possible errors for A2DP endpoints:

org.bluez.Error.A2DP.InvalidCodecType

org.bluez.Error.A2DP.NotSupportedCodecType

org.bluez.Error.A2DP.InvalidSamplingFrequency

org.bluez.Error.A2DP.NotSupportedSamplingFrequency

org.bluez.Error.A2DP.InvalidChannelMode

org.bluez.Error.A2DP.NotSupportedChannelMode

org.bluez.Error.A2DP.InvalidSubbands

org.bluez.Error.A2DP.NotSupportedSubbands

org.bluez.Error.A2DP.InvalidAllocationMethod

org.bluez.Error.A2DP.NotSupportedAllocationMethod

org.bluez.Error.A2DP.InvalidMinimumBitpoolValue

org.bluez.Error.A2DP.NotSupportedMinimumBitpoolValue

org.bluez.Error.A2DP.InvalidMaximumBitpoolValue

org.bluez.Error.A2DP.NotSupportedMaximumBitpoolValue

org.bluez.Error.A2DP.InvalidLayer

org.bluez.Error.A2DP.NotSupportedLayer

org.bluez.Error.A2DP.NotSupportedCRC

org.bluez.Error.A2DP.NotSupportedMPF

org.bluez.Error.A2DP.NotSupportedVBR

org.bluez.Error.A2DP.InvalidBitRate

org.bluez.Error.A2DP.NotSupportedBitRate

org.bluez.Error.A2DP.InvalidObjectType

org.bluez.Error.A2DP.NotSupportedObjectType

org.bluez.Error.A2DP.InvalidChannels

org.bluez.Error.A2DP.NotSupportedChannels

org.bluez.Error.A2DP.InvalidVersion

org.bluez.Error.A2DP.NotSupportedVersion

org.bluez.Error.A2DP.NotSupportedMaximumSUL

org.bluez.Error.A2DP.InvalidBlockLength

org.bluez.Error.A2DP.InvalidCPType

org.bluez.Error.A2DP.InvalidCPFormat

org.bluez.Error.A2DP.InvalidCodecParameter

org.bluez.Error.A2DP.NotSupportedCodecParameter

org.bluez.Error.A2DP.InvalidDRC

org.bluez.Error.A2DP.NotSupportedDRC

Examples:

bluetoothctl

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

### array{byte} SelectConfiguration(array{byte} capabilities)
Select preferable configuration from the supported capabilities.

Returns a configuration which can be used to setup a transport, see org.bluez.MediaTransport(5) for possible values.

Note: There is no need to cache the selected configuration since on success the configuration is send back as parameter of SetConfiguration.

### dict SelectProperties(dict capabilities)
Select BAP unicast configuration from the supported capabilities:

object Endpoint

array{byte} Capabilities

array{byte} Metadata

uint32 Locations

uint32_t ChannelAllocation

dict QoS

byte Framing

byte PHY

uint16 MaximumLatency

uint32 MinimumDelay

uint32 MaximumDelay

uint32 PreferredMinimumDelay

uint32 PreferredMaximumDelay

See MediaEndpoint Properties for their possible values.

Returns a configuration which can be used to setup a transport:

array{byte} Capabilities

array{byte} Metadata [optional]

dict QoS

See SetConfiguration for their possible values.

Note: There is no need to cache the selected properties since on success the configuration is send back as parameter of SetConfiguration.

### void ClearConfiguration(object transport)
Clear transport configuration.

Server role: [ISO only]

Close the stream associated with the given transport. If the path given is the path of this endpoint, all its streams are closed.

### void Reconfigure(dict properties)
[ISO only]

Reconfigure a BAP unicast endpoint. This closes all existing streams of the endpoint, and restarts the configuration selection flow which e.g. triggers calls to SelectProperties allowing the sound server to modify the configuration.

The following arguments are taken in properties:

boolean Defer [optional]

If True, mark endpoint for reconfiguration, but postpone it until a non-deferred Reconfigure() operation is made on an endpoint of the same device. This is necessary to use when reconfiguring source and sink streams with the intention that they be combined into the same CIG, possibly forming bidirectional CIS.

### void Release()
This method gets called when bluetoothd(8) unregisters the endpoint.

An endpoint can use it to do cleanup tasks. There is no need to unregister the endpoint, because when this method gets called it has already been unregistered.

### string UUID [readonly, optional]
UUID of the profile which the endpoint is for.

### byte Codec [readonly, optional]
Assigned number of codec that the endpoint implements.

The values should match the profile specification which is indicated by the UUID.

### uint32_t Vendor [readonly, Optional]
Vendor-specific Company ID, Codec ID tuple that the endpoint implements.

It shall be set to appropriate value when Vendor Specific Codec (0xff) is used.

### array{byte} Capabilities [readonly, optional]
Capabilities blob, it is used as it is so the size and byte order must match.

### array{byte} Metadata [readonly, Optional]
Metadata blob, it is used as it is so the size and byte order must match.

### object Device [readonly, optional]
Device object which the endpoint is belongs to.

### bool DelayReporting [readonly, optional]
Indicates if endpoint supports Delay Reporting.

### uint32 Locations [readonly, optional, ISO only, experimental]
Indicates endpoint supported locations.

### uint16 SupportedContext [readonly, optional, ISO only, experimental]
Indicates endpoint supported audio context.

### uint16 Context [readonly, optional, ISO only, experimental]
Indicates endpoint available audio context.

### dict QoS [readonly, optional, ISO only, experimental]
Indicates QoS capabilities.

byte Framing

Indicates endpoint support framing. Possible Values:

0x00

Unframed PDUs supported.

0x01

Unframed PDUs not supported.

byte PHY

Indicates endpoint preferred PHY. Possible values:

bit 0

LE 1M preferred.

bit 1

LE 2M preferred.

bit 2

LE Coded preferred.

byte Retransmissions

Indicates endpoint preferred number of retransmissions.

uint16 MaximumLatency

Indicates endpoint maximum latency.

uint32 MinimumDelay

Indicates endpoint minimum presentation delay.

uint32 MaximumDelay

Indicates endpoint maximum presentation delay.

uint32 PreferredMinimumDelay

Indicates endpoint preferred minimum presentation delay.

uint32 PreferredMaximumDelay

Indicates endpoint preferred maximum presentation delay.

### dict SupportedFeatures [readonly, ISO only, experimental]
Dictionary representing supported features for different services. Keys are service UUIDs, values arrays of strings.

Services:

array{string} 00001855-0000-1000-8000-00805f9b34fb

TMAP Features. Possible items:

"cg"

Call Gateway

"ct"

Call Terminal

"ums"

Unicast Media Sender

"umr"

Unicast Media Receiver

"bms"

Broadcast Media Sender

"bmr"

Broadcast Media Receiver

array{string} 00001858-0000-1000-8000-00805f9b34fb

GMAP Features. Possible items:

"ugg"

Unicast Game Gateway

"ugt"

Unicast Game Terminal

"bgs"

Broadcast Game Sender

"bgr"

Broadcast Game Receiver

"ugg-multiplex"

UGG Multiplex feature support

"ugg-96kbps-source"

UGG 96 kbps Source feature support

"ugg-multisink"

UGG Multisink feature support

"ugt-source"

UGT Source feature support

"ugt-80kbps-source"

UGT 80 kbps Source feature support

"ugt-sink"

UGT Sink feature support

"ugt-64kbps-sink"

UGT 64 kbps Sink feature support

"ugt-multiplex"

UGT Multiplex feature support

"ugt-multisink"

UGT Multisink feature support

"ugt-multisource"

UGT Multisource feature support

"bgs-96kbps"

BGS 96 kbps feature support

"bgr-multisink"

BGR Multisink feature support

"bgr-multiplex"

BGR Multiplex feature support


org.bluez.MediaFolder

title: org.bluez.MediaFolder(5)

text:
# org.bluez.MediaFolder(5)

## NAME
org.bluez.MediaFolder - BlueZ D-Bus MediaFolder API documentation

## INTERFACE
Service

unique name (Target role) org.bluez (Controller role)

Interface

org.bluez.MediaFolder1

Object path

freely definable (Target role) [variable prefix]/{hci0,hci1,...}/dev_{BDRADDR}/player# (Controller role)

Used by

bluetoothctl-player(1)

### object Search(string value, dict filter)
Return a folder object containing the search result.

To list the items found use the folder object returned and pass to ChangeFolder.

Possible Errors:

org.bluez.Error.NotSupported

org.bluez.Error.Failed

Examples:

bluetoothctl

[player] > search <string>

### array{objects, properties} ListItems(dict filter)
Return a list of items found

Possible Errors:

org.bluez.Error.InvalidArguments

org.bluez.Error.NotSupported

org.bluez.Error.Failed

Examples:

bluetoothctl

[player] > list-items [start] [end]

### void ChangeFolder(object folder)
Change current folder.

Note: By changing folder the items of previous folder might be destroyed and have to be listed again, the exception is NowPlaying folder which should be always present while the player is active.

Possible Errors:

org.bluez.Error.InvalidArguments

org.bluez.Error.NotSupported

org.bluez.Error.Failed

Examples:

bluetoothctl

[player] > change-folder <item>

### uint32 NumberOfItems [readonly]
Number of items in the folder

### string Name [readonly]
Folder name:

Possible values:

"/Filesystem/..."

Filesystem scope

"/NowPlaying/..."

NowPlaying scope

Note: /NowPlaying folder might not be listed if player is stopped, folders created by Search are virtual so once another Search is perform or the folder is changed using ChangeFolder it will no longer be listed.

### Filters
uint32 Start

Offset of the first item. Default value: 0

uint32 End

Offset of the last item. Default value: NumbeOfItems

array{string} Attributes

Item properties that should be included in the list. Possible Values:

"title", "artist", "album", "genre", "number-of-tracks", "number", "duration" Default Value: All


org.bluez.MediaItem

title: org.bluez.MediaItem(5)

summary: BlueZ D-Bus MediaItem API documentation

text:
# org.bluez.MediaItem(5)

## NAME
org.bluez.MediaItem - BlueZ D-Bus MediaItem API documentation

## INTERFACE
Service

unique name (Target role) org.bluez (Controller role)

Interface

org.bluez.MediaItem1

Object path

freely definable (Target role) [variable prefix]/{hci0,hci1,...}/dev_{BDRADDR}/player#/item# (Controller role)

Used by

bluetoothctl-player(1)

### void Play()
Play item

Possible Errors:

org.bluez.Error.NotSupported

org.bluez.Error.Failed

Examples:

bluetoothctl

[player] > play [item]

### void AddtoNowPlaying()
Add item to now playing list

Possible Errors:

org.bluez.Error.NotSupported

org.bluez.Error.Failed

Examples:

bluetoothctl

[player] > queue <item>

### object Player [readonly]
Player object path the item belongs to

### string Name [readonly]
Item displayable name

### string Type [readonly]
Item type

Possible values:

"video"

"audio"

"folder"

### string FolderType [readonly, optional]
Folder type.

Available if property Type is "Folder"

Possible values:

"mixed"

"titles"

"albums"

"artists"

### boolean Playable [readonly, optional]
Indicates if the item can be played

Available if property Type is "folder"

### dict Metadata [readonly]
Item metadata.

Possible values:

string Title

Item title name Available if property Type is "audio" or "video"

string Artist

Item artist name Available if property Type is "audio" or "video"

string Album

Item album name Available if property Type is "audio" or "video"

string Genre

Item genre name Available if property Type is "audio" or "video"

uint32 NumberOfTracks

Item album number of tracks in total Available if property Type is "audio" or "video"

uint32 Number

Item album number Available if property Type is "audio" or "video"

uint32 Duration

Item duration in milliseconds Available if property Type is "audio" or "video"


org.bluez.MediaPlayer

title: org.bluez.MediaPlayer(5)

text:
# org.bluez.MediaPlayer(5)

## NAME
org.bluez.MediaPlayer - BlueZ D-Bus MediaPlayer API documentation

## INTERFACE
Service

org.bluez (Controller role)

Interface

org.bluez.MediaPlayer1

Object path

[variable prefix]/{hci0,hci1,...}/dev_{BDADDR}/player#

Used by

bluetoothctl-player(1)

### void Play()
Resume playback.

Possible Errors:

org.bluez.Error.NotSupported

org.bluez.Error.Failed

Examples:

bluetoothctl

> player.play [item]

### void Pause()
Pause playback.

Possible Errors:

org.bluez.Error.NotSupported

org.bluez.Error.Failed

Examples:

bluetoothctl

> player.pause

### void Stop()
Stop playback.

Possible Errors:

org.bluez.Error.NotSupported

org.bluez.Error.Failed

Examples:

bluetoothctl

> player.stop

### void Next()
Next item.

Possible Errors:

org.bluez.Error.NotSupported

org.bluez.Error.Failed

Examples:

bluetoothctl

> player.next

### void Previous()
Previous item.

Possible Errors:

org.bluez.Error.NotSupported

org.bluez.Error.Failed

Examples:

bluetoothctl

> player.previous

### void FastForward()
Fast forward playback, this action is only stopped when another method in this interface is called.

Possible Errors:

org.bluez.Error.NotSupported

org.bluez.Error.Failed

Examples:

bluetoothctl

> player.fast-forward

### void Rewind()
Rewind playback, this action is only stopped when another method in this interface is called.

Possible Errors:

org.bluez.Error.NotSupported

org.bluez.Error.Failed

Examples:

bluetoothctl

> player.rewind

### void Press(byte avc_key)
Press a specific key to send as passthrough command.

The key will be released automatically. Use Hold() instead if the intention is to hold down the key.

Possible Errors:

org.bluez.Error.InvalidArguments

org.bluez.Error.NotSupported

org.bluez.Error.Failed

### void Hold(byte avc_key)
Press and hold a specific key to send as passthrough command. It is the responsibility of the caller to make sure that Release() is called after calling this method.

The held key will also be released when any other method in this interface is called.

Possible Errors:

org.bluez.Error.InvalidArguments

org.bluez.Error.NotSupported

org.bluez.Error.Failed

### void Release()
Release the previously held key invoked using Hold().

Possible Errors:

org.bluez.Error.NotSupported

org.bluez.Error.Failed

### string Equalizer [readwrite]
Indicates Player Equalizer setting.

Possible values:

"off"

"on"

Examples:

bluetoothctl

[player] > equalizer <on/off>

### string Repeat [readwrite]
Indicates Player Repeat setting.

Possible values:

"off"

"singletrack"

"alltracks"

"group"

Examples:

bluetoothctl

[player] > repeat <singletrack/alltracks/group/off>

### string Shuffle [readwrite]
Indicates Player Suffle setting.

Possible values:

"off"

"alltracks"

"group"

Examples:

bluetoothctl

[player] > shuffle <alltracks/group/off>

### string Scan [readwrite]
Indicates Player Scan setting.

Possible values:

"off"

"alltracks"

"group"

Examples:

bluetoothctl

[player] > scan <alltracks/group/off>

### string Status [readonly]
Indicates Player Status setting.

Possible status:

"playing"

"stopped"

"paused"

"forward-seek"

"reverse-seek"

"error"

### uint32 Position [readonly]
Playback position in milliseconds.

Changing the position may generate additional events that will be sent to the remote device. When position is 0 it means the track is starting and when it's greater than or equal to track's duration the track has ended.

Note that even if duration is not available in metadata it's possible to signal its end by setting position to the maximum uint32 value.

### dict Track [readonly]
Track metadata.

Possible values:

string Title

Track title name

string Artist

Track artist name

string Album

Track album name

string Genre

Track genre name

uint32 NumberOfTracks

Number of tracks in total

uint32 TrackNumber

Track number

uint32 Duration

Track duration in milliseconds

string ImgHandle

[experimental] Track image handle, available and valid only during the lifetime of an OBEX BIP connection to the ObexPort.

### object Device [readonly]
Device object path.

### string Name [readonly]
Player name.

### string Type [readonly]
Player type.

Possible values:

"Audio"

"Video"

"Audio Broadcasting"

"Video Broadcasting"

### string Subtype [readonly]
Player subtype.

Possible values:

"Audio Book"

"Podcast"

### boolean Browsable [readonly]
If present indicates the player can be browsed using MediaFolder interface.

Possible values:

True

Supported and active

False

Supported but inactive

Note: If supported but inactive clients can enable it by using org.bluez.MediaFolder(5) interface but it might interfere in the playback of other players.

### boolean Searchable [readonly]
If present indicates the player can be searched using MediaFolder interface.

Possible values:

True

Supported and active

False

Supported but inactive

Note: If supported but inactive clients can enable it by using org.bluez.MediaFolder(5) interface but it might interfere in the playback of other players.

### object Playlist
Playlist object path.

### uint16 ObexPort [readonly, experimental]
If present indicates the player can get cover art using BIP over OBEX on this PSM port.


org.bluez.MediaTransport

title: org.bluez.MediaTransport(5)

text:
# org.bluez.MediaTransport(5)

## NAME
org.bluez.MediaTransport - BlueZ D-Bus MediaTransport API documentation

## INTERFACE
Service

org.bluez

Interface

org.bluez.MediaTransport1

Object path

[variable prefix]/{hci0,hci1,...}/dev_{BDADDR}/fd#

Used by

bluetoothctl-transport(1)

### fd, uint16, uint16 Acquire()
Acquire transport file descriptor and the MTU for read and write respectively.

Possible Errors:

org.bluez.Error.NotAuthorized

org.bluez.Error.Failed

Examples:

bluetoothctl

> transport.acquire <transport> [transport1...]

### fd, uint16, uint16 TryAcquire()
Acquire transport file descriptor only if the transport is in "pending" state at the time the message is received by BlueZ. Otherwise no request will be sent to the remote device and the function will just fail with org.bluez.Error.NotAvailable.

Possible Errors:

org.bluez.Error.NotAuthorized

org.bluez.Error.Failed

org.bluez.Error.NotAvailable

### void Release()
Releases file descriptor.

Examples:

bluetoothctl

> transport.release <transport> [transport1...]

### void Select()
Applicable only for transports created by a broadcast sink. This moves the transport from "idle" to "broadcasting".

This allows callers to select which BISes he wishes to sync to via a 2 step process:

1.

the user calls the method, changing the transport's state to broadcasting

2.

the audio server detects that the transport is in the 'broadcasting' state and automatically acquires it

Possible Errors:

org.bluez.Error.NotAuthorized

Examples:

bluetoothctl

> transport.select <transport> [transport1...]

### void Unselect()
Applicable only for transports created by a broadcast sink. This moves the transport from "broadcasting" or "active" to "idle".

This allows callers to terminate the sync to a BIS to via a 2 step process:

1.

the user calls this method, changing the transport's state to idle

2.

the audio server detects this event and releases the transport

Possible Errors:

org.bluez.Error.NotAuthorized

Examples:

bluetoothctl

> transport.unselect <transport> [transport1...]

### object Device [readonly]
Device object which the transport is connected to.

### string UUID [readonly]
UUID of the profile which the transport is for.

### byte Codec [readonly]
Assigned number of codec that the transport support.

The values should match the profile specification which is indicated by the UUID.

### array{byte} Configuration [readonly]
Configuration blob, it is used as it is so the size and byte order must match.

### string State [readonly]
Indicates the state of the transport. Possible values are:

"idle"

not streaming

"pending"

streaming but not acquired

"broadcasting"

streaming but not acquired, applicable only for transports created by a broadcast sink

"active"

streaming and acquired

### uint16 Delay [readwrite, optional]
Transport delay in 1/10 of millisecond, this property is only writeable when the transport corresponds to a sink endpoint and it was acquired by the sender.

### uint16 Volume [readwrite, optional]
Indicates volume level of the transport, this property is only writeable when the transport was acquired by the sender.

Possible Values:

0-127 (A2DP)

0-255 (BAP)

Examples:

bluetoothctl

> transport.volume <transport> [value]

### object Endpoint [readonly, optional, experimental]
Endpoint object which the transport is associated with.

### uint32 Location [readonly, ISO only, experimental]
Indicates transport Audio Location.

### array{byte} Metadata [readwrite, ISO Only, experimental]
Indicates transport Metadata.

### array{object} Links [readonly, optional, CIS only, experimental]
Linked transport objects which the transport is associated with.

### array{object} Links [readwrite, BIS only, experimental]
For a Broadcast Sink, the BIG sync procedure requires all desired streams to be enumerated from the start and it cannot be later reconfigured by adding or removing BISes.

To avoid terminating and recreating the BIG sync every time a new transport is selected for acquire, all transports selected via Select need to be linked together.

When the first transport is acquired via Transport.Acquire, all links are included in the BIG sync command.

An acquired transport will create and set fds for all its links. Then, each link needs to be acquired separately, to get the fd and start receiving audio.

### dict QoS [readwrite, optional, ISO only, experimental]
Only present when QoS is configured.

Possible values for Unicast:

byte CIG

Indicates configured CIG. Possible values:

0x00 - 0xef

Valid ID range.

0xff

Auto allocate.

byte CIS

Indicates configured CIS. Possible values:

0x00 - 0xef

Valid ID range.

0xff

Auto allocate.

byte Framing

Indicates configured framing. Possible values:

0x00

Unframed.

0x01

Framed.

uint32 PresentationDelay

Indicates configured transport presentation delay (us).

byte TargetLatency

Indicates the requested target latency. Possible values:

0x01

Low Latency.

0x02

Balanced Latency/Reliability.

0x03

High Reliability.

Possible values for Broadcast:

byte BIG

Indicates configured QoS BIG.

byte BIS

Indicates configured BIS.

byte SyncFactor

Indicates configured broadcast sync factor.

byte Packing

Indicates configured packing.

byte Framing

Indicates configured framing.

array{byte} BCode

Indicates the string used for encryption/decryption.

byte encryption

Indicates if the stream is encrypted.

byte Options

Indicates configured broadcast options.

uint16 Skip

Indicates configured broadcast skip.

byte SyncTimeout

Indicates configured broadcast sync timeout.

byte SyncType

Indicates configured broadcast sync CTE type.

byte MSE

Indicates configured broadcast MSE.

uint16 Timeout

Indicates configured broadcast timeout.

Possible values for both Unicast and Broadcast:

uint32 Interval

Indicates configured ISO interval (us).

uint16 Latency

Indicates configured transport latency (ms).

uint16 SDU

Indicates configured maximum SDU.

byte PHY

Indicates configured PHY. Possible values:

bit 0

LE 1M

bit 1

LE 2M

bit 2

LE Coded

byte Retransmissions

Indicates configured retransmissions.


org.bluez.Network

title: org.bluez.Network(5)

summary: BlueZ D-Bus Network API documentation

text:
# org.bluez.Network(5)

## NAME
org.bluez.Network - BlueZ D-Bus Network API documentation

## INTERFACE
Service

org.bluez

Interface

org.bluez.Network1

Object path

[variable prefix]/{hci0,hci1,...}/dev_{BDADDR}

### string Connect(string uuid)
Connects to the network device and return the network interface name.

Possible uuid values:

"panu", "00001115-0000-1000-8000-00805f9b34fb"

Personal Network User role.

"nap", "00001116-0000-1000-8000-00805f9b34fb"

Network Access Point role.

"gn", "00001117-0000-1000-8000-00805f9b34fb"

Group Network role.

The connection will be closed and network device released either upon calling Disconnect() or when the client disappears from the message bus.

Possible errors:

org.bluez.Error.InvalidArguments

org.bluez.Error.NotSupported

org.bluez.Error.InProgress

org.bluez.Error.Failed

### void Disconnect()
Disconnects from the network device.

To abort a connection attempt in case of errors or timeouts in the client it is fine to call this method.

Possible errors:

org.bluez.Error.Failed

org.bluez.Error.NotConnected

### boolean Connected [readonly]
Indicates if the device is connected.

### string Interface [readonly, optional]
Indicates the network interface name when available.

### string UUID [readonly, optional]
Indicates the connection role when available.


org.bluez.NetworkServer

title: org.bluez.NetworkServer(5)

text:
# org.bluez.NetworkServer(5)

## NAME
org.bluez.NetworkServer - BlueZ D-Bus NetworkServer API documentation

## INTERFACE
Service

org.bluez

Interface

org.bluez.NetworkServer1

Object path

/org/bluez/{hci0,hci1,...}

### void Register(string uuid, string bridge)
Registers server for the provided UUID.

Every new connection to this server will be added the bridge interface.

Possible uuid values:

"panu", "00001115-0000-1000-8000-00805f9b34fb"

Personal Network User role.

"nap", "00001116-0000-1000-8000-00805f9b34fb"

Network Access Point role.

"gn", "00001117-0000-1000-8000-00805f9b34fb"

Group Network role.

Initially no network server SDP is provided. Only after this method a SDP record will be available and the BNEP server will be ready for incoming connections.

Possible errors:

org.bluez.Error.InvalidArguments

org.bluez.Error.AlreadyExists

org.bluez.Error.Failed

### void Unregister(string uuid)
Unregisters the server for provided UUID which was previously registered with Register() method.

All servers will be automatically unregistered when the calling application terminates.

Possible errors:

org.bluez.Error.InvalidArguments

org.bluez.Error.Failed


org.bluez.Profile

title: org.bluez.Profile(5)

summary: BlueZ D-Bus Profile API documentation

text:
# org.bluez.Profile(5)

## NAME
org.bluez.Profile - BlueZ D-Bus Profile API documentation

## INTERFACE
Service

unique name

Interface

org.bluez.Profile1

Object path

freely definable

### void Release() [noreply]
This method gets called when bluetoothd(8) unregisters the profile.

A profile can use it to do cleanup tasks. There is no need to unregister the profile, because when this method gets called it has already been unregistered.

### void NewConnection(object device, fd, dict fd_properties)
This method gets called when a new service level connection has been made and authorized.

Possible fd_properties values:

uint16 Version [optional]

Profile version.

uint16 Features [optional]

Profile features.

Possible errors:

org.bluez.Error.Rejected

org.bluez.Error.Canceled