org.bluez...leManager(5)

✨ NAME ✨

ok so this page is org.bluez.ProfileManager(5) β€” it's the BlueZ D-Bus ProfileManager API documentation, bestie πŸ’™ and yes it lives in the Linux System Administration manual, section 5. Buckle up, we're registering profiles today πŸŽ€


πŸ’… INTERFACE πŸ’…

Here's the whole vibe check of where everything lives:

  • Service β€” org.bluez
  • Interface β€” org.bluez.ProfileManager1
  • Object path β€” /org/bluez

🌸 Methods 🌸

✨ void RegisterProfile(object profile, string uuid, dict options)

okay so this one registers a profile agent 🫢 literally what it says on the tin.

The object path defines the path of the profile that will be called when there is a connection and it must implement the org.bluez.Profile(5) interface. no exceptions, that's the whole deal πŸ’€

heads up: if an application disconnects from the bus, all its registered profiles get removed. all of them. gone. periodt ✨

πŸ¦‹ Possible uuid values πŸ¦‹

  • "0000111f-0000-1000-8000-00805f9b34fb" β€” HFP AG. default profile Version is 1.7, profile Features is 0b001001 and RFCOMM channel is 13. Authentication is required πŸ”₯
  • "0000111e-0000-1000-8000-00805f9b34fb" β€” HFP HS. default profile Version is 1.7, profile Features is 0b000000 and RFCOMM channel is 7. Authentication is required πŸ”₯
  • "00001112-0000-1000-8000-00805f9b34fb" β€” HSP AG. default profile Version is 1.2, RFCOMM channel is 12 and Authentication is required. Does not support any Features β€” that option is literally ignored πŸ™ˆ
  • "00001108-0000-1000-8000-00805f9b34fb" β€” HSP HS. default profile Version is 1.2, profile Features is 0b0 and RFCOMM channel is 6. Authentication is required.

Features is one bit value β€” it specifies capability of Remote Audio Volume Control (which is, by default, turned off) πŸ‘‘

  • "<vendor UUID>" β€” Vendor defined UUID. no defaults, so you must set options. no shortcuts, bestie πŸ’…

πŸŽ€ Possible options values πŸŽ€

  • string Name β€” human readable name for the profile. cute label, no cap 🌈
  • string Service β€” the primary service class UUID (if different from the actual profile UUID).
  • string Role β€” for asymmetric profiles that do not have UUIDs available to uniquely identify each side, this parameter lets you specify the precise local role.

Possible values:

  • "client"
  • "server"
  • uint16 Channel β€” the RFCOMM channel number used for client and server UUIDs.

If applicable it will be used in the SDP record as well.

  • uint16 PSM β€” the PSM number used for client and server UUIDs.

If applicable it will be used in the SDP record as well.

  • boolean RequireAuthentication β€” pairing is required before connections will be established.

No devices will be connected if not paired. like, at all 🫢

  • boolean RequireAuthorization β€” request authorization before any connection will be established.
  • boolean AutoConnect β€” in case of a client UUID, this will force connection of the RFCOMM or L2CAP channels when a remote device is connected.
  • string ServiceRecord β€” provide a manual SDP record.
  • uint16 Version β€” profile version (for SDP record).
  • uint16 Features β€” profile features (for SDP record).

πŸ’€ Possible errors

  • org.bluez.Error.InvalidArguments
  • org.bluez.Error.AlreadyExists

🌟 void UnregisterProfile(object profile)

unregisters a profile object that has been previously registered using RegisterProfile. spring cleaning energy 🧚

The object path parameter must match the same value that has been used on registration β€” same value, same path, no improvising ✨

πŸ’€ Possible errors

  • org.bluez.Error.DoesNotExist

okay that's the whole page, you ate that πŸ’– stay iconic, go register some profiles responsibly πŸŽ€πŸ¦‹

sign-off: this gorgeous little doc is from BlueZ, dated October 2023 β€” and the manpage itself answers to the name org.bluez...leManager(5). mwah πŸ’‹
πŸ“¦ where this page comes from