PBAP PICS for the PTS tool.

PTS version: 5.0

* - different than PTS defaults
# - not yet implemented/supported

M - mandatory
O - optional

		Major Profile Version (X.Y)
-------------------------------------------------------------------------------
Parameter Name	Selected	Description
-------------------------------------------------------------------------------
TSPC_PBAP_0_1	False		Role: PBAP 1.0 (C.1)
TSPC_PBAP_0_2	True (*)	Role: PBAP 1.1 (C.1)
TSPC_PBAP_0_3	False (*)	Role: PBAP 1.2 (C.1)
-------------------------------------------------------------------------------
C.1: Mandatory to support one and only one major profile version.
-------------------------------------------------------------------------------


		Roles
-------------------------------------------------------------------------------
Parameter Name	Selected	Description
-------------------------------------------------------------------------------
TSPC_PBAP_1_1	False		Role: PCE (C.1)
TSPC_PBAP_1_2	True (*)	Role: PSE (C.1)
-------------------------------------------------------------------------------
C1: It is mandatory to support at least one of the defined roles.
-------------------------------------------------------------------------------


		Supported features (PCE)
-------------------------------------------------------------------------------
Parameter Name	Selected	Description
-------------------------------------------------------------------------------
TSPC_PBAP_2_1	False (*)	PCE: Phone Book Download (C.1)
TSPC_PBAP_2_2	False (*)	PCE: Phone Book Browsing (C.1)
TSPC_PBAP_2_3	False (*)	PCE: Session Management (M)
TSPC_PBAP_2_4	False		PCE: Able to Request Size of the Phonebook (O)
TSPC_PBAP_2_5	False		PCE: Database Identifier (C.2)
TSPC_PBAP_2_6	False		PCE: Folder Version Counters (C.2)
TSPC_PBAP_2_7	False		PCE: vCard Selecting (C.2)
TSPC_PBAP_2_7a	False		PCE: Able to send vCardSelector (C.2)
TSPC_PBAP_2_7b	False		PCE: Able to send vCardSelectorOperator (C.2)
TSPC_PBAP_2_8	False (*)	PCE: Enhanced Missed Calls (C.4)
TSPC_PBAP_2_8a	False (*)	PCE: Able to reset the missed Calls (C.2)
TSPC_PBAP_2_9	False		PCE: X-BT-UCI vCard Field (C.2)
TSPC_PBAP_2_9a	False		PCE: Able to request X-BT-UCI Field (C.2)
TSPC_PBAP_2_10	False		PCE: X-BT-UID vCard Field (C.2)
TSPC_PBAP_2_10a	False		PCE: Referencing Contacts (C.2)
TSPC_PBAP_2_12	False		PCE: Contact Image Default Format (C.2)
TSPC_PBAP_2_12a	False		PCE: Able to request Contact Images (C.2)
TSPC_PBAP_2_13	False		PCE: Supported Phonebook Objects (C.3)
TSPC_PBAP_2_13a	False (*)	PCE: Telecom/pb (C.3)
TSPC_PBAP_2_13b	False		PCE: Telecom/ich (C.3)
TSPC_PBAP_2_13c	False		PCE: Telecom/och (C.3)
TSPC_PBAP_2_13d	False (*)	PCE: Telecom/mch (C.3)
TSPC_PBAP_2_13e	False (*)	PCE: Telecom/cch (C.3)
TSPC_PBAP_2_13f	False		PCE: Telecom/spd (C.3)
TSPC_PBAP_2_13g	False		PCE: Telecom/fav (C.3)
TSPC_PBAP_2_13h	False		PCE: SIM1/Telecom/pb (C.3)
TSPC_PBAP_2_13i	False		PCE: SIM1/Telecom/ich (C.3)
TSPC_PBAP_2_13j	False		PCE: SIM1/Telecom/och (C.3)
TSPC_PBAP_2_13k	False		PCE: SIM1/Telecom/mch (C.3)
TSPC_PBAP_2_13l	False		PCE: SIM1/Telecom/cch (C.3)
-------------------------------------------------------------------------------
C.1: It is mandatory to support at least one of the defined features.
C.2: Optional if TSPC_PBAP_0_3 (PBAP 1.2) is supported, otherwise Excluded.
C.3: Mandatory to support at least one of the listed phonebook objects .
C.4: Optional if TSPC_PBAP_0_3 (PBAP 1.2) and any of the mch or cch folders
	(13d,13e,13k,13l) are supported, otherwise Excluded.
-------------------------------------------------------------------------------


		Supported Phone Book Download functions (PCE)
-------------------------------------------------------------------------------
Parameter Name	Selected	Description
-------------------------------------------------------------------------------
TSPC_PBAP_3_1	False (*)	PCE: Pull Phone Book (C.1)
-------------------------------------------------------------------------------
C1: Mandatory for PCE if Phone Book Download (TSPC_PBAP_2_1) is supported,
	otherwise excluded.
-------------------------------------------------------------------------------


		Supported Phone Book Browsing functions (PCE)
-------------------------------------------------------------------------------
Parameter Name	Selected	Description
-------------------------------------------------------------------------------
TSPC_PBAP_4_1	False (*)	PCE: Set Phone Book (C.1)
TSPC_PBAP_4_2	False (*)	PCE: Pull vCard Listing (C.1)
TSPC_PBAP_4_3	False (*)	PCE: Pull vCard Entry (C.1)
-------------------------------------------------------------------------------
C1: Mandatory for PCE if Phone Book Browsing TSPC_PBAP_2_2 is supported,
	otherwise excluded.
-------------------------------------------------------------------------------


		Used vCard formats (PCE)
-------------------------------------------------------------------------------
Parameter Name	Selected	Description
-------------------------------------------------------------------------------
TSPC_PBAP_5_1	False (*)	PCE: vCard 2.1 (C.1)
TSPC_PBAP_5_2	False (*)	PCE: vCard 3.0 (C.1)
-------------------------------------------------------------------------------
C1: It is mandatory to support at least one of the defined versions if PCE
	supported.
-------------------------------------------------------------------------------


		OBEX Functions for PCE
-------------------------------------------------------------------------------
Parameter Name	Selected	Description
-------------------------------------------------------------------------------
TSPC_PBAP_6_1	False (*)	PCE: Connect (M)
TSPC_PBAP_6_2	False (*)	PCE: Disconnect (M)
TSPC_PBAP_6_3	False (*)	PCE: Get (M)
TSPC_PBAP_6_4	False (*)	PCE: Abort (M)
TSPC_PBAP_6_5	False (*)	PCE: SetPath (C.1)
TSPC_PBAP_6_6	False		PCE: Support for OBEX authentication initiation
					(C.2)
-------------------------------------------------------------------------------
C.1: Mandatory if TSPC_PBAP_2_2 (Phone Book Browsing) is supported,
	otherwise Excluded.
C.2: Optional to support initiation if TSPC_PBAP_0_1 (PBAP 1.0) or
	TSPC_PBAP_0_2 (PBAP 1.1) is supported, otherwise Excluded.
-------------------------------------------------------------------------------


		PCE OBEX Header Support
-------------------------------------------------------------------------------
Parameter Name	Selected	Description
-------------------------------------------------------------------------------
TSPC_PBAP_7_1	False (*)	PCE: Name (M)
TSPC_PBAP_7_2	False (*)	PCE: Type (M)
TSPC_PBAP_7_3	False (*)	PCE: Body (M)
TSPC_PBAP_7_4	False (*)	PCE: End of Body (M)
TSPC_PBAP_7_5	False (*)	PCE: Target (M)
TSPC_PBAP_7_6	False (*)	PCE: Who (M)
TSPC_PBAP_7_7	False (*)	PCE: Connection ID (M)
TSPC_PBAP_7_8	False (*)	PCE: Authentication Challenge (M)
TSPC_PBAP_7_9	False (*)	PCE: Authentication Response (M)
TSPC_PBAP_7_10	False (*)	PCE: Application Parameters (M)
TSPC_PBAP_7_11	False		PCE: Single Response Mode (C.1)
TSPC_PBAP_7_12	False		PCE: Single Response Mode Parameter
					(ability to parse) (C.1)
TSPC_PBAP_7_13	False		PCE: Single Response Mode Parameter
					(ability to send) (C.1)
-------------------------------------------------------------------------------
C.1: Mandatory if TSPC_PBAP_0_3 (PBAP 1.2) is supported, otherwise Excluded.
C.2: Optional if TSPC_PBAP_0_3 (PBAP 1.2) is supported, otherwise Excluded.
-------------------------------------------------------------------------------


		OBEX Error Codes for PCE
-------------------------------------------------------------------------------
Parameter Name	Selected	Description
-------------------------------------------------------------------------------
TSPC_PBAP_8_1	False (*)	PCE: Bad Request (M)
TSPC_PBAP_8_2	False (*)	PCE: Not Implemented (M)
TSPC_PBAP_8_3	False (*)	PCE: Unauthorized (M)
TSPC_PBAP_8_4	False (*)	PCE: Precondition Failed (M)
TSPC_PBAP_8_5	False (*)	PCE: Not Found (M)
TSPC_PBAP_8_6	False (*)	PCE: Not Acceptable (M)
TSPC_PBAP_8_7	False (*)	PCE: Service Unavailable (M)
TSPC_PBAP_8_8	False (*)	PCE: Forbidden (M)
-------------------------------------------------------------------------------


		Supported features ( PSE )
-------------------------------------------------------------------------------
Parameter Name	Selected	Description
-------------------------------------------------------------------------------
TSPC_PBAP_9_1	True		PSE: Phone Book Download (M)
TSPC_PBAP_9_2	True		PSE: Phone Book Browsing (M)
TSPC_PBAP_9_3	True		PSE: Session Management (M)
TSPC_PBAP_9_4	True		PSE: Able to request the size of the Phonebook
					(M)
TSPC_PBAP_9_5	False		PSE: Database Identifier (C.1)
TSPC_PBAP_9_5a	False		PSE: Able to keep a persistent Database
					Identifier (C.2)
TSPC_PBAP_9_5b	False		PSE: Able to regenerate a Database Identifier
					(C.2)
TSPC_PBAP_9_6	False		PSE: Folder Version Counters (C.1)
TSPC_PBAP_9_6a	False		PSE: Able to Insert or Remove Entries (C.2)
TSPC_PBAP_9_6b	False		PSE: Able to Modify contact primary Fields (C.2)
TSPC_PBAP_9_6c	False		PSE: Able to Modify contact secondary Fields
					(C.2)
TSPC_PBAP_9_7	False (*)	PSE: vCard Selecting (C.1)
TSPC_PBAP_9_8	False (*)	PSE: Enhanced Missed Calls (C.4)
TSPC_PBAP_9_9	False		PSE: X-BT-UCI vCard Field (C.2)
TSPC_PBAP_9_10	False		PSE: X-BT-UID vCard Field (C.2)
TSPC_PBAP_9_10a	False		PSE: Referencing Contacts (C.3)
TSPC_PBAP_9_12	False		PSE: Contact Image Default Format (C.1)
TSPC_PBAP_9_12a	False		PSE: Able to request Contact Images (C.2)
TSPC_PBAP_9_13	False		PSE: Supported Phonebook Objects
TSPC_PBAP_9_13a	False (*)	PSE: Telecom/pb (M)
TSPC_PBAP_9_13b	False		PSE: Telecom/ich (O)
TSPC_PBAP_9_13c	False		PSE: Telecom/och (O)
TSPC_PBAP_9_13d	False		PSE: Telecom/mch (O)
TSPC_PBAP_9_13e	False (*)	PSE: Telecom/cch (O)
TSPC_PBAP_9_13f	False		PSE: Telecom/spd (C.2)
TSPC_PBAP_9_13g	False		PSE: Telecom/fav (C.2)
TSPC_PBAP_9_13h	False (*)	PSE: SIM1/Telecom/pb (O)
TSPC_PBAP_9_13i	False		PSE: SIM1/Telecom/ich (O)
TSPC_PBAP_9_13j	False		PSE: SIM1/Telecom/och (O)
TSPC_PBAP_9_13k	False (*)	PSE: SIM1/Telecom/mch (O)
TSPC_PBAP_9_13l	False		PSE: SIM1/Telecom/cch (O)
TSPC_PBAP_9_14	False		PSE: Deleted Handles Behavior
TSPC_PBAP_9_14a	False (*)	PSE: Error reporting (C.5)
TSPC_PBAP_9_14b	False		PSE: Change tracking (C.5)
-------------------------------------------------------------------------------
C.1: Mandatory if TSPC_PBAP_0_3 (PBAP 1.2) is supported, otherwise Excluded.
C.2: Optional if TSPC_PBAP_0_3 (PBAP 1.2) is supported, otherwise Excluded.
C.3: Optional if TSPC_PBAP_9_10 (X-BT-UID vCard Property) is supported,
	otherwise Excluded.
C.4: Optional if TSPC_PBAP_0_3 (PBAP 1.2) and any of the mch or cch folders
	(13d,13e,13k,13l) are supported, otherwise Excluded.
C.5: It is mandatory to support at least one of the defined deleted handles
	behaviors.
-------------------------------------------------------------------------------


		Supported Phone Book Download functions ( PSE )
-------------------------------------------------------------------------------
Parameter Name	Selected	Description
-------------------------------------------------------------------------------
TSPC_PBAP_10_1	True		PSE: Pull Phone Book (M)
TSPC_PBAP_10_2	False		PSE: Call History Function (O)
-------------------------------------------------------------------------------


		Supported Phone Book Browsing functions ( PSE )
-------------------------------------------------------------------------------
Parameter Name	Selected	Description
-------------------------------------------------------------------------------
TSPC_PBAP_11_1	True		PSE: Set Phone Book (M)
TSPC_PBAP_11_2	True		PSE: Pull vCard Listing (M)
TSPC_PBAP_11_3	True		PSE: Pull vCard Entry (M)
-------------------------------------------------------------------------------


		Used vCard formats (PSE)
-------------------------------------------------------------------------------
Parameter Name	Selected	Description
-------------------------------------------------------------------------------
TSPC_PBAP_12_1	True		PSE: vCard 2.1 (M)
TSPC_PBAP_12_2	True		PSE: vCard 3.0 (M)
-------------------------------------------------------------------------------


		OBEX Functions for PSE
-------------------------------------------------------------------------------
Parameter Name	Selected	Description
-------------------------------------------------------------------------------
TSPC_PBAP_13_1	True		PSE: Connect (M)
TSPC_PBAP_13_2	True		PSE: Disconnect (M)
TSPC_PBAP_13_3	True		PSE: Get (M)
TSPC_PBAP_13_4	True		PSE: Abort (M)
TSPC_PBAP_13_5	True		PSE: SetPath (M)
TSPC_PBAP_13_6	False		PSE: Support for OBEX authentication initiation
					(C.1)
-------------------------------------------------------------------------------
C.1: Optional to support initiation if TSPC_PBAP_0_1 (PBAP 1.0) or
	TSPC_PBAP_0_2 (PBAP 1.1) is supported, otherwise Excluded.
-------------------------------------------------------------------------------


		PSE OBEX Header Support
-------------------------------------------------------------------------------
Parameter Name	Selected	Description
-------------------------------------------------------------------------------
TSPC_PBAP_14_1	True		PSE: Name (M)
TSPC_PBAP_14_2	True		PSE: Type (M)
TSPC_PBAP_14_3	True		PSE: Body (M)
TSPC_PBAP_14_4	True		PSE: End of Body (M)
TSPC_PBAP_14_5	True		PSE: Target (M)
TSPC_PBAP_14_6	True		PSE: Who (M)
TSPC_PBAP_14_7	True		PSE: Connection ID (M)
TSPC_PBAP_14_8	True		PSE: Authentication Challenge (M)
TSPC_PBAP_14_9	True		PSE: Authentication Response (M)
TSPC_PBAP_14_10	True		PSE: Application Parameters (M)
TSPC_PBAP_14_11	False		PSE: Single Response Mode (C.1)
TSPC_PBAP_14_12	False		PSE: Single Response Mode Parameter
					(ability to parse) (C.1)
TSPC_PBAP_14_13	False		PSE: Single Response Mode Parameter
					(ability to send) (C.2)
-------------------------------------------------------------------------------
C.1: Mandatory if TSPC_PBAP_0_3 (PBAP 1.2) is supported, otherwise Excluded.
C.2: Optional if TSPC_PBAP_0_3 (PBAP 1.2) is supported, otherwise Excluded.
-------------------------------------------------------------------------------


		OBEX Error Codes for PSE
-------------------------------------------------------------------------------
Parameter Name	Selected	Description
-------------------------------------------------------------------------------
TSPC_PBAP_15_1	True		PSE: Bad Request (M)
TSPC_PBAP_15_2	True		PSE: Not Implemented (M)
TSPC_PBAP_15_3	True (*)	PSE: Unauthorized (O)
TSPC_PBAP_15_4	True (*)	PSE: Precondition Failed (C.1)
TSPC_PBAP_15_5	True		PSE: Not Found (M)
TSPC_PBAP_15_6	True (*)	PSE: Not Acceptable (O)
TSPC_PBAP_15_7	True		PSE: Service Unavailable (M)
TSPC_PBAP_15_8	True (*)	PSE: Forbidden (O)
-------------------------------------------------------------------------------
C.1: Mandatory if TSPC_PBAP_9_14a (Error reporting) is supported, otherwise
	Optional.
-------------------------------------------------------------------------------


		GAP Modes for PCE
-------------------------------------------------------------------------------
Parameter Name	Selected	Description
-------------------------------------------------------------------------------
TSPC_PBAP_16_1	False (*)	PCE: General discoverable mode (M)
TSPC_PBAP_16_2	False (*)	PCE: Pairable mode (M)
-------------------------------------------------------------------------------


		GAP Modes for PSE
-------------------------------------------------------------------------------
Parameter Name	Selected	Description
-------------------------------------------------------------------------------
TSPC_PBAP_17_1	True		PSE: General discoverable mode (M)
TSPC_PBAP_17_2	True		PSE: Pairable mode (M)
-------------------------------------------------------------------------------


		GAP Security Modes for PCE
-------------------------------------------------------------------------------
Parameter Name	Selected	Description
-------------------------------------------------------------------------------
TSPC_PBAP_18_1	False (*)	PCE: Authentication Procedure (M)
TSPC_PBAP_18_2	False (*)	PCE: Initiate LMP-Authentication (M)
TSPC_PBAP_18_3	False		PCE: Security mode 1 (C.1)
TSPC_PBAP_18_4	False		PCE: Security mode 2 (C.1)
TSPC_PBAP_18_5	False		PCE: Security mode 3 (C.1)
TSPC_PBAP_18_6	False		PCE: Security mode 4 (C.1)
-------------------------------------------------------------------------------
C.1: At least one of TSPC_PBAP_18_4, TSPC_PBAP_18_5 or TSPC_PBAP_18_6
	(security mode 2, 3, or 4) shall be supported.
-------------------------------------------------------------------------------


		GAP Security Modes for PSE
-------------------------------------------------------------------------------
Parameter Name	Selected	Description
-------------------------------------------------------------------------------
TSPC_PBAP_19_1	True		PSE: Authentication Procedure (M)
TSPC_PBAP_19_2	True		PSE: Initiate LMP-Authentication (M)
TSPC_PBAP_19_3	False		PSE: Security mode 1 (C.2)
TSPC_PBAP_19_4	False		PSE: Security mode 2 (C.1)
TSPC_PBAP_19_5	False		PSE: Security mode 3 (C.1)
TSPC_PBAP_19_6	False		PSE: Security mode 4 (C.1)
-------------------------------------------------------------------------------
C.1: At least one of TSPC_PBAP_19_3, TSPC_PBAP_19_4, TSPC_PBAP_19_5 or
	TSPC_PBAP_19_6 (security mode 2, 3, or 4) shall be supported.
C.2: Excluded in PSE.
-------------------------------------------------------------------------------


		GAP Idle Modes for PSE
-------------------------------------------------------------------------------
Parameter Name	Selected	Description
-------------------------------------------------------------------------------
TSPC_PBAP_21_1	True		PSE: Initiation of General Inquiry (M)
TSPC_PBAP_21_2	False		PSE: Initiation of Limited Inquiry (O)
-------------------------------------------------------------------------------


		SDP Attributes (PCE)
-------------------------------------------------------------------------------
Parameter Name	Selected	Description
-------------------------------------------------------------------------------
TSPC_PBAP_22_1	False (*)	PCE: BluetoothProfileDescriptorList (M)
-------------------------------------------------------------------------------

		SDP Attributes (PSE)
-------------------------------------------------------------------------------
Parameter Name	Selected	Description
-------------------------------------------------------------------------------
TSPC_PBAP_23_1	True		PSE: ProtocolDescriptorList (M)
TSPC_PBAP_23_2	True		PSE: BluetoothProfileDescriptorList (M)
-------------------------------------------------------------------------------


		Additional PBAP Capabilities
-------------------------------------------------------------------------------
Parameter Name	Selected	Description
-------------------------------------------------------------------------------
TSPC_PBAP_24_1	False		PCE: Retrieve Large Phone Book (C.1)
TSPC_PBAP_24_2	False		PSE: Transfer Large Phone Book (C.2)
TSPC_PBAP_24_3	False		PCE: Retrieve Empty Phone Book (C.1)
TSPC_PBAP_24_4	False		PSE: Transfer Empty Phone Book (C.2)
TSPC_PBAP_24_5	False		PSE: Return Phonebook – Limit number of entries
					(C.2)
TSPC_PBAP_24_6	False		PSE: Return vCard listing – Limit number of
					entries  (C.2)
TSPC_PBAP_24_7	False		PSE: Phone Book Order (C.2)
TSPC_PBAP_24_8	False		PSE: Call stack timestamps (C.3)
TSPC_PBAP_24_9	False		PSE: No User Interaction (C.2)
TSPC_PBAP_24_10	False		PSE: Special Character Handling  (C.2)
-------------------------------------------------------------------------------
C.1: Optional if TSPC_PBAP_2_1 is supported, otherwise excluded.
C.2: Optional if TSPC_PBAP_1_2 is supported, otherwise excluded.
C.3: Optional if TSPC_PBAP_10_2 is supported, otherwise excluded.
-------------------------------------------------------------------------------


		GOEP 2.0 or later Features (PCE)
-------------------------------------------------------------------------------
Parameter Name	Selected	Description
-------------------------------------------------------------------------------
TSPC_PBAP_25_1	False (*)	PCE: GOEP v2.0 or later (M)
TSPC_PBAP_25_2	False (*)	PCE: GOEP v2 Backwards Compatibility (M)
TSPC_PBAP_25_3	False		PCE: OBEX over L2CAP (M)
TSPC_PBAP_25_4	False		PCE: OBEX SRM (M)
TSPC_PBAP_25_5	False (*)	PCE: Send OBEX SRMP header (C.1)
TSPC_PBAP_25_6	False		PCE: Receive OBEX SRMP header (M)
-------------------------------------------------------------------------------
C.1: Optional to support if TSPC_PBAP_25_4 (OBEX SRM) is supported,
	otherwise Excluded.
-------------------------------------------------------------------------------


		GOEP 2.0 or later Features (PSE)
-------------------------------------------------------------------------------
Parameter Name	Selected	Description
-------------------------------------------------------------------------------
TSPC_PBAP_26_1	False (*)	PSE: GOEP v2.0 or later (M)
TSPC_PBAP_26_2	False (*)	PSE: GOEP v2 Backwards Compatibility (M)
TSPC_PBAP_26_3	False		PSE: OBEX over L2CAP (M)
TSPC_PBAP_26_4	False		PSE: OBEX SRM (M)
TSPC_PBAP_26_5	False (*)	PSE: Send OBEX SRMP header (C.1)
TSPC_PBAP_26_6	False		PSE: Receive OBEX SRMP header (M)
TSPC_ALL	False (*)	Turns on all the test cases
-------------------------------------------------------------------------------
C.1: Optional if TSPC_PBAP_26_4 (OBEX SRM) is supported, otherwise Excluded.
-------------------------------------------------------------------------------
