Zephyr API Documentation 4.4.99
A Scalable Open Source RTOS
Loading...
Searching...
No Matches
pbap.h File Reference

Phone Book Access Profile handling. More...

#include <zephyr/kernel.h>
#include <string.h>
#include <errno.h>
#include <stdbool.h>
#include <zephyr/bluetooth/classic/goep.h>

Go to the source code of this file.

Data Structures

struct  bt_pbap_pce_cb
 PBAP PCE (Phone Book Client Equipment) callback operations structure. More...
struct  bt_pbap_pce
 PBAP PCE (Phone Book Client Equipment) structure. More...
struct  bt_pbap_pse_cb
 PBAP PSE (Phone Book Server Equipment) callback operations structure. More...
struct  bt_pbap_pse_rfcomm
 PBAP PSE RFCOMM server structure. More...
struct  bt_pbap_pse_l2cap
 PBAP PSE L2CAP server structure. More...
struct  bt_pbap_pse
 PBAP PSE (Phone Book Server Equipment) structure. More...

Macros

#define BT_PBAP_UUID
 PBAP target UUID for service identification.
#define BT_PBAP_PULL_PHONE_BOOK_TYPE   "x-bt/phonebook"
 OBEX type header for pull phone book operation.
#define BT_PBAP_PULL_VCARD_LISTING_TYPE   "x-bt/vcard-listing"
 OBEX type header for pull vCard listing operation.
#define BT_PBAP_PULL_VCARD_ENTRY_TYPE   "x-bt/vcard"
 OBEX type header for pull vCard entry operation.
#define BT_PBAP_SET_PHONE_BOOK_FLAGS_UP   (BT_OBEX_SETPATH_FLAG_BACKUP | BT_OBEX_SETPATH_FLAG_NO_CREATE)
 Set phone book flags: Navigate up to parent directory.
#define BT_PBAP_SET_PHONE_BOOK_FLAGS_DOWN_OR_ROOT   BT_OBEX_SETPATH_FLAG_NO_CREATE
 Set phone book flags: Navigate down to child directory or to root.

Enumerations

enum  bt_pbap_rsp_code {
  BT_PBAP_RSP_CODE_CONTINUE = BT_OBEX_RSP_CODE_CONTINUE , BT_PBAP_RSP_CODE_OK = BT_OBEX_RSP_CODE_OK , BT_PBAP_RSP_CODE_SUCCESS = BT_OBEX_RSP_CODE_SUCCESS , BT_PBAP_RSP_CODE_BAD_REQ = BT_OBEX_RSP_CODE_BAD_REQ ,
  BT_PBAP_RSP_CODE_UNAUTH = BT_OBEX_RSP_CODE_UNAUTH , BT_PBAP_RSP_CODE_FORBIDDEN = BT_OBEX_RSP_CODE_FORBIDDEN , BT_PBAP_RSP_CODE_NOT_FOUND = BT_OBEX_RSP_CODE_NOT_FOUND , BT_PBAP_RSP_CODE_NOT_ACCEPT = BT_OBEX_RSP_CODE_NOT_ACCEPT ,
  BT_PBAP_RSP_CODE_PRECON_FAIL = BT_OBEX_RSP_CODE_PRECON_FAIL , BT_PBAP_RSP_CODE_NOT_IMPL = BT_OBEX_RSP_CODE_NOT_IMPL , BT_PBAP_RSP_CODE_UNAVAIL = BT_OBEX_RSP_CODE_UNAVAIL
}
 PBAP response codes. More...
enum  bt_pbap_appl_param_order { BT_PBAP_APPL_PARAM_ORDER_INDEXED = 0x00 , BT_PBAP_APPL_PARAM_ORDER_ALPHABETICAL = 0x01 , BT_PBAP_APPL_PARAM_ORDER_PHONETIC = 0x02 }
 PBAP application parameter Order parameter values. More...
enum  bt_pbap_appl_param_search_property { BT_PBAP_APPL_PARAM_SEARCH_PROPERTY_NAME = 0x00 , BT_PBAP_APPL_PARAM_SEARCH_PROPERTY_NUMBER = 0x01 , BT_PBAP_APPL_PARAM_SEARCH_PROPERTY_SOUND = 0x02 }
 PBAP application parameter Search Property parameter values. More...
enum  bt_pbap_appl_param_format { BT_PBAP_APPL_PARAM_FORMAT_2_1 = 0x00 , BT_PBAP_APPL_PARAM_FORMAT_3_0 = 0x01 }
 PBAP application parameter Format parameter values. More...
enum  bt_pbap_appl_param_vcard_selector_operator { BT_PBAP_APPL_PARAM_VCARD_SELECTOR_OPERATOR_OR = 0x00 , BT_PBAP_APPL_PARAM_VCARD_SELECTOR_OPERATOR_AND = 0x01 }
 PBAP application parameter vCard Selector Operator parameter values. More...
enum  bt_pbap_appl_param_reset_new_missed_calls { BT_PBAP_APPL_PARAM_RESET_NEW_MISSED_CALLS = 0x01 }
 PBAP application parameter reset neww missed calls parameter values. More...
enum  bt_pbap_appl_param_property_mask {
  BT_PBAP_APPL_PARAM_PROPERTY_SELECTOR_VERSION = BIT64(0) , BT_PBAP_APPL_PARAM_PROPERTY_SELECTOR_FN = BIT64(1) , BT_PBAP_APPL_PARAM_PROPERTY_SELECTOR_N = BIT64(2) , BT_PBAP_APPL_PARAM_PROPERTY_SELECTOR_PHOTO = BIT64(3) ,
  BT_PBAP_APPL_PARAM_PROPERTY_SELECTOR_BDAY = BIT64(4) , BT_PBAP_APPL_PARAM_PROPERTY_SELECTOR_ADR = BIT64(5) , BT_PBAP_APPL_PARAM_PROPERTY_SELECTOR_LABEL = BIT64(6) , BT_PBAP_APPL_PARAM_PROPERTY_SELECTOR_TEL = BIT64(7) ,
  BT_PBAP_APPL_PARAM_PROPERTY_SELECTOR_EMAIL = BIT64(8) , BT_PBAP_APPL_PARAM_PROPERTY_SELECTOR_MAILER = BIT64(9) , BT_PBAP_APPL_PARAM_PROPERTY_SELECTOR_TZ = BIT64(10) , BT_PBAP_APPL_PARAM_PROPERTY_SELECTOR_GEO = BIT64(11) ,
  BT_PBAP_APPL_PARAM_PROPERTY_SELECTOR_TITLE = BIT64(12) , BT_PBAP_APPL_PARAM_PROPERTY_SELECTOR_ROLE = BIT64(13) , BT_PBAP_APPL_PARAM_PROPERTY_SELECTOR_LOGO = BIT64(14) , BT_PBAP_APPL_PARAM_PROPERTY_SELECTOR_AGENT = BIT64(15) ,
  BT_PBAP_APPL_PARAM_PROPERTY_SELECTOR_ORG = BIT64(16) , BT_PBAP_APPL_PARAM_PROPERTY_SELECTOR_NOTE = BIT64(17) , BT_PBAP_APPL_PARAM_PROPERTY_SELECTOR_REV = BIT64(18) , BT_PBAP_APPL_PARAM_PROPERTY_SELECTOR_SOUND = BIT64(19) ,
  BT_PBAP_APPL_PARAM_PROPERTY_SELECTOR_URL = BIT64(20) , BT_PBAP_APPL_PARAM_PROPERTY_SELECTOR_UID = BIT64(21) , BT_PBAP_APPL_PARAM_PROPERTY_SELECTOR_KEY = BIT64(22) , BT_PBAP_APPL_PARAM_PROPERTY_SELECTOR_NICKNAME = BIT64(23) ,
  BT_PBAP_APPL_PARAM_PROPERTY_SELECTOR_CATEGORIES = BIT64(24) , BT_PBAP_APPL_PARAM_PROPERTY_SELECTOR_PRODID = BIT64(25) , BT_PBAP_APPL_PARAM_PROPERTY_SELECTOR_CLASS = BIT64(26) , BT_PBAP_APPL_PARAM_PROPERTY_SELECTOR_SORT_STRING = BIT64(27) ,
  BT_PBAP_APPL_PARAM_PROPERTY_SELECTOR_X_IRMC_CALL_DATETIME = BIT64(28) , BT_PBAP_APPL_PARAM_PROPERTY_SELECTOR_X_BT_SPEEDDIALKEY = BIT64(29) , BT_PBAP_APPL_PARAM_PROPERTY_SELECTOR_X_BT_UCI = BIT64(30) , BT_PBAP_APPL_PARAM_PROPERTY_SELECTOR_X_BT_UID = BIT64(31) ,
  BT_PBAP_APPL_PARAM_PROPERTY_SELECTOR_PROPRIETARY_FILTER = BIT64(39)
}
 PBAP property bitmask. More...
enum  bt_pbap_appl_param_tag_id {
  BT_PBAP_APPL_PARAM_TAG_ID_ORDER = 0x01 , BT_PBAP_APPL_PARAM_TAG_ID_SEARCH_VALUE = 0x02 , BT_PBAP_APPL_PARAM_TAG_ID_SEARCH_PROPERTY = 0x03 , BT_PBAP_APPL_PARAM_TAG_ID_MAX_LIST_COUNT = 0x04 ,
  BT_PBAP_APPL_PARAM_TAG_ID_LIST_START_OFFSET = 0x05 , BT_PBAP_APPL_PARAM_TAG_ID_PROPERTY_SELECTOR = 0x06 , BT_PBAP_APPL_PARAM_TAG_ID_FORMAT = 0x07 , BT_PBAP_APPL_PARAM_TAG_ID_PHONEBOOK_SIZE = 0x08 ,
  BT_PBAP_APPL_PARAM_TAG_ID_NEW_MISSED_CALLS = 0x09 , BT_PBAP_APPL_PARAM_TAG_ID_PRIMARY_FOLDER_VERSION = 0x0a , BT_PBAP_APPL_PARAM_TAG_ID_SECONDARY_FOLDER_VERSION = 0x0b , BT_PBAP_APPL_PARAM_TAG_ID_VCARD_SELECTOR = 0x0c ,
  BT_PBAP_APPL_PARAM_TAG_ID_DATABASE_IDENTIFIER = 0x0d , BT_PBAP_APPL_PARAM_TAG_ID_VCARD_SELECTOR_OPERATOR = 0x0e , BT_PBAP_APPL_PARAM_TAG_ID_RESET_NEW_MISSED_CALLS = 0x0f , BT_PBAP_APPL_PARAM_TAG_ID_SUPPORTED_FEATURES = 0x10
}
 PBAP application parameter tag IDs. More...
enum  bt_pbap_supported_feature {
  BT_PBAP_SUPPORTED_FEATURE_DOWNLOAD = BIT(0) , BT_PBAP_SUPPORTED_FEATURE_BROWSING = BIT(1) , BT_PBAP_SUPPORTED_FEATURE_DATABASE_IDENTIFIER = BIT(2) , BT_PBAP_SUPPORTED_FEATURE_FOLDER_VERSION_COUNTERS = BIT(3) ,
  BT_PBAP_SUPPORTED_FEATURE_VCARD_SELECTOR = BIT(4) , BT_PBAP_SUPPORTED_FEATURE_ENHANCED_MISSED_CALLS = BIT(5) , BT_PBAP_SUPPORTED_FEATURE_UCI_VCARD_PROPERTY = BIT(6) , BT_PBAP_SUPPORTED_FEATURE_UID_VCARD_PROPERTY = BIT(7) ,
  BT_PBAP_SUPPORTED_FEATURE_CONTACT_REFERENCING = BIT(8) , BT_PBAP_SUPPORTED_FEATURE_DEFAULT_CONTACT_IMAGE = BIT(9)
}
 PBAP supported features bitmask. More...
enum  bt_pbap_supported_repositories { BT_PBAP_SUPPORTED_REPOSITORIES_LOCAL_PHONE_BOOK = BIT(0) , BT_PBAP_SUPPORTED_REPOSITORIES_SIM = BIT(1) , BT_PBAP_SUPPORTED_REPOSITORIES_SPEED_DIAL = BIT(2) , BT_PBAP_SUPPORTED_REPOSITORIES_FAVORITES = BIT(3) }
 PBAP supported repositories bitmask. More...

Functions

int bt_pbap_pce_rfcomm_connect (struct bt_conn *conn, struct bt_pbap_pce *pbap_pce, struct bt_pbap_pce_cb *cb, uint8_t channel)
 PCE Connect to PSE over RFCOMM transport.
int bt_pbap_pce_rfcomm_disconnect (struct bt_pbap_pce *pbap_pce)
 Disconnect PBAP PCE RFCOMM transport.
int bt_pbap_pce_l2cap_connect (struct bt_conn *conn, struct bt_pbap_pce *pbap_pce, struct bt_pbap_pce_cb *cb, uint16_t psm)
 Connect PBAP PCE client over L2CAP transport.
int bt_pbap_pce_l2cap_disconnect (struct bt_pbap_pce *pbap_pce)
 Disconnect PBAP PCE L2CAP transport.
struct net_bufbt_pbap_pce_create_pdu (struct bt_pbap_pce *pbap_pce, struct net_buf_pool *pool)
 Allocate buffer from pool with reserved headroom for PBAP PCE.
int bt_pbap_pce_connect (struct bt_pbap_pce *pbap_pce, uint16_t mopl, struct net_buf *buf)
 Establish PBAP protocol connection from PCE client to PSE server.
int bt_pbap_pce_disconnect (struct bt_pbap_pce *pbap_pce, struct net_buf *buf)
 Disconnect PBAP connection from PBAP client PCE.
int bt_pbap_pce_pull_phone_book (struct bt_pbap_pce *pbap_pce, struct net_buf *buf)
 Pull phone book from PBAP server PSE.
int bt_pbap_pce_pull_vcard_listing (struct bt_pbap_pce *pbap_pce, struct net_buf *buf)
 Pull vCard listing from PBAP server PSE.
int bt_pbap_pce_pull_vcard_entry (struct bt_pbap_pce *pbap_pce, struct net_buf *buf)
 Pull specific vCard entry from PBAP server PSE.
int bt_pbap_pce_set_phone_book (struct bt_pbap_pce *pbap_pce, uint8_t flags, struct net_buf *buf)
 Set current phone book on PBAP server PSE.
int bt_pbap_pce_abort (struct bt_pbap_pce *pbap_pce, struct net_buf *buf)
 Abort current operation on PBAP server PSE.
struct net_bufbt_pbap_pse_create_pdu (struct bt_pbap_pse *pbap_pse, struct net_buf_pool *pool)
 Allocate buffer from pool with reserved headroom for PBAP PSE.
int bt_pbap_pse_rfcomm_register (struct bt_pbap_pse_rfcomm *server)
 Register PBAP PSE RFCOMM server.
int bt_pbap_pse_l2cap_register (struct bt_pbap_pse_l2cap *server)
 Register PBAP PSE L2CAP server.
int bt_pbap_pse_register (struct bt_pbap_pse *pbap_pse, struct bt_pbap_pse_cb *cb)
 Register PBAP PSE instance.
int bt_pbap_pse_connect_rsp (struct bt_pbap_pse *pbap_pse, uint16_t mopl, uint8_t rsp_code, struct net_buf *buf)
 Send connect response from PBAP PSE.
int bt_pbap_pse_disconnect_rsp (struct bt_pbap_pse *pbap_pse, uint8_t rsp_code, struct net_buf *buf)
 Send disconnect response from PBAP PSE.
int bt_pbap_pse_pull_phone_book_rsp (struct bt_pbap_pse *pbap_pse, uint8_t rsp_code, struct net_buf *buf)
 Send pull phone book response from PBAP PSE.
int bt_pbap_pse_pull_vcard_listing_rsp (struct bt_pbap_pse *pbap_pse, uint8_t rsp_code, struct net_buf *buf)
 Send pull vCard listing response from PBAP PSE.
int bt_pbap_pse_pull_vcard_entry_rsp (struct bt_pbap_pse *pbap_pse, uint8_t rsp_code, struct net_buf *buf)
 Send pull vCard entry response from PBAP PSE.
int bt_pbap_pse_set_phone_book_rsp (struct bt_pbap_pse *pbap_pse, uint8_t rsp_code, struct net_buf *buf)
 Send set phone book response from PBAP PSE.
int bt_pbap_pse_abort_rsp (struct bt_pbap_pse *pbap_pse, uint8_t rsp_code, struct net_buf *buf)
 Send abort response from PBAP PSE.
int bt_pbap_calculate_nonce (const uint8_t *pwd, uint8_t nonce[BT_OBEX_CHALLENGE_TAG_NONCE_LEN])
 Calculate authentication nonce for PBAP challenge.
int bt_pbap_calculate_rsp_digest (const uint8_t *pwd, const uint8_t nonce[BT_OBEX_CHALLENGE_TAG_NONCE_LEN], uint8_t rsp_digest[BT_OBEX_RESPONSE_TAG_REQ_DIGEST_LEN])
 Calculate response digest for PBAP authentication.
int bt_pbap_verify_authentication (uint8_t nonce[BT_OBEX_CHALLENGE_TAG_NONCE_LEN], uint8_t rsp_digest[BT_OBEX_RESPONSE_TAG_REQ_DIGEST_LEN], const uint8_t *pwd)
 Verify authentication response.

Detailed Description

Phone Book Access Profile handling.