3.2.5.9.1.1 Receiving a RopSynchronizationConfigure ROP Request
When the client sends the server a RopSynchronizationConfigure ROP (section 2.2.3.2.1.1) request, the server MUST parse the request, as specified in [MS-OXCROPS] section 2.2.13.1.1 and section 2.2.3.2.1.1 of this specification. The server MUST respond with a RopSynchronizationConfigure ROP response, as specified in [MS-OXCROPS] section 2.2.13.1.2 and section 2.2.3.2.1.1 of this specification.
SynchronizationType Constraints
The following constraints apply to the SynchronizationType field.
Servers MUST fail the ROP if the value of the SynchronizationType field is unknown.
If the Unicode flag of the SynchronizationFlags field is set, the client supports Unicode and the server MUST write the values of the string properties to the FastTransfer stream as they are stored. The Unicode flag does not specify that the server writes the value in Unicode format. The server writes the values in Unicode or non-Unicode format depending on how they are stored.
If the Unicode flag of the SynchronizationFlags field is not set, the client does not support Unicode and the server MUST write the values of string properties to the FastTransfer stream in the code page set on connection.
If the NoDeletions flag of the SynchronizationFlags field is set, the server MUST NOT download information about item deletions, as specified in section 2.2.4.3.3, and the server MUST respond as if the IgnoreNoLongerInScope flag was set.
If the NoDeletions flag of the SynchronizationFlags field is not set, the server MUST download information about item deletions, as specified in section 2.2.4.3.3.
If the IgnoreNoLongerInScope flag of the SynchronizationFlags field is set, the server MUST NOT download information about messages that went out of scope as deletions, as specified in section 2.2.4.3.3.
If the IgnoreNoLongerInScope flag of the SynchronizationFlags field is not set, the server MUST download information about messages that went out of scope as deletions, as specified in section 2.2.4.3.3.
If the ReadState flag of the SynchronizationFlags field is set, the server MUST also download information about changes to the read state of messages, as specified in section 2.2.4.3.22.
If the ReadState flag of the SynchronizationFlags field is not set, the server MUST NOT download information about changes to the read state of messages, as specified in section 2.2.4.3.22.
If the FAI flag of the SynchronizationFlags field is set, the server MUST download information about changes to FAI messages, as specified by the folderContents element in section 2.2.4.3.7.
If the FAI flag of the SynchronizationFlags field is not set, the server MUST NOT download information about changes to FAI messages, as specified by the folderContents element in section 2.2.4.3.7.
If the Normal flag of the SynchronizationFlags flag is set, the server MUST download information about changes to normal messages, as specified in section 2.2.4.3.11.
If the Normal flag of the SynchronizationFlags field is not set, the server MUST NOT download information about changes to normal messages, as specified in section 2.2.4.3.11.
If the OnlySpecifiedProperties flag of the SynchronizationFlags field is set, the server SHOULD limit properties and subobjects written to the FastTransfer stream for top-level messages to the properties listed in the PropertyTags field.
If the OnlySpecifiedProperties flag of the SynchronizationFlags field is not set, the server SHOULD exclude properties and subobjects from the FastTransfer stream for folders and top-level messages, if they are listed in the PropertyTags field.
If the NoForeignIdentifiers flag of the SynchronizationFlags field is set, the server MUST ignore any persisted values for the PidTagSourceKey property (section 2.2.1.2.5) and PidTagParentSourceKey (section 2.2.1.2.6) properties when producing the FastTransfer stream for folder and message changes.
If the NoForeignIdentifiers flag of the SynchronizationFlags field is not set, the server MUST NOT ignore any persisted values for the PidTagSourceKey and PidTagParentSourceKey properties when producing the FastTransfer stream for folder and message changes.
The server MUST fail the ROP request if the Reserved flag of the SynchronizationFlags field is set.
If the BestBody flag of the SynchronizationFlags field is set, the server SHOULD write message bodies to the FastTransfer stream in their original format. An exception is embedded messages, the server MAY honor this flag for embedded messages.
If the BestBody flag of the SynchronizationFlags field is not set, the server MAY<41> write message bodies to the FastTransfer stream in the compressed RTF format.
The IgnoreSpecifiedOnFAI flag is only used in conjunction with the OnlySpecifiedProperties flag being set. Both flags are defined as part of the SynchronizationFlags field. If the OnlySpecifiedProperties flag is not set, the server MUST ignore the IgnoreSpecifiedOnFAI flag.
If the OnlySpecifiedProperties flag is set and the IgnoreSpecifiedOnFAI flag is not set, the server writes only the specified properties and subobjects for all messages to the FastTransfer stream.
If the OnlySpecifiedProperties flag is set and the IgnoreSpecifiedOnFAI flag is also set, the server MUST write only the specified properties and subobjects for all non-FAI messages to the FastTransfer stream. For FAI messages, the server MUST write all properties and subobjects to the FastTransfer stream.
If the Progress flag of the SynchronizationFlags field is set, the server SHOULD inject the progressTotal element, as specified in section 2.2.4.3.19, into the FastTransfer stream.
If the Progress flag of the SynchronizationFlags field is not set, the server MUST not inject the progressTotal element into the FastTransfer stream.
Servers SHOULD fail the ROP if unknown flag bits are set, or MAY fail the ROP if additional flags, used only in server-to-server communications are set.
SynchronizationExtraFlags Constraints
The following constraints apply to the SynchronizationExtraFlags field, as specified in section 2.2.3.2.1.1.1.
The server MUST include either the PidTagFolderId property (section 2.2.1.2.2) or the PidTagMid property (section 2.2.1.2.1) in a folder change or message change header if and only if the Eid flag of the SynchronizationExtraFlags field is set. The server MUST include the PidTagFolderId property in the folder change header if the SynchronizationType field is set to Hierarchy (0x02), as specified in section 2.2.3.2.1.1.1. The server MUST include the PidTagMid property in the message change header if the SynchronizationType field is set Contents (0x01), as specified in section 2.2.3.2.1.1.1.
The server MUST include the PidTagMessageSize property (section 2.2.1.6) in the message change header if and only if the MessageSize flag of the SynchronizationExtraFlags field is set.
The server MUST include the PidTagChangeNumber property (section 2.2.1.2.3) in the message change header if and only if the CN flag of the SynchronizationExtraFlags field is set.
The server MUST NOT include the PidTagChangeNumber property in the message change header if and only if the CN flag of the SynchronizationExtraFlags field is not set.
If the OrderByDeliveryTime flag of the SynchronizationExtraFlags field is set, the server MUST sort messages by the value of their PidTagMessageDeliveryTime property ([MS-OXOMSG] section 2.2.3.9), or by the PidTagLastModificationTime property ([MS-OXPROPS] section 2.765) if the former is missing, when generating a sequence of messageChange elements for the FastTransfer stream, as specified in section 2.2.4.2. The server adds messages in the FastTransfer stream from newest to oldest, so the client receives the newest messages first.
If the OrderByDeliveryTime flag of the SynchronizationExtraFlags field is not set, there is no requirement on the server to return items in a specific order.
Servers MUST ignore any unknown flags in the SynchronizationExtraFlags field.
PropertyTags Constraints
The following constraints apply to the PropertyTags field.
This field has different semantics, depending on the value of the OnlySpecifiedProperties flag of the SynchronizationFlags field, as follows:
If the OnlySpecifiedProperties flag is not set, the server SHOULD exclude properties and subobjects from the FastTransfer stream for folders and top-level messages, if the property is listed in the PropertyTags field.
If the OnlySpecifiedProperties flag is set, the server SHOULD limit properties and subobjects written to the FastTransfer stream for top-level messages to properties listed in the PropertyTags field.
Inclusion of properties that denote message subobjects in the PropertyTags field means that the server SHOULD include or exclude these special parts from the FastTransfer stream for top-level messages.