summaryrefslogtreecommitdiff
path: root/spec
diff options
context:
space:
mode:
authorSimon McVittie <simon.mcvittie@collabora.co.uk>2010-09-29 15:40:28 +0100
committerSimon McVittie <simon.mcvittie@collabora.co.uk>2010-09-29 15:40:28 +0100
commita795bb28d03c0d60785a554794351402a08d875a (patch)
tree865a36a2611f91e8495d3511b1f5feef044499cd /spec
parent9e248b927ffa732f6d8806b84209c3027a760e48 (diff)
downloadtelepathy-glib-a795bb28d03c0d60785a554794351402a08d875a.tar.gz
Update to spec 0.21.1
- add Access_Control, Access_Control_Type - ClientTypes to follow in a later commit
Diffstat (limited to 'spec')
-rw-r--r--spec/Account.xml31
-rw-r--r--spec/Connection_Interface_Client_Types.xml25
-rw-r--r--spec/Connection_Interface_Communication_Policy.xml163
-rw-r--r--spec/Connection_Interface_Resources.xml212
-rw-r--r--spec/Connection_Interface_Simple_Presence.xml131
-rw-r--r--spec/Makefile.am2
-rw-r--r--spec/all.xml4
7 files changed, 540 insertions, 28 deletions
diff --git a/spec/Account.xml b/spec/Account.xml
index 5917c6f0b..acd8c3028 100644
--- a/spec/Account.xml
+++ b/spec/Account.xml
@@ -407,16 +407,23 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
<p>The presence status that this account should have if it is brought
online.</p>
+ <tp:rationale>
+ In ITOS2007 and ITOS2008 this is a global preference, not visible
+ on D-Bus (the "default presence"). "Automatic presence" better
+ describes when it is used.
+ </tp:rationale>
+
<p>Setting this property MUST NOT actually change the account's
status until the next time it is (re)connected for some reason.</p>
- <p>The <tp:type>Connection_Presence_Type</tp:type> in the structure
- SHOULD NOT be Offline or Unset.</p>
+ <p>The value of this property MUST be one that would be acceptable
+ for <tp:member-ref>RequestedPresence</tp:member-ref>,
+ with the additional restriction that the
+ <tp:type>Connection_Presence_Type</tp:type> MUST NOT be Offline.</p>
<tp:rationale>
- In ITOS2007 and ITOS2008 this is a global preference, not visible
- on D-Bus (the "default presence"). "Automatic presence" better
- describes when it is used.
+ <p>Otherwise, it would not be possible to use this presence to bring
+ the account online for a channel request.</p>
</tp:rationale>
</tp:docstring>
</property>
@@ -553,11 +560,12 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
<property name="CurrentPresence" type="(uss)" access="read"
tp:type="Simple_Presence" tp:name-for-bindings="Current_Presence">
<tp:docstring>
- The actual presence. If the connection is not online, this should be
- (Connection_Presence_Type_Offline, "", "").
+ The actual presence. If the connection is not online, the
+ <tp:type>Connection_Presence_Type</tp:type> SHOULD be
+ Connection_Presence_Type_Offline.
If the connection is online but does not support the <tp:dbus-ref
namespace="org.freedesktop.Telepathy.Connection.Interface">SimplePresence</tp:dbus-ref>
- interface, this should be (Connection_Presence_Type_Unset, "", "").
+ interface, the type SHOULD be Connection_Presence_Type_Unset.
The account manager is expected to set this by observing signals
from the Connection.
@@ -585,6 +593,13 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
This corresponds to e.g. GetPresence and GetPresenceMessage
in NMC 4.x.
</tp:rationale>
+
+ <p>The <tp:type>Connection_Presence_Type</tp:type> in this property
+ MUST NOT be Unset, Unknown or Error.</p>
+
+ <tp:rationale>
+ <p>Requesting those presence types doesn't make sense.</p>
+ </tp:rationale>
</tp:docstring>
</property>
diff --git a/spec/Connection_Interface_Client_Types.xml b/spec/Connection_Interface_Client_Types.xml
index fc5c7b8c7..97908561a 100644
--- a/spec/Connection_Interface_Client_Types.xml
+++ b/spec/Connection_Interface_Client_Types.xml
@@ -17,9 +17,8 @@ Lesser General Public License for more details.</p>
License along with this library; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.</p>
</tp:license>
- <interface name="org.freedesktop.Telepathy.Connection.Interface.ClientTypes.DRAFT"
- tp:causes-havoc="experimental">
- <tp:added version="0.19.11">(as draft)</tp:added>
+ <interface name="org.freedesktop.Telepathy.Connection.Interface.ClientTypes">
+ <tp:added version="0.21.1">(as stable API)</tp:added>
<tp:requires interface="org.freedesktop.Telepathy.Connection"/>
<tp:docstring xmlns="http://www.w3.org/1999/xhtml">
@@ -47,9 +46,13 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.</
<li>pc</li>
<li>phone</li>
<li>web</li>
+<!-- Excluding these two because there's been no conclusion regarding my mail
+ to standards@xmpp.org about adding these two to their list:
+
<li>sms (the client is not actually an instant messaging client
but all messages sent to this contact will be delivered as SMSs)</li>
<li>game (a gaming device)</li>
+-->
</ul>
<p>If the empty list is given as the client types, this means that
@@ -88,7 +91,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.</
A contact.
</tp:docstring>
</tp:member>
- <tp:member type="as" name="Client_Types">
+ <tp:member type="as" name="Client_Types" tp:type="Contact_Client_Type[]">
<tp:docstring>
The contact's client types as documented earlier in this interface.
</tp:docstring>
@@ -155,7 +158,8 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.</
</tp:docstring>
</arg>
- <arg direction="out" name="Client_Types" type="as">
+ <arg direction="out" name="Client_Types" type="as"
+ tp:type="Contact_Client_Type[]">
<tp:docstring>
The contact's client types. It MAY be empty, indicating that no client
type information was found.
@@ -185,7 +189,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.</
The contact.
</tp:docstring>
</arg>
- <arg name="Client_Types" type="as">
+ <arg name="Client_Types" type="as" tp:type="Contact_Client_Type[]">
<tp:docstring>
The contact's client types, or an empty list to indicate that nothing
is known about the contact's client types.
@@ -193,7 +197,8 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.</
</arg>
</signal>
- <tp:contact-attribute name="client-types" type="as">
+ <tp:contact-attribute name="client-types" type="as"
+ tp:type="Contact_Client_Type[]">
<tp:docstring xmlns="http://www.w3.org/1999/xhtml">
<p>The same mapping that would be returned by
<tp:member-ref>GetClientTypes</tp:member-ref> for this contact.
@@ -202,6 +207,12 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.</
</tp:docstring>
</tp:contact-attribute>
+ <tp:simple-type name="Contact_Client_Type" type="s"
+ array-name="Contact_Client_Type_List">
+ <tp:docstring>A string representing a single client type of a
+ contact.</tp:docstring>
+ </tp:simple-type>
+
</interface>
</node>
<!-- vim:set sw=2 sts=2 et ft=xml: -->
diff --git a/spec/Connection_Interface_Communication_Policy.xml b/spec/Connection_Interface_Communication_Policy.xml
new file mode 100644
index 000000000..9a92fa047
--- /dev/null
+++ b/spec/Connection_Interface_Communication_Policy.xml
@@ -0,0 +1,163 @@
+<?xml version="1.0" ?>
+<node name="/Connection_Interface_Communication_Policy"
+ xmlns:tp="http://telepathy.freedesktop.org/wiki/DbusSpec#extensions-v0">
+ <tp:copyright>Copyright © 2010 Collabora Limited</tp:copyright>
+ <tp:license xmlns="http://www.w3.org/1999/xhtml">
+This library is free software; you can redistribute it and/or
+modify it under the terms of the GNU Lesser General Public
+License as published by the Free Software Foundation; either
+version 2.1 of the License, or (at your option) any later version.
+
+This library is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+Library General Public License for more details.
+
+You should have received a copy of the GNU Lesser General Public
+License along with this library; if not, write to the Free Software
+Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ </tp:license>
+
+ <interface
+ name="org.freedesktop.Telepathy.Connection.Interface.CommunicationPolicy.DRAFT"
+ tp:causes-havoc="experimental">
+ <tp:added version="0.21.1">(draft 1)</tp:added>
+ <tp:requires interface="org.freedesktop.Telepathy.Connection.Interface.SimplePresence"/>
+
+ <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
+ <p>
+ This interface supports controlling which contacts are allowed
+ to initiate text chats, incoming calls, and other forms of
+ communication as supported by the underlying protocol. The
+ policies supported for different communication methods on this
+ connection are listed in the
+ <tp:member-ref>SupportedPolicies</tp:member-ref> property. The
+ current configuration is held in
+ <tp:member-ref>ActivePolicies</tp:member-ref>; it can be modified
+ using <tp:member-ref>SetPolicy</tp:member-ref>, and changes
+ are signalled by <tp:member-ref>PolicyChanged</tp:member-ref>.
+ </p>
+ </tp:docstring>
+
+ <tp:mapping name="Active_Policies_Map">
+ <tp:docstring>
+ A mapping of communication methods (channel types), and their
+ associated policy.
+ </tp:docstring>
+
+ <tp:member type="s" tp:type="DBus_Interface" name="Channel_Type">
+ <tp:docstring>
+ The channel interface with the policy.
+ </tp:docstring>
+ </tp:member>
+
+ <tp:member type="(uv)" tp:type="Access_Control" name="Active_Policy">
+ <tp:docstring>
+ The active policy for this channel type.
+ </tp:docstring>
+ </tp:member>
+ </tp:mapping>
+
+ <property name="SupportedPolicies"
+ tp:name-for-bindings="Supported_Policies" access="read"
+ type="a(asau)" tp:type="Supported_Policy[]">
+ <tp:docstring>
+ The communication policies supported by this connection.
+ </tp:docstring>
+ </property>
+
+ <property name="ActivePolicies" tp:name-for-bindings="Active_Policies"
+ access="read" type="a{s(uv)}" tp:type="Active_Policies_Map">
+ <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
+ <p>The active communication policies on this
+ connection. Communication methods that are not in this
+ mapping are considered open.</p>
+
+ <p>For example, to allow incoming calls only from contacts
+ buddy list, and to allow text messages from anyone,
+ the policy would look like this:</p>
+
+ <pre>
+{
+ 'org.freedesktop.Telepathy.Channel.Type.Text' : Access_Control_Type_Open,
+ 'org.freedesktop.Telepathy.Channel.Type.Call' : Access_Control_Type_Publish_List
+}
+ </pre>
+
+ <p>Changes to this property are signalled by
+ <tp:member-ref>PolicyChanged</tp:member-ref>.</p>
+ </tp:docstring>
+ </property>
+
+ <method name="SetPolicy" tp:name-for-bindings="Set_Policy">
+ <tp:docstring>
+ Set a policy for a communication method (channel
+ type). Depending on the server or protocol, more than one
+ communication method could be bound to the same policy, if
+ calling this method on one channel type changes the policy on
+ another channel type, the <tp:member-ref>PolicyChanged</tp:member-ref>
+ signal that would follow would include all the channel types
+ that have an altered policy.
+ </tp:docstring>
+ <arg name="Channel_Type" direction="in" type="s"
+ tp:type="DBus_Interface">
+ <tp:docstring>
+ The channel type to set the policy for.
+ </tp:docstring>
+ </arg>
+ <arg name="Policy" direction="in" type="(uv)"
+ tp:type="Access_Control">
+ <tp:docstring>
+ The policy to set for this channel.
+ </tp:docstring>
+ </arg>
+ </method>
+
+ <signal name="PolicyChanged" tp:name-for-bindings="Policy_Changed">
+ <tp:docstring>
+ <tp:member-ref>ActivePolicies</tp:member-ref> has
+ changed. This occurs when the server unilaterally changed the
+ policy or <tp:member-ref>SetPolicy</tp:member-ref> has been
+ called.
+ </tp:docstring>
+ <arg name="Changed_Policies" type="a{s(uv)}"
+ tp:type="Active_Policies_Map">
+ <tp:docstring>
+ A subset of the active policies that have changed.
+ </tp:docstring>
+ </arg>
+ </signal>
+
+ <tp:struct name="Supported_Policy" array-name="Supported_Policy_List">
+ <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
+ <p>The communication methods (channel types), and the policies
+ that can be applied to them. This is server and protocol
+ dependant.</p>
+
+ <p>Grouped channel types will always have the same policy applied
+ to them.</p>
+
+ <tp:rationale>
+ Different protocols have different limitations to the
+ granularity of communication policies. One protocol might be
+ able to set a different policy for VoIP calls and text chat,
+ while another protocol might only be able to set one policy
+ to both VoIP and text chat.
+ </tp:rationale>
+ </tp:docstring>
+ <tp:member type="as" tp:type="DBus_Interface[]"
+ name="Chanel_Types">
+ <tp:docstring>
+ A list of channel interfaces that support these policies.
+ </tp:docstring>
+ </tp:member>
+ <tp:member type="au" tp:type="Access_Control_Type[]"
+ name="Supported Policies">
+ <tp:docstring>
+ A list of supported policies.
+ </tp:docstring>
+ </tp:member>
+ </tp:struct>
+
+ </interface>
+</node>
diff --git a/spec/Connection_Interface_Resources.xml b/spec/Connection_Interface_Resources.xml
new file mode 100644
index 000000000..716089cd6
--- /dev/null
+++ b/spec/Connection_Interface_Resources.xml
@@ -0,0 +1,212 @@
+<?xml version="1.0" ?>
+<node name="/Connection_Interface_Resources"
+ xmlns:tp="http://telepathy.freedesktop.org/wiki/DbusSpec#extensions-v0">
+ <tp:copyright>Copyright © 2010 Collabora Ltd.</tp:copyright>
+ <tp:license xmlns="http://www.w3.org/1999/xhtml">
+ <p>This library is free software; you can redistribute it and/or
+modify it under the terms of the GNU Lesser General Public
+License as published by the Free Software Foundation; either
+version 2.1 of the License, or (at your option) any later version.</p>
+
+<p>This library is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+Lesser General Public License for more details.</p>
+
+<p>You should have received a copy of the GNU Lesser General Public
+License along with this library; if not, write to the Free Software
+Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.</p>
+ </tp:license>
+ <interface name="org.freedesktop.Telepathy.Connection.Interface.Resources.DRAFT"
+ tp:causes-havoc="experimental">
+ <tp:added version="0.21.1">(draft 1)</tp:added>
+ <tp:requires interface="org.freedesktop.Telepathy.Connection"/>
+
+ <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
+ <p>An interface on connections to show contact attributes for
+ specific resources of a contact, if the protocol supports
+ multiple resources. Resources are most common in XMPP, hence the
+ name of this interface, but they are also present in MSN, where
+ they are called points of presence.</p>
+
+ <p>When a client requests some attribute of a contact using its
+ handle on the connection, the CM uses an algorithm to choose the
+ most appropriate resource for the job. If there is only one
+ resource, then the choice is obvious. If, however, there is more
+ than one resource connected at any one time, the CM either
+ aggregates all appropriate information to return (in the case of
+ capabilities), or chooses one specific resource (in the case of
+ presence).</p>
+
+ <p>Resources in XMPP have names, and it can be extremely useful
+ for the user to be able to know which resources of a contact are
+ online, providing the names are human-readable. Before now,
+ resources have not been exposed in Telepathy, but this interface
+ attempts to change this.</p>
+
+ <p>When using this interface, it is a little like using the
+ <tp:dbus-ref namespace="org.freedesktop.Telepathy.Connection.Interface"
+ >Contacts</tp:dbus-ref> interface, but only resource-specific
+ attributes are ever returned. The resource-specific contact
+ attributes are decided on by the CM, but XMPP's are listed
+ below:</p>
+
+ <ul>
+ <li><tp:dbus-ref namespace="org.freedesktop.Telepathy.Connection.Interface">SimplePresence/presence</tp:dbus-ref></li>
+ <li><tp:dbus-ref namespace="org.freedesktop.Telepathy.Connection.Interface">ContactCapabilities/capabilities</tp:dbus-ref></li>
+ <li><tp:dbus-ref namespace="org.freedesktop.Telepathy.Connection.Interface">ClientTypes/client-types</tp:dbus-ref></li>
+ </ul>
+
+ </tp:docstring>
+
+ <method name="GetResources" tp:name-for-bindings="Get_Resources">
+ <tp:docstring>
+ Return the resource information of the given contacts. If any
+ of the contact attributes for specific resources of the given
+ contacts' are not known return immediately without waiting for
+ a reply.
+ </tp:docstring>
+
+ <arg direction="in" name="Contacts" type="au" tp:type="Contact_Handle[]">
+ <tp:docstring>
+ The contacts whose resource attributes should be returned.
+ </tp:docstring>
+ </arg>
+
+ <arg direction="out" name="Resources" type="a{ua{sa{sv}}}"
+ tp:type="Resources_Attributes_Map">
+ <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
+ <p>The contacts' resources and the contact attributes specific
+ to each resource. If contact attributes are not immediately
+ known, the behaviour is defined by the interface; the
+ attribute should either be omitted from the result or
+ replaced with a default value.</p>
+
+ <p>For every contact handle passed into this method, it is
+ guaranteed that there will be a key in the returned map
+ that corresponds to said handle. If there is no information
+ regarding the contact the resource information map will be
+ empty.</p>
+ </tp:docstring>
+ </arg>
+
+ <tp:possible-errors>
+ <tp:error name="org.freedesktop.Telepathy.Error.Disconnected"/>
+ <tp:error name="org.freedesktop.Telepathy.Error.InvalidHandle"/>
+ </tp:possible-errors>
+ </method>
+
+ <tp:enum name="Resources_Human_Readability" type="u">
+ <tp:enumvalue suffix="Never" value="0">
+ <tp:docstring>
+ The resource string is never human-readable.
+ </tp:docstring>
+ </tp:enumvalue>
+ <tp:enumvalue suffix="Maybe" value="1">
+ <tp:docstring>
+ The resource string might be human-readable.
+ </tp:docstring>
+ </tp:enumvalue>
+ </tp:enum>
+
+ <property name="ResourcesHumanReadable" type="u" access="read"
+ tp:type="Resources_Human_Readability"
+ tp:name-for-bindings="Resources_Human_Readable">
+ <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
+ <p>Whether the resources returned from <tp:member-ref>GetResources</tp:member-ref>
+ are human readable or not.</p>
+
+ <p>If the connection manager knows that all resource names are
+ automatically generated, then the resource strings mean
+ nothing to the user. Showing these strings in the UI would
+ be confusing, so by setting this to
+ Resources_Human_Readability_Never, the UI is advised not to
+ show resources.</p>
+
+ <p>If on the other hand, all resources are set to nice names
+ (such as "office" or "home") then it might be wise to expose
+ these strings in the UI, so this property would be set to
+ Resources_Human_Readability_Maybe. This is the case in XMPP --
+ most resources are set in a way that the user can deduce some
+ information from them. The absence of an Always enum value is
+ because in the case of XMPP, the resource string could be
+ partially human-readable (as on Google Talk, where a resource
+ of "home" is changed by the server to a unique string like
+ "home_1234fdec") or not at all human-readable.</p>
+
+ </tp:docstring>
+ </property>
+
+ <signal name="ResourcesUpdated" tp:name-for-bindings="Resources_Updated">
+ <tp:docstring>
+ Emitted when a contact has a resource added or removed, or any
+ contact attribute for any resource changes.
+ </tp:docstring>
+
+ <arg name="Contact" type="u" tp:type="Contact_Handle">
+ <tp:docstring>
+ The contact.
+ </tp:docstring>
+ </arg>
+ <arg name="Resources" tp:type="Resource_Information_Map"
+ type="a{sa{sv}}">
+ <tp:docstring>
+ The contact's resource information. All resource information
+ is given, not just the details which have changed.
+ </tp:docstring>
+ </arg>
+ </signal>
+
+ <tp:mapping name="Resource_Information_Map">
+ <tp:docstring>
+ A map of a contact's resources to their resource-specific
+ information.
+ </tp:docstring>
+
+ <tp:member name="Key" type="s">
+ <tp:docstring>
+ <p>The name of the resource.</p>
+ </tp:docstring>
+ </tp:member>
+
+ <tp:member name="Contact_Attributes" type="a{sv}"
+ tp:type="Single_Contact_Attributes_Map">
+ <tp:docstring>
+ A map of contact attributes whose data is specific to this
+ resource.
+ </tp:docstring>
+ </tp:member>
+ </tp:mapping>
+
+ <tp:mapping name="Resources_Attributes_Map">
+ <tp:docstring>Mapping returned by
+ <tp:member-ref>GetResources</tp:member-ref>, representing a
+ collection of Contacts, their resources, and their
+ resource-specific contact attributes.</tp:docstring>
+
+ <tp:member type="u" tp:type="Contact_Handle" name="Contact">
+ <tp:docstring>
+ A contact.
+ </tp:docstring>
+ </tp:member>
+
+ <tp:member type="a{sa{sv}}" tp:type="Resource_Information_Map"
+ name="Resources">
+ <tp:docstring>
+ A map of the contact's resources to their resource-specific
+ information.
+ </tp:docstring>
+ </tp:member>
+ </tp:mapping>
+
+ <tp:contact-attribute name="resources" type="a{sa{sv}}"
+ tp:type="Resource_Information_Map">
+ <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
+ <p>The same mapping that would be returned by
+ <tp:member-ref>GetResources</tp:member-ref> for this contact.</p>
+ </tp:docstring>
+ </tp:contact-attribute>
+
+ </interface>
+</node>
+<!-- vim:set sw=2 sts=2 et ft=xml: -->
diff --git a/spec/Connection_Interface_Simple_Presence.xml b/spec/Connection_Interface_Simple_Presence.xml
index 5c7ae9787..7788161e1 100644
--- a/spec/Connection_Interface_Simple_Presence.xml
+++ b/spec/Connection_Interface_Simple_Presence.xml
@@ -349,17 +349,95 @@
</tp:enumvalue>
</tp:enum>
+ <tp:enum name="Access_Control_Type" type="u"
+ array-name="Access_Control_Type_List">
+ <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
+ <p>A type for communication access control. These control
+ policies are used in
+ <tp:dbus-ref namespace="org.freedesktop.Telepathy.Connection.Interface">CommunicationPolicy.DRAFT</tp:dbus-ref>
+ as well as most rich presence interfaces.</p>
+
+ <p>New interfaces should use this type, and NOT
+ <tp:type>Rich_Presence_Access_Control_Type</tp:type>.</p>
+ </tp:docstring>
+ <tp:enumvalue suffix="Whitelist" value="0">
+ <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
+ <p>Only allow contacts that are in a certain whitelist.</p>
+
+ <p>The associated variant
+ in <tp:type>Access_Control</tp:type> is a list of
+ <tp:type>Contact_Handle</tp:type> representing
+ the whitelist, with signature <code>au</code>.</p>
+ </tp:docstring>
+ </tp:enumvalue>
+ <tp:enumvalue suffix="Publish_List" value="1">
+ <tp:docstring>
+ Allow contacts in the user's 'publish' list. The associated
+ variant in <tp:type>Access_Control</tp:type> is ignored.
+ </tp:docstring>
+ </tp:enumvalue>
+ <tp:enumvalue suffix="Group" value="2">
+ <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
+ <p>Only allow contacts that are in a certain group.</p>
+
+ <p>The associated variant in <tp:type>Access_Control</tp:type> is a
+ <tp:type>Group_Handle</tp:type> representing the permitted
+ group.</p>
+ </tp:docstring>
+ </tp:enumvalue>
+ <tp:enumvalue suffix="Open" value="3">
+ <tp:docstring>
+ Allow all contacts. The associated
+ variant in <tp:type>Access_Control</tp:type> is ignored.
+ </tp:docstring>
+ </tp:enumvalue>
+ <tp:enumvalue suffix="Subscribe_Or_Publish_List" value="4">
+ <tp:docstring>
+ Allow all contacts in the user's 'subscribe' or 'publish'
+ list. The associated variant in <tp:type>Access_Control</tp:type> is
+ ignored.
+ </tp:docstring>
+ </tp:enumvalue>
+ <tp:enumvalue suffix="Closed" value="5">
+ <tp:docstring>
+ Forbid all contacts. The associated variant in
+ <tp:type>Access_Control</tp:type> is ignored.
+ </tp:docstring>
+ </tp:enumvalue>
+ <tp:enumvalue suffix="Not_Understood" value="6">
+ <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
+ <p>The access control rule is too complex to be represented
+ in the current Telepathy API. The associated variant is
+ meaningless. Setting this mode is never valid; the
+ connection manager MUST raise an error if this is attempted.</p>
+
+ <tp:rationale>
+ XEP-0016 Privacy Lists can easily produce access control
+ mechanisms that can't be expressed in a simpler API. We
+ need to be able to at least indicate that fact.
+ </tp:rationale>
+
+ <p>The associated variant in <tp:type>Access_Control</tp:type> is
+ ignored.</p>
+ </tp:docstring>
+ </tp:enumvalue>
+ </tp:enum>
+
<tp:enum name="Rich_Presence_Access_Control_Type" type="u"
array-name="Rich_Presence_Access_Control_Type_List">
- <tp:docstring>
- A type of access control for Rich_Presence_Access_Control.
- For most types, the exact access control is given by an associated
- variant.
+ <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
+ <p>A type of access control for Rich_Presence_Access_Control.
+ For most types, the exact access control is given by an associated
+ variant.</p>
<tp:rationale>
- These are the access control types from XMPP publish/subscribe
- (XEP-0060).
+ <p>These are the access control types from XMPP publish/subscribe
+ (XEP-0060).</p>
</tp:rationale>
+
+ <p><tp:dbus-ref namespace="org.freedesktop.Telepathy.Connection.Interface">Location</tp:dbus-ref>
+ uses this for historical reasons, new interfaces will use
+ <tp:type>Access_Control_Type</tp:type>.</p>
</tp:docstring>
<tp:enumvalue suffix="Whitelist" value="0">
@@ -389,13 +467,42 @@
</tp:enumvalue>
</tp:enum>
+ <tp:struct name="Access_Control">
+ <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
+ <p>An access control mode for extended presence items like geolocation.
+ This type isn't actually used by the SimplePresence interface, but
+ it's included here so it can be referenced by rich presence
+ interfaces.</p>
+
+ <p>New interfaces should use this type, and NOT
+ <tp:type>Rich_Presence_Access_Control</tp:type>.</p>
+ </tp:docstring>
+
+ <tp:member name="Type" type="u" tp:type="Access_Control_Type">
+ <tp:docstring>
+ The type of access control to apply.
+ </tp:docstring>
+ </tp:member>
+ <tp:member name="Detail" type="v">
+ <tp:docstring>
+ Any additional information required by the Type. The required
+ type and semantics are defined for each
+ <tp:type>Access_Control_Type</tp:type>.
+ </tp:docstring>
+ </tp:member>
+ </tp:struct>
+
<tp:struct name="Rich_Presence_Access_Control">
- <tp:docstring>
- An access control mode for extended presence items like geolocation.
- This type isn't actually used by the SimplePresence interface, but
- it's included here so it can be referenced by rich presence interfaces
- such as <tp:dbus-ref
- namespace="org.freedesktop.Telepathy.Connection.Interface">Location</tp:dbus-ref>.
+ <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
+ <p>An access control mode for extended presence items like geolocation.
+ This type isn't actually used by the SimplePresence interface, but
+ it's included here so it can be referenced by rich presence interfaces
+ such as <tp:dbus-ref
+ namespace="org.freedesktop.Telepathy.Connection.Interface">Location</tp:dbus-ref>.</p>
+
+ <p><tp:dbus-ref namespace="org.freedesktop.Telepathy.Connection.Interface">Location</tp:dbus-ref>
+ uses this for historical reasons, new interfaces will use
+ <tp:type>Access_Control_Type</tp:type>.</p>
</tp:docstring>
<tp:member name="Type" type="u" tp:type="Rich_Presence_Access_Control_Type">
diff --git a/spec/Makefile.am b/spec/Makefile.am
index 40d58ee8b..d0849249e 100644
--- a/spec/Makefile.am
+++ b/spec/Makefile.am
@@ -68,6 +68,7 @@ EXTRA_DIST = \
Connection_Interface_Capabilities.xml \
Connection_Interface_Cellular.xml \
Connection_Interface_Client_Types.xml \
+ Connection_Interface_Communication_Policy.xml \
Connection_Interface_Contact_Capabilities.xml \
Connection_Interface_Contact_Groups.xml \
Connection_Interface_Contact_Info.xml \
@@ -81,6 +82,7 @@ EXTRA_DIST = \
Connection_Interface_Privacy.xml \
Connection_Interface_Renaming.xml \
Connection_Interface_Requests.xml \
+ Connection_Interface_Resources.xml \
Connection_Interface_Service_Point.xml \
Connection_Interface_Simple_Presence.xml \
Connection_Manager.xml \
diff --git a/spec/all.xml b/spec/all.xml
index 96ed5de7d..2709a4124 100644
--- a/spec/all.xml
+++ b/spec/all.xml
@@ -3,7 +3,7 @@
xmlns:xi="http://www.w3.org/2001/XInclude">
<tp:title>Telepathy D-Bus Interface Specification</tp:title>
-<tp:version>0.21.0</tp:version>
+<tp:version>0.21.1</tp:version>
<tp:copyright>Copyright © 2005-2010 Collabora Limited</tp:copyright>
<tp:copyright>Copyright © 2005-2010 Nokia Corporation</tp:copyright>
@@ -53,6 +53,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.</
<xi:include href="Connection_Interface_Capabilities.xml"/>
<xi:include href="Connection_Interface_Cellular.xml"/>
<xi:include href="Connection_Interface_Client_Types.xml"/>
+ <xi:include href="Connection_Interface_Communication_Policy.xml"/>
<xi:include href="Connection_Interface_Contact_Capabilities.xml"/>
<xi:include href="Connection_Interface_Contact_Groups.xml"/>
<xi:include href="Connection_Interface_Contact_Info.xml"/>
@@ -64,6 +65,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.</
<xi:include href="Connection_Interface_Power_Saving.xml"/>
<xi:include href="Connection_Interface_Presence.xml"/>
<xi:include href="Connection_Interface_Renaming.xml"/>
+ <xi:include href="Connection_Interface_Resources.xml"/>
<xi:include href="Connection_Interface_Requests.xml"/>
<xi:include href="Connection_Interface_Service_Point.xml"/>
<xi:include href="Connection_Interface_Simple_Presence.xml"/>