PBAP PICS for the PTS tool.

PTS version: 5.3

* - 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 (O)
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	True 		PSE: Telecom/pb (M)
TSPC_PBAP_9_13b	True  (*)	PSE: Telecom/ich (O)
TSPC_PBAP_9_13c	True  (*)	PSE: Telecom/och (O)
TSPC_PBAP_9_13d	True  (*)	PSE: Telecom/mch (O)
TSPC_PBAP_9_13e	True		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	True		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	True (*)	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.
-------------------------------------------------------------------------------
