29
29
<p>Each contact attribute has an string identifier
30
30
(<tp:type>Contact_Attribute</tp:type>), which is namespaced
31
31
by the D-Bus interface which defines it.</p>
33
<p>An initial set of contact attributes is defined here:</p>
36
<dt>org.freedesktop.Telepathy.Connection/contact-id
38
<dd>The same string that would be returned by
39
<tp:dbus-ref namespace="org.freedesktop.Telepathy.Connection">InspectHandles</tp:dbus-ref>
40
(always present in the result)
42
<dt>org.freedesktop.Telepathy.Connection.Interface.Aliasing/alias
44
<dd>The same string that would be returned by <tp:dbus-ref
45
namespace="org.freedesktop.Telepathy.Connection.Interface.Aliasing">GetAliases</tp:dbus-ref>
46
(always present with some value, possibly the
47
same as Connection/contact-id, if information from the
48
Aliasing interface was requested)
50
<dt>org.freedesktop.Telepathy.Connection.Interface.Avatars/token
51
(type s, <tp:type>Avatar_Token</tp:type>)</dt>
52
<dd>The same string that would be returned by <tp:dbus-ref
53
namespace="org.freedesktop.Telepathy.Connection.Interface.Avatars">GetKnownAvatarTokens</tp:dbus-ref>
54
(omitted from the result if the contact's avatar token is not known,
55
present as an empty string if the contact is known not to have
56
an avatar). Unlike in the <tp:dbus-ref
57
namespace="org.freedesktop.Telepathy.Connection.Interface.Avatars">GetKnownAvatarTokens</tp:dbus-ref>
58
method, the avatar tokens for the self handle aren't required to be
59
present. This attribute should not be used to determine whether or
60
not the Avatar needs to be set.
62
<dt>org.freedesktop.Telepathy.Connection.Interface.SimplePresence/presence
63
(type (uss), <tp:type>Simple_Presence</tp:type>)</dt>
64
<dd> The same struct that would be returned by
66
namespace="org.freedesktop.Telepathy.Connection.Interface.SimplePresence">GetPresences</tp:dbus-ref>
67
(always present with some value if information from the
68
SimplePresence interface was requested)
70
<dt>org.freedesktop.Telepathy.Connection.Interface.Capabilities/caps
71
(type a(usuu), <tp:type>Contact_Capability</tp:type>)</dt>
72
<dd>The same structs that would be returned by
73
<tp:dbus-ref namespace="org.freedesktop.Telepathy.Connection.Interface.Capabilities">GetCapabilities</tp:dbus-ref>
74
(all of them will redundantly have the contact's handle as the
75
first member). Omitted from the result if the contact's capabilities
76
are not known; present in the result as an empty array if the
77
contact is known to have no capabilities at all.</dd>
79
<dt>org.freedesktop.Telepathy.Connection.Interface.ContactCapabilities.DRAFT/caps
81
<tp:type>Contact_Capabilities_Map</tp:type>)</dt>
82
<dd>The same structs that would be returned by
83
<tp:dbus-ref namespace="org.freedesktop.Telepathy.Connection.Interface.ContactCapabilities.DRAFT">GetContactCapabilities</tp:dbus-ref>
84
Omitted from the result if the contact's capabilities
85
are not known; present in the result as an empty array if the
86
contact is known to have no capabilities at all.</dd>
88
<dt>org.freedesktop.Telepathy.Connection.Interface.Location.DRAFT/location
89
(type a{sv}, <tp:type>Location</tp:type>)</dt>
90
<dd>The same struct used by
91
<tp:dbus-ref namespace="org.freedesktop.Telepathy.Connection.Interface.Location.DRAFT">GetLocations</tp:dbus-ref>
92
Omitted from the result if the contact's location
98
34
<tp:simple-type name="Contact_Attribute" type="s">
175
111
interfaces, whose values can be obtained without additional network
176
112
activity, will be in the reply.</p>
178
<p>It is an error to request interfaces that are not supported by
179
this Connection (i.e. mentioned in the
114
<p>Connection managers SHOULD ignore interfaces requested which they
115
do not support (i.e. those not mentioned in the
180
116
<tp:member-ref>ContactAttributeInterfaces</tp:member-ref>
184
<p>This makes it possible to distinguish between interfaces for
185
which the Connection has nothing to say (e.g. we don't know the
186
avatar tokens of any of the contacts, so we omitted them all),
187
and interfaces for which this API isn't supported.</p>
120
<p>This simplifies client-side code. Clients which care may
121
distinguish between unsupported interfaces (e.g. this Connection
122
does not support Avatars), and interfaces on which no information
123
is known for these contacts (e.g. we don't know the avatar tokens
124
of any of the contacts, so we omitted them all) by inspecting
125
<tp:member-ref>ContactAttributeInterfaces</tp:member-ref>.</p>
190
128
<p>Attributes from the interface