OPP PICS for the PTS tool.

PTS version: 5.0

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

M - mandatory
O - optional

		Roles
-------------------------------------------------------------------------------
Parameter Name	Selected	Description
-------------------------------------------------------------------------------
TSPC_OPP_1_1	True (*)	Role: Object Push Client.
TSPC_OPP_1_2	True (*)	Role: Object Push Server.
-------------------------------------------------------------------------------
C.1: It is Mandatory to Support at least one of the defined roles.
-------------------------------------------------------------------------------


		Client Profile Version
-------------------------------------------------------------------------------
Parameter Name	Selected	Description
-------------------------------------------------------------------------------
TSPC_OPP_1b_1	True		Client supports OPP version 1.1. (C.1)
TSPC_OPP_1b_2	False		Client supports OPP version 1.2. (C.1)
-------------------------------------------------------------------------------
C.1: It is mandatory to support at least one of the profile versions.
-------------------------------------------------------------------------------


		Client Application Features
-------------------------------------------------------------------------------
Parameter Name	Selected	Description
-------------------------------------------------------------------------------
TSPC_OPP_2_1	True		Client: Perform Service Discovery request.
					(M.1)
TSPC_OPP_2_2	True		Client: Authentication/PIN exchange supported.
					(M.1)
TSPC_OPP_2_2a	True (*)	Client: Require Authentication/PIN by default.
					(O)
TSPC_OPP_2_3	True		Client: Object Push is supported. (M.1)
TSPC_OPP_2_4	True (*)	Client: vCard 2.1 format is supported for
					Object Push. (C.3)
TSPC_OPP_2_5	False		Client: vCalender 1.0 format is supported for
					Object Push. (O)
TSPC_OPP_2_6	False		Client: vMsg as defined in IrMC 1.1 is supported
					for Object Push. (O)
TSPC_OPP_2_7	False		Client: vNote as defined in IrMC 1.1 is
					supported for Object Push. (O)
TSPC_OPP_2_8	True (*)	Client: Support content formats other than those
					declared in TSPC_OPP_2_44 through
					TSPC_OPP_2_7. (O)
TSPC_OPP_2_8a	False		Client: Support specific set of other content
					formats. (C.4)
TSPC_OPP_2_8b	True (*)	Client: Support all content formats. (C.4)
TSPC_OPP_2_9	True (*)	Client: Push multiple vCard objects. (O)
TSPC_OPP_2_9a	False		Client: Push multiple vCard objects using
					different PUT operations. (C.5)
TSPC_OPP_2_9b	True (*)	Client: Push multiple vCard objects using the
					same PUT operation. (C.5)
TSPC_OPP_2_10	False		Client: Push multiple vCalender objects. (O)
TSPC_OPP_2_10a	False		Client: Push multiple vMsg objects using
					different PUT operations. (C.6)
TSPC_OPP_2_10b	False		Client: Push multiple vMsg objects using the
					same PUT operation. (C.6)
TSPC_OPP_2_11	False		Client: Push multiple vMsg objects. (O)
TSPC_OPP_2_11a	False		Client: Push multiple vMsg objects using
					different PUT operations. (C.7)
TSPC_OPP_2_11b	False		Client: Push multiple vMsg objects using the
					same PUT operation. (C.7)
TSPC_OPP_2_12	False		Client: Push multiple vNote objects. (O)
TSPC_OPP_2_12a	False		Client: Push multiple vNote objects using
					different PUT operations. (C.8)
TSPC_OPP_2_12b	False		Client: Push multiple vNote objects using the
					same PUT operation. (C.8)
TSPC_OPP_2_13	False		Client: Pull business card is supported. (O)
TSPC_OPP_2_14	False		Client: vCard 2.1 format is supported for
					Business Card Pull. (C.1)
TSPC_OPP_2_15	False		Client: Exchange business card is supported. (O)
TSPC_OPP_2_16	False		Client: vCard 2.1 format is supported for
					Business Card Exchange (C.2)
-------------------------------------------------------------------------------
C.1: Mandatory to Support IF (TSPC_OPP_2_13) Business Card Pull is supported.
C.2: Mandatory to Support IF (TSPC_OPP_2_15) Business Card Exchange is
	supported.
M.1: Mandatory to Support IF (TSPC_OPP_1_1) supported.
C.3: vCard 2.1 support is required for devices containing phonebook
	applications. vCard 2.1 support optional for other devices.
C.4: Mandatory to support one of TSPC_OPP_2_8a or TSPC_OPP_2_8b if TSPC_OPP_2_8
	is supported. Otherwise, both items are excluded.
C.5: Mandatory to support at least one of TSPC_OPP_2_9a and TSPC_OPP_2_9b if
	TSPC_OPP_2_9 is supported. Otherwise, both items are excluded.
C.6: Mandatory to support at least one of TSPC_OPP_2_10a and TSPC_OPP_2_10b if
	TSPC_OPP_2_10 is supported. Otherwise, both items are excluded.
C.7: Mandatory to support at least one of TSPC_OPP_2_11a and TSPC_OPP_2_11b if
	TSPC_OPP_2_11 is supported. Otherwise, both items are excluded.
C.8: Mandatory to support at least one of TSPC_OPP_2_12a and TSPC_OPP_2_12b if
	TSPC_OPP_2_12 is supported. Otherwise, both items are excluded.
-------------------------------------------------------------------------------


		Server Profile Version
-------------------------------------------------------------------------------
Parameter Name	Selected	Description
-------------------------------------------------------------------------------
TSPC_OPP_2b_1	True		Server supports OPP version 1.1.
TSPC_OPP_2b_2	False		Server supports OPP version 1.2.
-------------------------------------------------------------------------------
C.1: It is mandatory to support at least one of the profile versions.
-------------------------------------------------------------------------------


		Server Application Features
-------------------------------------------------------------------------------
Parameter Name	Selected	Description
-------------------------------------------------------------------------------
TSPC_OPP_3_1	True		Server: Provide information on supported
					contents type on service discovery
					request. (M)
TSPC_OPP_3_2	True		Server: Authentication/PIN exchange supported.
					(M)
TSPC_OPP_3_3	True		Server: Object Push is supported. (M)
TSPC_OPP_3_3a	True (*)	Server: Receive multiple objects in the same
					PUT operation. (O)
TSPC_OPP_3_4	True (*)	Server: vCard 2.1 format is supported for Object
					Push. (C.3)
TSPC_OPP_3_5	False		Server: vCalender 1.0 format is supported for
					Object Push. (O)
TSPC_OPP_3_6	False		Server: vMsg as defined in IrMC 1.1 is supported
					for Object Push. (O)
TSPC_OPP_3_7	False		Server: vNote as defined in IrMC 1.1 is
					supported for Object Push. (O)
TSPC_OPP_3_8	True (*)	Server: Support content formats other than those
					declared in TSPC_OPP_3_4 through
					TSPC_OPP_3_7. (O)
TSPC_OPP_3_8a	False		Server: Support specific set of other content
					formats. (C.4)
TSPC_OPP_3_8b	True (*)	Server: Support all content formats. (C.4)
TSPC_OPP_3_9	True (*)	Server: Object Push vCard reject. (O)
TSPC_OPP_3_10	False		Server: Object Push vCal rejectt. (O)
TSPC_OPP_3_11	False		Server: Object Push vMsg reject. (O)
TSPC_OPP_3_12	False		Server: Object Push vNote reject. (O)
TSPC_OPP_3_13	False		Server: Business card pull is supported. (O.1)
TSPC_OPP_3_14	False		Server: vCard 2.1 format is supported for
					Business Card Pull. (C.1)
TSPC_OPP_3_15	False		Server: Business card pull reject. (O)
TSPC_OPP_3_16	False		Server: Business card exchange is supported.
					(O.2)
TSPC_OPP_3_17	False		Server: vCard 2.1 format is supported for
					Business Card Exchange (C.2)
TSPC_OPP_3_18	False		Server: Business card exchange reject. (O)
-------------------------------------------------------------------------------
M.1: Mandatory to Support IF (TSPC_OPP_1_2) supported.
C.2: Mandatory to Support IF (TSPC_OPP_3_16) Business Card Exchange is
	supported.
O.1: IF NOT Supported, an error message must be sent on request for Business
	Card Pull.
O.2: IF NOT Supported, an error message must be sent on request for Business
	Card Exchange.
C.1: Mandatory to Support IF (TSPC_OPP_3_13) Business Card Pull is supported.
C.3: vCard 2.1 support is required for devices containing phonebook
	applications. vCard 2.1 support optional for other devices.
C.4: Mandatory to support one of TSPC_OPP_3_8a or TSPC_OPP_3_8b if TSPC_OPP_3_8
	is supported. Otherwise, both items are excluded.
-------------------------------------------------------------------------------


		Additional OPP Capabilities
-------------------------------------------------------------------------------
Parameter Name	Selected	Description
-------------------------------------------------------------------------------
TSPC_OPP_4_1	False		Abort-Push Operation is supported. (O)
TSPC_OPP_4_2	False		Disconnect of OBEX session should be tested.
TSPC_OPP_4_3	False		Multiple vCards transferred as a single vObject
					is supported. (C.1)
TSPC_OPP_4_4	False		Multiple vCards transfer is supported. (C.1)
TSPC_OPP_4_5	False		vCards with multiple Phone Number Fields is
					supported. (C.1)
TSPC_OPP_4_6	False		Server supports Push vCal to Different Time
					Zone. (C.1)
TSPC_ALL	False		Turn on all test cases.
-------------------------------------------------------------------------------
C.1: Optional if TSPC_OPP_1_2 is supported, otherwise excluded.
-------------------------------------------------------------------------------
