Description
An interface for protocols where it might be possible to set the user's presence, and the supported presence types can be predicted before connecting.
Rationale:
The properties on this interface SHOULD be cached in the
.manager
file, in the
[Protocol proto]
group. For each status s in
Statuses, that group should
contain a key of the form status-s
whose value
is the Connection_Presence_Type as an ASCII
decimal integer, followed by a space-separated sequence of tokens
from the following set:
- settable
- If present, the user can set this status on themselves using SetPresence; this corresponds to May_Set_On_Self in the Simple_Status_Spec struct.
- message
- If present, the user can set a non-empty message for this status; this corresponds to Can_Have_Message in the Simple_Status_Spec struct.
Unrecognised tokens MUST be ignored.
For instance, an XMPP connection manager might have this
.manager
file:
[Protocol jabber] Interfaces=org.freedesktop.Telepathy.Protocol.Interface.Presence; param-account=s required param-password=s required status-offline=1 status-unknown=7 status-error=8 status-hidden=5 settable message status-xa=4 settable message status-away=3 settable message status-dnd=6 settable message status-available=2 settable message status-chat=2 settable message
which corresponds to these property values (using a Python-like syntax):
Statuses = { 'offline': (OFFLINE, False, False), 'unknown': (UNKNOWN, False, False), 'error': (ERROR, False, False), 'hidden': (HIDDEN, True, True), 'xa': (EXTENDED_AWAY, True, True), 'away': (AWAY, True, True), 'dnd': (BUSY, True, True), 'available': (AVAILABLE, True, True), 'chat': (AVAILABLE, True, True), }
Properties
Statuses — a{s(ubb)} (Simple_Status_Spec_Map)
The statuses that might appear in the Connection.Interface.SimplePresence.Statuses property on a connection to this protocol that supports SimplePresence. This property is immutable.
Depending on server capabilities, it is possible that not all of these will actually appear on the Connection.