rfc-5196

Session Initiation Protocol (SIP) User Agent Capability Extension to Presence Information Data Format (PIDF)

M. Lonnfors, K. Kiss
date2008-09 streamIETF arearai wgsimple statusPROPOSED STANDARD pages30 canonicalhttps://www.rfc-editor.org/rfc/rfc5196 doi10.17487/RFC5196
Presence Information Data Format (PIDF) defines a common presence data format for Common Profile for Presence (CPP) compliant presence protocols. This memo defines a PIDF extension to represent SIP User Agent capabilities. [STANDARDS-TRACK]

Extracted elements (28)

design-rationale §1.1

A SIP URI scheme can represent voice, video, or messaging services, making it ambiguous for watchers processing presence information. This extension maps RFC 3840 UA capability feature tags into PIDF XML so watchers can make rational decisions about how to contact a presentity before initiating communication.

sip, realtime

design-rationale §4.1

PUAs should add information under <supported> and <notsupported> only when it may affect watcher decision-making; listing all possible information is rarely needed. This keeps presence documents concise and avoids flooding watchers with irrelevant capability data.

sip, realtime

design-rationale §1.2

This extension does not replace SIP media negotiation mechanisms such as SDP. Its purpose is to give watchers hints about a presentity's preferences, willingness, and capabilities before communication is initiated, not to negotiate session parameters.

sip, realtime

interoperability-note §4

Presence information published via this extension is not mandated to be consistent with actual service or device capabilities. Watchers should not expect full alignment between advertised capabilities and real capabilities; the extension provides hints, not guarantees.

sip, realtime

interoperability-note §4.1

When a capability value appears under both <supported> and <notsupported> with the same value (conflicting information), the watcher can safely assume the capability is supported, regardless of its presence under <notsupported>.

sip, realtime

normative-requirement §4 RECOMMENDED

It is RECOMMENDED that Presence User Agents (PUAs) using this extension provide as complete presence information as they can. If publishing sensitive information, the PUA SHOULD obtain permission from the presentity.

sip, realtime, privacy

normative-requirement §3.3 SHOULD

The <devcaps> element SHOULD be located in the PIDF document as a child element of the urn:ietf:params:xml:ns:pidf:data-model namespace <device> element.

sip, realtime

normative-requirement §3.2 SHOULD

The <servcaps> element SHOULD be located in the PIDF document as a child element of the urn:ietf:params:xml:ns:pidf namespace <tuple> element.

sip, realtime

normative-requirement §3.1 MUST

When extension namespaces defined by this document are combined with a PIDF document, the combined document MUST follow the same general formatting rules specified in Section 4.1 of RFC 3863.

sip, realtime

protocol-element §3.2.2

Boolean media-type capability elements <audio>, <application>, <data>, <control>, <video>, <text>, and <message> each indicate whether the service supports the corresponding streaming media type as defined in RFC 3840 (or RFC 4569 for message). A value of 'true' indicates support; 'false' indicates no support.

sip, realtime

protocol-element §3.2.19

The <actor> element indicates the type of entity at the service URI: <principal> (direct communication with the person), <attendant> (intermediary), <msg-taker> (message-taking automaton or person), or <information> (information provider). Uses <supported> and <notsupported> containers.

sip, realtime

protocol-element §3.2.10

The <automata> element is a boolean indicating whether the service represents an automaton (e.g., voicemail server, conference server, recording device) or a human, as defined in RFC 3840. Value 'true' means automaton; 'false' means human.

sip, realtime

protocol-element §3.2.11

The <class> element indicates the setting (business or personal) in which a communications service is used. It contains <supported> and <notsupported> child elements, each of which can contain <business> and <personal> elements, plus extensions registered with IANA as sip.class feature tags.

sip, realtime

protocol-element §3.2.13 SHOULD

The <description> element provides a free-text description of the service or device. It SHOULD carry an 'xml:lang' attribute; if absent, the default language is 'i-default' per RFC 2277. Multiple occurrences are allowed to convey descriptions in different languages.

sip, realtime

protocol-element §3.3.1

The <devcaps> element is the root element for device capabilities and SHOULD appear as a child of the PIDF data-model <device> element. It can contain <mobility> and <description> child elements plus extensions. The namespace is urn:ietf:params:xml:ns:pidf:caps.

sip, realtime

protocol-element §3.2.12

The <duplex> element lists whether the service can simultaneously send and receive media ('full'), alternate between sending and receiving ('half'), only receive ('receive-only'), or only send ('send-only'). It uses <supported> and <notsupported> child containers.

sip, realtime

protocol-element §3.2.14

The <event-packages> element lists SIP event packages supported or not supported by a service, using <supported> and <notsupported> containers. Valid values are drawn from the IANA SIP event types namespace registry (e.g., conference, dialog, presence, refer, winfo).

sip, realtime, registry

protocol-element §3.2.17

The <extensions> element lists SIP option-tags (from IANA SIP parameters registry) understood by the service, corresponding to what would appear in a Supported header field. It uses <supported> and <notsupported> containers.

sip, realtime, registry

protocol-element §3.2.20

The <isfocus> element is a boolean indicating whether the service is a SIP conference server (focus). Value 'true' indicates a conference server; 'false' indicates no conferencing support.

sip, realtime

protocol-element §3.2.21

The <languages> element indicates the human languages the service can display, using <supported> and <notsupported> containers with <l> string children. Values are language subtags registered in the IANA language subtag registry per RFC 4646.

sip, realtime, registry

protocol-element §3.2.16

The <methods> element indicates SIP methods that the service can receive (analogous to the SIP Allow header field). Methods are listed in <supported> and <notsupported> containers using values from the IANA SIP parameters registry methods table (e.g., INVITE, BYE, MESSAGE, SUBSCRIBE).

sip, realtime, registry

protocol-element §3.3.2

The <mobility> element indicates whether a device is <fixed> (stationary, associated with a fixed network point) or <mobile> (not associated with a fixed point). Note that cordless phones are classified as fixed, not mobile, per RFC 3840.

sip, realtime, mobility

protocol-element §3.2.15

The <priority> element indicates call priority values the service is willing to handle, expressed via <lowerthan maxvalue>, <higherthan minvalue>, <equals value>, and <range minvalue maxvalue> child elements under <supported> and <notsupported> containers.

sip, realtime

protocol-element §3.2.18

The <schemes> element provides the set of URI schemes the service supports, using <supported> and <notsupported> containers with <s> string child elements. Values are scheme names registered in the IANA URI scheme registry.

sip, realtime, registry

protocol-element §3.2.1

The <servcaps> element is the root element for service capabilities and SHOULD appear as a child of the PIDF <tuple> element in the urn:ietf:params:xml:ns:pidf namespace. It can contain child elements for audio, application, data, control, video, text, message, type, automata, class, duplex, description, event-packages, priority, methods, extensions, schemes, actor, isfocus, and languages, plus extension elements from other namespaces.

sip, realtime

protocol-element §3.2.9 MUST

The <type> element indicates a MIME media content type supported by the service, as defined in RFC 2913. It is a string type that MUST be of the form 'type/subtype', where type and subtype are defined by the MIME specification (RFC 2045). Only lowercase letters SHOULD be used.

sip, realtime

registry §7

RFC 5196 registers the XML namespace URN 'urn:ietf:params:xml:ns:pidf:caps' and the XML schema URN 'urn:ietf:params:xml:schema:pidf:caps' in the IETF XML Registry (RFC 3688) for the PIDF service and device capability extension elements.

sip, realtime, registry

security-consideration §8 SHOULD

All security considerations from RFC 3859 (CPP) and RFC 3863 (PIDF) apply. Compared to baseline PIDF, this extension may reveal additional sensitive information about a user's service and device capabilities, so the PUA SHOULD always obtain permission from the presentity before publishing such information.

sip, realtime, security, privacy