PBAP PICS for the PTS tool.

* - 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: Reserve
TSPC_PBAP_0_4	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.
-------------------------------------------------------------------------------


-------------------------------------------------------------------------------
No special PIXIT settings required. All should be set according to Tester's
test environment.
