rfc-5262

Presence Information Data Format (PIDF) Extension for Partial Presence

M. Lonnfors, E. Leppanen, H. Khartabil, J. Urpalainen
date2008-09 streamIETF arearai wgsimple statusPROPOSED STANDARD pages16 canonicalhttps://www.rfc-editor.org/rfc/rfc5262 doi10.17487/RFC5262
The Presence Information Document Format (PIDF) specifies the baseline XML-based format for describing presence information. One of the characteristics of the PIDF is that the document always needs to carry all presence information available for the presentity. In some environments where low bandwidth and high latency links can exist, it is often beneficial to limit the amount of transported information over the network. This document introduces a new MIME type that enables transporting of either only the changed parts or the full PIDF-based presence information. [STANDARDS-TRACK]

Extracted elements (17)

design-rationale §1

A new MIME type 'application/pidf-diff+xml' was introduced rather than extending the existing 'application/pidf+xml' because PIDF was not originally designed for partial updates. The new type allows applications to negotiate partial update support via the Accept header, which would not have been possible without a distinct MIME type.

realtime, sip

design-rationale §3

The 'version' counter increments independently of whether <pidf-full> or <pidf-diff> content is transported — a single shared counter spans both document types. This enables 'state delta' processing per RFC 3265 and aligns with the partial notification model of RFC 5263.

realtime, sip

interoperability-note §8

Systems compliant with Common Profile for Presence (CPP, RFC 3859) will not support this specification by default. This is not problematic because all endpoints must support the baseline 'application/pidf+xml' type; partial PIDF is only used when both sides negotiate support via SIP content type negotiation.

realtime, sip

normative-requirement §10 MUST

Conformant XML processors MUST support both UTF-8 and UTF-16 encodings. UTF-8 is the RECOMMENDED encoding for this partial presence format. If a receiving application accepted a character set in an initial <pidf-full>, it MUST continue to accept that same character set in subsequent <pidf-diff> documents but MUST NOT need to accept a character set change.

realtime

normative-requirement §3 MUST

Implementations MUST follow guidelines from PIDF (RFC 3863) and PIDF extension formats (DataModel RFC 4479, RPID RFC 4480, CIPID RFC 4482), and MUST support the XML schema data type ID from those RFCs. The XML document MUST be well-formed and SHOULD be valid.

realtime, sip

normative-requirement §3.2 MUST

The 'entity' attribute content within <pidf-diff> MUST be the same as the 'entity' attribute value of the <presence> element described in RFC 3863.

realtime, sip

normative-requirement §4 SHOULD

The partial presence document SHOULD only contain those elements or attributes that have changed. When there are a large number of changes, the full presence document MAY be transported instead.

realtime, sip

protocol-element §11

Error conditions MAY be indicated using error elements defined in RFC 5261. Incorrect content in 'version' or 'entity' attributes MAY be signaled using the <invalid-attribute-value> error element. No additional error elements are defined by this document.

realtime

protocol-element §3.2

The optional 'entity' attribute in <pidf-diff> carries a presentity URI that MUST match the 'entity' attribute of the <presence> element defined in RFC 3863. It identifies the presentity to which the partial update applies.

realtime, sip

protocol-element §3.1

The optional 'version' attribute (unsigned integer) appears in both <pidf-full> and <pidf-diff> elements. It is incremented by one with each successive document update and is maintained as a single counter across both document types, enabling ordered delivery and loss detection.

realtime, sip

protocol-element §3

The <pidf-diff> root element carries partial presence updates using XML patch operations (RFC 5261). It contains <add>, <replace>, and <remove> child elements that modify the recipient's cached copy of the full presence document.

realtime, sip

protocol-element §3

The <pidf-full> root element carries the complete presence document with an optional 'version' attribute. Its content is equivalent to 'application/pidf+xml' with the addition of versioning; use of <presence> as a root element is explicitly disallowed.

realtime, sip

registry §5.1

IANA registered a new XML namespace URN 'urn:ietf:params:xml:ns:pidf-diff' per RFC 3688 for the pidf-diff element namespace defined by this specification.

registry, realtime

registry §5.3

IANA registered a new XML Schema under URI 'urn:ietf:params:xml:schema:pidf-diff' per RFC 3688 procedures, with schema content as defined in Section 7 of this document.

registry, realtime

registry §5.2

IANA registered the new MIME type 'application/pidf-diff+xml' per RFC 4288 procedures and RFC 3023 guidelines. The charset parameter defaults to UTF-8; intended usage is LIMITED USE, restricted to Presence (RFC 3863) based systems.

registry, realtime

security-consideration §9 SHOULD

All security considerations from PIDF (RFC 3863) apply unchanged, as presence information may be highly sensitive. The protocol SHOULD provide authorization policies governing which watchers may receive which presence information, per RFC 5025.

security, privacy, realtime

wire-format §7

The 'version' attribute is typed as xsd:unsignedInt. The 'entity' attribute in <pidf-diff> is typed as xsd:anyURI. The <pidf-diff> element contains a sequence of zero or more <add>, <replace>, or <remove> patch-op elements.

realtime, sip