org.bluez...ookAccess(5)

πŸ’– NAME πŸ’–

Hey bestie! Welcome to the org.bluez...ookAccess(5) manual page β€” it lives in Linux System Administration and it's the documentation for the BlueZ D-Bus OBEX PhonebookAccess API. The Name section spells the whole thing out as org.bluez.obex.PhonebookAccess, and we're about to get into every single phonebook-over-Bluetooth detail. πŸ¦‹

πŸ¦‹ INTERFACE πŸ¦‹

  • Service β€” org.bluez.obex
  • Interface β€” org.bluez.obex.PhonebookAccess1
  • Object path β€” [Session object path]

✨ METHODS ✨

Okay, method time. These are the D-Bus methods on org.bluez.obex.PhonebookAccess1, and they are lowkey giving β€œI have your contacts and I know how to use them” energy. πŸ’…

🫢 void Select(string location, string phonebook)

Selects the phonebook object for the other operations. Bestie, this is the prerequisite β€” call it before all the other operations.

⚠️ Do this one first. It's literally the setup step for everything else. πŸ’–
  • Possible location values:
    • "int", "internal" (default) β€” Store in the Internal memory.
    • "sim{#}" β€” Store in the sim number.
  • Possible phonebook values:
    • "pb" β€” Store as contact.
    • "ich" β€” Store as incoming call.
    • "och" β€” Store as outgoing call.
    • "mch" β€” Store as missing call.
    • "cch" β€” Store as a combination of incoming, outgoing and missing call.
    • "spd" β€” Store as speed dials entry ( only for "internal" ).
    • "fav" β€” Store as favorites entry ( only for "internal" ).
  • Possible errors:
    • org.bluez.obex.Error.InvalidArguments
    • org.bluez.obex.Error.Failed

πŸŽ€ object, dict PullAll(string targetfile, dict filters)

Returns the entire phonebook object from the PSE server in plain string with vcard format, and stores it in a local file.

If an empty target file is given, a name will be automatically generated for the temporary file. Cute, right? The returned path represents the newly created transfer, which should be used to find out if the content has been successfully transferred or if the operation fails.

The properties of this transfer are also returned along with the object path, to avoid a call to GetProperties. See org.bluez.obex.Transfer(5) for the possible list of properties. πŸ‘‘

  • Possible filters:
    • string Format β€” Items vcard format.
      • Possible values:
        • "vcard21" (default)
        • "vcard30"
    • string Order β€” Items order.
      • Possible values:
        • ""
        • "indexed"
        • "alphanumeric"
        • "phonetic"
    • uint16 Offset (default 0) β€” Offset of the first item.
    • uint16 MaxCount (default 65535) β€” Maximum number of items.
    • array{string} Fields (default all fields) β€” Item vcard fields. See ListFilterFields() for possible values.
    • array{string} FilterAll β€” Filter items by fields using AND logic, cannot be used together with FilterAny. See ListFilterFields() for possible values.
    • array{string} FilterAny β€” Filter items by fields using OR logic, cannot be used together with FilterAll. See ListFilterFields() for possible values.
    • bool ResetNewMissedCalls β€” Reset new the missed calls items, shall only be used for folders mch and cch.
  • Possible errors:
    • org.bluez.obex.Error.InvalidArguments
    • org.bluez.obex.Forbidden

🌸 array{string vcard, string name} List(dict filters)

Returns array of vcard-listing data where every entry consists of a pair of strings containing the vcard handle and the contact name. It's giving little contact-card lineup energy. 🫢

For example, an entry pairs "1.vcf" with "John".

  • Possible filters:
    • string Order β€” Contact order.
      • Possible values:
        • ""
        • "indexed"
        • "alphanumeric"
        • "phonetic"
    • uint16 Offset β€” Start offset.
    • uint16 MaxCount β€” Maximum number of contacts.
  • Possible errors:
    • org.bluez.obex.Error.InvalidArguments
    • org.bluez.obex.Forbidden

🧚 object, dict Pull(string vcard, string targetfile, dict filters)

Retrieves the vcard in the current phonebook object and stores it in a local file.

If an empty target file is given, a name will be automatically generated for the temporary file. The returned path represents the newly created transfer, which should be used to find out if the content has been successfully transferred or if the operation fails.

The properties of this transfer are also returned along with the object path, to avoid a call to GetProperties. See org.bluez.obex.Transfer(5) for the possible list of properties. ✨

  • Possible filters:
    • string Format β€” Contact data format.
      • Possible values:
        • ""
        • "vcard21"
        • "vcard30"
    • array{string} Fields β€” See ListFilterFields() for possible values.
  • Possible errors:
    • org.bluez.obex.Error.InvalidArguments
    • org.bluez.obex.Error.Forbidden
    • org.bluez.obex.Error.Failed

πŸ”₯ array{string vcard, string name} Search(string field, string value, dict filters)

Searches for entries matching the given condition and returns an array of vcard-listing data where every entry consists of a pair of strings containing the vcard handle and the contact name. Main character search behavior, honestly. πŸ’…

  • Possible field values:
    • "name" (default) β€” Search by name.
    • "number" β€” Search by number.
    • "sound" β€” Search by sound.
  • value β€” the string value to search for.
  • Possible filters:
    • string Order β€” Contact order.
      • Possible values:
        • ""
        • "indexed"
        • "alphanumeric"
        • "phonetic"
    • uint16 Offset β€” Start offset.
    • uint16 MaxCount β€” Maximum number of contacts.
  • Possible errors:
    • org.bluez.obex.Error.InvalidArguments
    • org.bluez.obex.Error.Forbidden
    • org.bluez.obex.Error.Failed

πŸ’œ uint16 GetSize()

Returns the number of entries in the selected phonebook object that are actually used (i.e. indexes that correspond to non-NULL entries). No fake entries, no ghost contacts β€” just the real ones. πŸŽ€

  • Possible errors:
    • org.bluez.obex.Error.Forbidden
    • org.bluez.obex.Error.Failed

🌈 void UpdateVersion()

Attempts to update PrimaryCounter and SecondaryCounter. Get those counters refreshed, bestie. ⭐

  • Possible errors:
    • org.bluez.obex.Error.NotSupported
    • org.bluez.obex.Error.Forbidden
    • org.bluez.obex.Error.Failed

πŸ“ array{string} ListFilterFields()

Returns all Available fields that can be used in Fields filter. This is the field-name menu, and it is long. Obsessed. πŸ‘‘

  • Possible return:
    • "VERSION"
    • "FN"
    • "N"
    • "PHOTO"
    • "BDAY"
    • "ADR"
    • "LABEL"
    • "TEL"
    • "EMAIL"
    • "MAILER"
    • "TZ"
    • "GEO"
    • "TITLE"
    • "ROLE"
    • "LOGO"
    • "AGENT"
    • "ORG"
    • "NOTE"
    • "REV"
    • "SOUND"
    • "URL"
    • "UID"
    • "KEY"
    • "NICKNAME"
    • "CATEGORIES"
    • "PROID"
    • "CLASS"
    • "SORT-STRING"
    • "X-IRMC-CALL-DATETIME"
    • "X-BT-SPEEDDIALKEY"
    • "X-BT-UCI"
    • "X-BT-UID"
    • "BIT-{#}"
  • Possible errors: None

πŸ‘‘ PROPERTIES πŸ‘‘

πŸŽ€ string Folder [readonly]

Current folder.


πŸ¦‹ string DatabaseIdentifier [readonly, optional]

128 bits persistent database identifier.

  • Possible values:
    • 32-character hexadecimal such as A1A2A3A4B1B2C1C2D1D2E1E2E3E4E5E6

🌟 string PrimaryCounter [readonly, optional]

128 bits primary version counter.

  • Possible values:
    • 32-character hexadecimal such as A1A2A3A4B1B2C1C2D1D2E1E2E3E4E5E6

πŸ’« string SecondaryCounter [readonly, optional]

128 bits secondary version counter.

  • Possible values:
    • 32-character hexadecimal such as A1A2A3A4B1B2C1C2D1D2E1E2E3E4E5E6

🧸 bool FixedImageSize [readonly, optional]

Indicate support for fixed image size.

  • Possible values:
    • True if image is JPEG 300x300 pixels otherwise False.

BlueZ, October 2023 β€” that's the source/version and date at the bottom, bestie. The footer also says org.bluez...ookAccess(5). Now go transfer those phonebooks with main character energy πŸ’…βœ¨

πŸ“¦ where this page comes from