Linux bluetooth development
 help / color / mirror / Atom feed
* [PATCH v1 00/18] obexd/pbap: Update PSE support from PBAP 1.1 to 1.2
@ 2026-11-04  8:34 Jinwang Li
  2026-11-04  8:34 ` [PATCH v1 01/18] obexd/pbap: Fix crash counting vCards in dummy backend Jinwang Li
                   ` (17 more replies)
  0 siblings, 18 replies; 25+ messages in thread
From: Jinwang Li @ 2026-11-04  8:34 UTC (permalink / raw)
  To: linux-bluetooth
  Cc: cheng.jiang, quic_chezhou, wei.deng, shuai.zhang, mengshi.wu,
	jinwang.li, xiuzhuo.shang

This series updates the obexd PBAP Phone Book Server Equipment (PSE)
from PBAP 1.1 to PBAP 1.2, following the PBAP 1.2.3 specification.

It adds PbapSupportedFeatures negotiation, Database Identifier and
primary and secondary Folder Version Counter response parameters, and
vCardSelector filtering for phonebook and vCard listing requests. It
also advertises Contact Image Default Format and updates the SDP profile
version to 0x0102.

The dummy backend persists the Database Identifier and folder counters.
The ebook and Tracker backends report zero values to indicate that these
values are not persistent. vCardSelector is implemented in all three
backends.

The series also fixes phonebook backend and request handling issues,
refreshes the listing cache for each request, and adds NewMissedCalls to
vCard listing responses. NewMissedCalls is limited to mch responses.

Testing was performed on the OE-Core wrynose branch (Yocto Project 6.0),
together with prerequisite patches that have already been merged
upstream. The dummy, ebook, and Tracker backends were all functionally
tested. The dummy backend was also tested against the PBAP PSE PTS test
cases covered by this series.

Patch overview:

 1. Skip a missing dummy vCard callback when counting missed calls.
 2. Keep Tracker contact grouping state within each request.
 3. Include Tracker telephone numbers bound directly to contacts.
 4. Reject an empty PullvCardListing Name in the telecom folder.
 5. Omit PHOTO from dummy responses when PropertySelector excludes it.
 6. Rebuild the cache for each vCard listing request.
 7. Restrict NewMissedCalls to the first packet of mch responses.
 8. Pass backend missed call counts to vCard listing responses.
 9. Separate vCard entry response handling from phonebook responses.
10. Make CONNECT application parameters available to service plugins.
11. Parse and negotiate PbapSupportedFeatures during CONNECT.
12. Generate and persist the dummy Database Identifier.
13. Include Database Identifier in phonebook, listing and entry
    responses.
14. Maintain primary and secondary folder version counters in dummy.
15. Include negotiated folder version counters in phonebook and listing
    responses.
16. Apply vCardSelector filtering, counting and pagination in all
    backends.
17. Advertise Contact Image Default Format in the PSE feature mask.
18. Update the SDP supported features and PBAP profile version.

Jinwang Li (18):
  obexd/pbap: Fix crash counting vCards in dummy backend
  obexd/pbap: Fix Tracker contact grouping across requests
  obexd/pbap: Include directly bound Tracker telephone numbers
  obexd/pbap: Reject PullvCardListing without Name in telecom folder
  obexd/pbap: Fix unselected PHOTO in dummy responses
  obexd/pbap: Refresh cache for each vCard listing
  obexd/pbap: Limit NewMissedCalls to mch responses
  obexd/pbap: Add NewMissedCalls to vCard listing responses
  obexd/pbap: Separate vCard entry response handling
  obexd: Parse application parameters in CONNECT request
  obexd/pbap: Parse PbapSupportedFeatures in connect request
  obexd/pbap: Add persistent database identifier
  obexd/pbap: Include database identifier in responses
  obexd/pbap: Add folder version counters
  obexd/pbap: Include folder version counters in responses
  obexd/pbap: Add vCardSelector support
  obexd/pbap: Advertise Contact Image Default Format
  obexd/pbap: Update SDP and PBAP version

 Makefile.obexd                     |   2 +
 obexd/plugins/pbap.c               | 289 ++++++++++++----
 obexd/plugins/phonebook-dummy.c    | 529 +++++++++++++++++++++++++++--
 obexd/plugins/phonebook-ebook.c    |  86 +++--
 obexd/plugins/phonebook-metadata.c | 257 ++++++++++++++
 obexd/plugins/phonebook-metadata.h |  52 +++
 obexd/plugins/phonebook-tracker.c  | 367 ++++++++++++--------
 obexd/plugins/phonebook.c          |   8 +
 obexd/plugins/phonebook.h          |  84 ++++-
 obexd/plugins/vcard.c              |  69 ++++
 obexd/plugins/vcard.h              |   2 +
 obexd/src/obex.c                   |  42 ++-
 src/profile.c                      |   4 +-
 13 files changed, 1509 insertions(+), 282 deletions(-)
 create mode 100644 obexd/plugins/phonebook-metadata.c
 create mode 100644 obexd/plugins/phonebook-metadata.h


base-commit: 7a713dc0c1b7550bb16b67a7b0f8298e04a807b8
-- 
2.34.1


^ permalink raw reply	[flat|nested] 25+ messages in thread
* [PATCH BlueZ v2 01/20] obexd/pbap: Fix PRODID property name
@ 2026-11-11  9:44 Jinwang Li
  2026-11-11 12:15 ` obexd/pbap: Update PSE support from PBAP 1.1 to 1.2 bluez.test.bot
  0 siblings, 1 reply; 25+ messages in thread
From: Jinwang Li @ 2026-11-11  9:44 UTC (permalink / raw)
  To: linux-bluetooth, luiz.dentz
  Cc: cheng.jiang, wei.deng, shuai.zhang, jinwang.li, xiuzhuo.shang

Use the standard PRODID spelling in the PBAP property tables and filter
mask so PropertySelector and vCardSelector bit 25 match the property.

Fixes: 3a1e6b3e8dc1 ("obexd: Implement Filter related function for PBAP client")
Fixes: 4f805f5e09f3 ("obexd: Add EVCard filter for PullPhoneBook")
Fixes: c8e98708ea3a ("obexd: Add support to all fields required by vCard 3.0")
Assisted-by: Claude:claude-sonnet-5-5
---
 obexd/client/pbap.c             | 2 +-
 obexd/plugins/phonebook-ebook.c | 2 +-
 obexd/plugins/vcard.c           | 2 +-
 3 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/obexd/client/pbap.c b/obexd/client/pbap.c
index 1970d3357..fbd843a4a 100644
--- a/obexd/client/pbap.c
+++ b/obexd/client/pbap.c
@@ -107,7 +107,7 @@ static const char *filter_list[] = {
 	"KEY",
 	"NICKNAME",
 	"CATEGORIES",
-	"PROID",
+	"PRODID",
 	"CLASS",
 	"SORT-STRING",
 	"X-IRMC-CALL-DATETIME",
diff --git a/obexd/plugins/phonebook-ebook.c b/obexd/plugins/phonebook-ebook.c
index beb72b22b..d8621b8f9 100644
--- a/obexd/plugins/phonebook-ebook.c
+++ b/obexd/plugins/phonebook-ebook.c
@@ -81,7 +81,7 @@ static const char *attribute_mask[] = {
 		"KEY",
 		"NICKNAME",
 /* 24 */	"CATEGORIES",
-		"PROID",
+		"PRODID",
 		"CLASS",
 		"SORT-STRING",
 /* 28 */	"X-IRMC-CALL-DATETIME",
diff --git a/obexd/plugins/vcard.c b/obexd/plugins/vcard.c
index 0a727b729..3827602cc 100644
--- a/obexd/plugins/vcard.c
+++ b/obexd/plugins/vcard.c
@@ -54,7 +54,7 @@
 #define FILTER_KEY (1 << 22)
 #define FILTER_NICKNAME (1 << 23)
 #define FILTER_CATEGORIES (1 << 24)
-#define FILTER_PROID (1 << 25)
+#define FILTER_PRODID (1 << 25)
 #define FILTER_CLASS (1 << 26)
 #define FILTER_SORT_STRING (1 << 27)
 #define FILTER_X_IRMC_CALL_DATETIME (1 << 28)
-- 
2.34.1


^ permalink raw reply related	[flat|nested] 25+ messages in thread

end of thread, other threads:[~2026-11-11 12:15 UTC | newest]

Thread overview: 25+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-11-04  8:34 [PATCH v1 00/18] obexd/pbap: Update PSE support from PBAP 1.1 to 1.2 Jinwang Li
2026-11-04  8:34 ` [PATCH v1 01/18] obexd/pbap: Fix crash counting vCards in dummy backend Jinwang Li
2026-11-04 16:55   ` obexd/pbap: Update PSE support from PBAP 1.1 to 1.2 bluez.test.bot
2026-11-05 15:37     ` Luiz Augusto von Dentz
2026-11-09  9:34       ` Jinwang Li
2026-11-09 14:31         ` Luiz Augusto von Dentz
2026-11-10  2:00           ` Jinwang Li
2026-11-04  8:34 ` [PATCH v1 02/18] obexd/pbap: Fix Tracker contact grouping across requests Jinwang Li
2026-11-04  8:34 ` [PATCH v1 03/18] obexd/pbap: Include directly bound Tracker telephone numbers Jinwang Li
2026-11-04  8:34 ` [PATCH v1 04/18] obexd/pbap: Reject PullvCardListing without Name in telecom folder Jinwang Li
2026-11-04  8:34 ` [PATCH v1 05/18] obexd/pbap: Fix unselected PHOTO in dummy responses Jinwang Li
2026-11-04  8:34 ` [PATCH v1 06/18] obexd/pbap: Refresh cache for each vCard listing Jinwang Li
2026-11-04  8:34 ` [PATCH v1 07/18] obexd/pbap: Limit NewMissedCalls to mch responses Jinwang Li
2026-11-04  8:34 ` [PATCH v1 08/18] obexd/pbap: Add NewMissedCalls to vCard listing responses Jinwang Li
2026-11-04  8:34 ` [PATCH v1 09/18] obexd/pbap: Separate vCard entry response handling Jinwang Li
2026-11-04  8:34 ` [PATCH v1 10/18] obexd: Parse application parameters in CONNECT request Jinwang Li
2026-11-04  8:34 ` [PATCH v1 11/18] obexd/pbap: Parse PbapSupportedFeatures in connect request Jinwang Li
2026-11-04  8:34 ` [PATCH v1 12/18] obexd/pbap: Add persistent database identifier Jinwang Li
2026-11-04  8:34 ` [PATCH v1 13/18] obexd/pbap: Include database identifier in responses Jinwang Li
2026-11-04  8:34 ` [PATCH v1 14/18] obexd/pbap: Add folder version counters Jinwang Li
2026-11-04  8:34 ` [PATCH v1 15/18] obexd/pbap: Include folder version counters in responses Jinwang Li
2026-11-04  8:34 ` [PATCH v1 16/18] obexd/pbap: Add vCardSelector support Jinwang Li
2026-11-04  8:34 ` [PATCH v1 17/18] obexd/pbap: Advertise Contact Image Default Format Jinwang Li
2026-11-04  8:34 ` [PATCH v1 18/18] obexd/pbap: Update SDP and PBAP version Jinwang Li
  -- strict thread matches above, loose matches on Subject: below --
2026-11-11  9:44 [PATCH BlueZ v2 01/20] obexd/pbap: Fix PRODID property name Jinwang Li
2026-11-11 12:15 ` obexd/pbap: Update PSE support from PBAP 1.1 to 1.2 bluez.test.bot

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox