summaryrefslogtreecommitdiff
path: root/spec
diff options
context:
space:
mode:
authorAndre Moreira Magalhaes (andrunko) <andre.magalhaes@collabora.co.uk>2011-03-25 03:39:17 -0300
committerAndre Moreira Magalhaes (andrunko) <andre.magalhaes@collabora.co.uk>2011-04-22 17:56:38 -0300
commit8a5ec49510f83738ff887f7d8685a41b83c0f895 (patch)
treebc5d8219cb9227edc97896f83598831a8aea1b6a /spec
parente37145cce893e4e4338d331be093da6d65aa6179 (diff)
Update to spec 0.22.0
Diffstat (limited to 'spec')
-rw-r--r--spec/Account.xml58
-rw-r--r--spec/Account_Interface_Avatar.xml4
-rw-r--r--spec/Account_Interface_External_Password_Storage.xml58
-rw-r--r--spec/Account_Interface_Hidden.xml65
-rw-r--r--spec/Account_Manager_Interface_Hidden.xml100
-rw-r--r--spec/Call_Content.xml36
-rw-r--r--spec/Call_Content_Interface_Media.xml36
-rw-r--r--spec/Call_Content_Interface_Video_Control.xml137
-rw-r--r--spec/Call_Stream_Endpoint.xml10
-rw-r--r--spec/Call_Stream_Interface_Media.xml36
-rw-r--r--spec/Channel_Interface_Credentials_Storage.xml59
-rw-r--r--spec/Channel_Interface_SASL_Authentication.xml19
-rw-r--r--spec/Channel_Request.xml13
-rw-r--r--spec/Channel_Type_Call.xml14
-rw-r--r--spec/Channel_Type_File_Transfer.xml49
-rw-r--r--spec/Channel_Type_Server_TLS_Connection.xml60
-rw-r--r--spec/Client_Approver.xml4
-rw-r--r--spec/Client_Observer.xml68
-rw-r--r--spec/Connection.xml6
-rw-r--r--spec/Connection_Interface_Cellular.xml40
-rw-r--r--spec/Connection_Interface_Contact_Blocking.xml207
-rw-r--r--spec/Connection_Manager.xml17
-rw-r--r--spec/Connection_Manager_Interface_Account_Storage.xml120
-rw-r--r--spec/all.xml25
-rw-r--r--spec/errors.xml37
25 files changed, 1150 insertions, 128 deletions
diff --git a/spec/Account.xml b/spec/Account.xml
index acd8c302..b706e279 100644
--- a/spec/Account.xml
+++ b/spec/Account.xml
@@ -162,11 +162,6 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
user at account creation time. The account creation user interface
is responsible for setting a reasonable default value in the user's
locale; something like "Jabber (bob@example.com)" would be sensible.
-
- <tp:rationale>
- This approximately corresponds to "display name" in NMC 4.x and
- Decibel.
- </tp:rationale>
</tp:docstring>
</property>
@@ -177,13 +172,6 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
or the empty string to not specify an icon. If the icon is set to
an empty string, the account manager or any client MAY derive a
default icon, for instance from the protocol.
-
- <tp:rationale>
- This approximately corresponds to mc_profile_get_icon_name
- (or possibly mc_profile_get_branding_icon_name) in NMC 4.x.
- It's accessed via the account rather than the profile because
- we no longer have profiles as a core concept.
- </tp:rationale>
</tp:docstring>
</property>
@@ -256,7 +244,6 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
name for them in our contact list (a "handle" or "pet name" as
described in XEP-0165 and its references). The terminology change
from alias to nickname here is a step in that direction.
- This corresponds to NMC 4.x mc_account_get_alias.
</tp:rationale>
</tp:docstring>
</property>
@@ -318,7 +305,8 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
only those parameters that are stored for this account, and SHOULD
only include those parameters that the user has explicitly set.
</p>
- <p>This property cannot be altered using Set() - use
+ <p>This property cannot be altered using
+ <code>org.freedesktop.DBus.Properties.Set()</code>; use
<tp:member-ref>UpdateParameters</tp:member-ref> instead.</p>
</tp:docstring>
</property>
@@ -328,14 +316,21 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
<p>Change the value of the <tp:member-ref>Parameters</tp:member-ref>
property.</p>
- <p>If any of the changed parameters'
+ <p>If any of the <var>Set</var> parameters’
<tp:type>Conn_Mgr_Param_Flags</tp:type> include
<code>DBus_Property</code>, the change will be applied immediately to
- the
- corresponding D-Bus Property on the active
- <tp:member-ref>Connection</tp:member-ref>, if there is one. Changes to
- other parameters will not take effect until the next time the account
- is disconnected and reconnected.</p>
+ the corresponding D-Bus Property on the active
+ <tp:member-ref>Connection</tp:member-ref>, if there is one. If any of
+ the <var>Unset</var> parameters’
+ <tp:type>Conn_Mgr_Param_Flags</tp:type> include both
+ <code>DBus_Property</code> and <code>Has_Default</code>, the
+ corresponding D-Bus Property on the connection will be set to the
+ default value. Changes to other parameters will not take effect
+ until the next time the account is disconnected and reconnected. (If
+ parameters are explicitly set to their default value, or are unset
+ when previously set to their default value, the account manager MAY
+ decide that no reconnection is necessary to make the change take
+ effect.)</p>
<tp:rationale>
<p>In general, reconnecting is a destructive operation that shouldn't
@@ -374,7 +369,8 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
<arg name="Reconnect_Required" type="as" direction="out">
<tp:docstring xmlns="http://www.w3.org/1999/xhtml">
- <p>If all of the parameters had the <code>DBus_Property</code> flag,
+ <p>If all of the updates could be applied to the active
+ <tp:member-ref>Connection</tp:member-ref> (if any),
the empty list, signifying that no reconnection is required for the
new parameters to take effect. For example, if the only parameter
updated is <tt>...Cellular.<tp:dbus-ref
@@ -441,11 +437,6 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
requested by the user (for
instance, if the user tries to start a conversation using this
account).
-
- <tp:rationale>
- This approximately corresponds to NMC 4.x "enabled" and Decibel
- "autoreconnect".
- </tp:rationale>
</tp:docstring>
</property>
@@ -482,8 +473,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
<tp:rationale>
If the AM is doing some sort of backoff/delay on reconnection
attempts, the account's status is conceptually "Connecting" even
- though there is no Connection. This vaguely corresponds to
- GetCurrentStatus in NMC 4.x.
+ though there is no Connection.
</tp:rationale>
</tp:docstring>
</property>
@@ -499,8 +489,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
<tp:rationale>
If you weren't watching the Connection at the time it failed,
- you can't tell why - unless the AM can tell you. This is part
- of GetCurrentStatus in NMC 4.x.
+ you can't tell why - unless the AM can tell you.
</tp:rationale>
</tp:docstring>
</property>
@@ -568,10 +557,6 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
interface, the type SHOULD be Connection_Presence_Type_Unset.
The account manager is expected to set this by observing signals
from the Connection.
-
- <tp:rationale>
- This corresponds to GetPresenceActual in NMC 4.x.
- </tp:rationale>
</tp:docstring>
</property>
@@ -589,11 +574,6 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
it must signal this by setting the RequestedPresence to the same
thing as the <tp:member-ref>AutomaticPresence</tp:member-ref>.</p>
- <tp:rationale>
- 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>
diff --git a/spec/Account_Interface_Avatar.xml b/spec/Account_Interface_Avatar.xml
index 6c85b8e6..a8b78c8a 100644
--- a/spec/Account_Interface_Avatar.xml
+++ b/spec/Account_Interface_Avatar.xml
@@ -54,10 +54,6 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
an empty string to indicate no avatar. When the account becomes
connected, the account manager SHOULD set this avatar using SetAvatar
if appropriate.
-
- <tp:rationale>
- This corresponds to NMC 4.x mc_account_get_avatar.
- </tp:rationale>
</tp:docstring>
</property>
diff --git a/spec/Account_Interface_External_Password_Storage.xml b/spec/Account_Interface_External_Password_Storage.xml
new file mode 100644
index 00000000..5bd1bfce
--- /dev/null
+++ b/spec/Account_Interface_External_Password_Storage.xml
@@ -0,0 +1,58 @@
+<?xml version="1.0" ?>
+<node name="/Account_Interface_External_Password_Storage"
+ xmlns:tp="http://telepathy.freedesktop.org/wiki/DbusSpec#extensions-v0">
+
+ <tp:copyright>Copyright © 2011 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.Account.Interface.ExternalPasswordStorage.DRAFT"
+ tp:causes-havoc="experimental">
+ <tp:added version="0.21.10">(draft 1)</tp:added>
+ <tp:requires interface="org.freedesktop.Telepathy.Account"/>
+
+ <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
+ <p>An interface for Accounts whose passwords are stored externally and
+ SHOULD NOT be stored by either the
+ <tp:dbus-ref namespace="ofdT">AccountManager</tp:dbus-ref> nor any
+ <tp:dbus-ref namespace="ofdT.Channel.Type">ServerAuthentication</tp:dbus-ref>
+ handler.</p>
+
+ <p>This interface SHOULD only appear on accounts for which the
+ related Connection Manager implements
+ <tp:dbus-ref namespace="ofdT">ConnectionManager.Interface.AccountStorage.DRAFT</tp:dbus-ref>.</p>
+ </tp:docstring>
+
+ <method name="ForgetPassword" tp:name-for-bindings="Forget_Password">
+ <tp:docstring>
+ Clears any saved password associated with this account.
+ </tp:docstring>
+ </method>
+
+ <property name="PasswordSaved"
+ tp:name-for-bindings="Password_Saved"
+ type="b" access="read">
+ <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
+ <p>Indicates whether the account has a saved password or not.</p>
+
+ <p>Change notification for this property is provided by the
+ standard D-Bus <code>PropertiesChanged</code> signal.</p>
+ </tp:docstring>
+ </property>
+
+ </interface>
+</node>
diff --git a/spec/Account_Interface_Hidden.xml b/spec/Account_Interface_Hidden.xml
new file mode 100644
index 00000000..cb001917
--- /dev/null
+++ b/spec/Account_Interface_Hidden.xml
@@ -0,0 +1,65 @@
+<?xml version="1.0" ?>
+<node name="/Account_Interface_Hidden"
+ 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.Account.Interface.Hidden.DRAFT1"
+ tp:causes-havoc="outrageous">
+ <tp:added version="0.21.10">(draft 1)</tp:added>
+
+ <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
+ <p>An interface for flagging certain accounts as hidden, so that they do
+ not appear in the account manager's standard lists of accounts.
+ Accounts whose <tp:member-ref>Hidden</tp:member-ref> property is
+ <code>True</code> are intended for non-interactive use (by
+ non-user-visible services), and appear on the <tp:dbus-ref
+ namespace='ofdT'>AccountManager.Interface.Hidden.DRAFT1</tp:dbus-ref>
+ interface; in all other respects, they behave like any other
+ account.</p>
+
+ <tp:rationale>
+ <p>XMPP, in particular, is increasingly used for purposes other than
+ instant messaging and VoIP. For instance, extensions exist for
+ inter-device bookmark synchronization.</p>
+
+ <p>While obviously these services could re-use connections intended for
+ instant messaging, in some cases you might want to use a different
+ account. (Perhaps your bookmark sync provider is not your IM
+ provider.) This API allows such auxiliary accounts to exist in
+ Telepathy, while not being displayed in standard user interfaces for
+ IM, VoIP, and friends.</p>
+ </tp:rationale>
+ </tp:docstring>
+
+ <property name="Hidden" tp:name-for-bindings="Hidden"
+ type="b" access="read" tp:immutable='aye'>
+ <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
+ <p>If <code>True</code>, this account is intended for non-interactive
+ use, and thus should not be presented to the user. It will not appear
+ in properties and signals on the main <tp:dbus-ref
+ namespace='ofdT'>AccountManager</tp:dbus-ref> interface; instead, it
+ will show up on <tp:dbus-ref
+ namespace='ofdT'>AccountManager.Interface.Hidden.DRAFT1</tp:dbus-ref>.</p>
+ </tp:docstring>
+ </property>
+
+ </interface>
+</node>
+<!-- vim:set sw=2 sts=2 et ft=xml: -->
diff --git a/spec/Account_Manager_Interface_Hidden.xml b/spec/Account_Manager_Interface_Hidden.xml
new file mode 100644
index 00000000..284eb642
--- /dev/null
+++ b/spec/Account_Manager_Interface_Hidden.xml
@@ -0,0 +1,100 @@
+<?xml version="1.0" ?>
+<node name="/Account_Manager_Interface_Hidden"
+ xmlns:tp="http://telepathy.freedesktop.org/wiki/DbusSpec#extensions-v0">
+ <tp:copyright>Copyright © 2010 Collabora Ltd.</tp:copyright>
+ <tp:copyright>Copyright © 2010 Nokia Corporation</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.AccountManager.Interface.Hidden.DRAFT1"
+ tp:causes-havoc='kind of sketchy'>
+ <tp:requires interface='org.freedesktop.Telepathy.AccountManager'/>
+ <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
+ <p>This interface lists accounts whose <tp:dbus-ref
+ namespace='ofdT.Account.Interface.Hidden.DRAFT1'>Hidden</tp:dbus-ref>
+ property is <code>True</code>.</p>
+ </tp:docstring>
+ <tp:added version="0.21.10">first draft</tp:added>
+
+ <property name="ValidHiddenAccounts" type="ao" access="read"
+ tp:name-for-bindings="Valid_Hidden_Accounts">
+ <tp:docstring>
+ A list of valid (complete, usable) <tp:dbus-ref
+ namespace="org.freedesktop.Telepathy">Account</tp:dbus-ref>s intended
+ exclusively for noninteractive applications. These accounts are not
+ included in <tp:dbus-ref
+ namespace='ofdT'>AccountManager.ValidAccounts</tp:dbus-ref>. Change
+ notification is via
+ <tp:member-ref>HiddenAccountValidityChanged</tp:member-ref>.
+ </tp:docstring>
+ </property>
+
+ <property name="InvalidHiddenAccounts" type="ao" access="read"
+ tp:name-for-bindings="Invalid_Hidden_Accounts">
+ <tp:docstring>
+ A list of incomplete or otherwise unusable <tp:dbus-ref
+ namespace="org.freedesktop.Telepathy">Account</tp:dbus-ref>s intended
+ exclusively for noninteractive applications. Change notification is via
+ <tp:member-ref>HiddenAccountValidityChanged</tp:member-ref>.
+ </tp:docstring>
+ </property>
+
+ <signal name="HiddenAccountRemoved"
+ tp:name-for-bindings="Hidden_Account_Removed">
+ <tp:docstring>
+ The given account has been removed from
+ <tp:member-ref>ValidHiddenAccounts</tp:member-ref> or
+ <tp:member-ref>InvalidHiddenAccounts</tp:member-ref>.
+ </tp:docstring>
+
+ <arg name="Account" type="o">
+ <tp:docstring>
+ An Account, which must not be used any more.
+ </tp:docstring>
+ </arg>
+ </signal>
+
+ <signal name="HiddenAccountValidityChanged"
+ tp:name-for-bindings="Hidden_Account_Validity_Changed">
+ <tp:docstring>
+ The validity of the given account has changed. New magic
+ accounts are also indicated by this signal, as an account validity
+ change (usually to True) on an account that did not previously exist.
+
+ <tp:rationale>
+ This is effectively change notification for the valid and invalid
+ accounts lists.
+ </tp:rationale>
+ </tp:docstring>
+
+ <arg name="Account" type="o">
+ <tp:docstring>
+ An <tp:dbus-ref
+ namespace="org.freedesktop.Telepathy">Account</tp:dbus-ref>.
+ </tp:docstring>
+ </arg>
+
+ <arg name="Valid" type="b">
+ <tp:docstring>
+ True if the account is now valid.
+ </tp:docstring>
+ </arg>
+ </signal>
+
+ </interface>
+</node>
+<!-- vim:set sw=2 sts=2 et ft=xml: -->
diff --git a/spec/Call_Content.xml b/spec/Call_Content.xml
index 17ed7109..270d99b0 100644
--- a/spec/Call_Content.xml
+++ b/spec/Call_Content.xml
@@ -250,42 +250,6 @@
<tp:member-ref>StreamsRemoved</tp:member-ref> signals.</p>
</tp:docstring>
</property>
-
- <tp:enum name="Call_Content_Packetization_Type" type="u">
- <tp:added version="0.21.2"/>
- <tp:docstring>
- A packetization method that can be used for a content.
- </tp:docstring>
-
- <tp:enumvalue suffix="RTP" value="0">
- <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
- Real-time Transport Protocol, as documented by RFC 3550.
- </tp:docstring>
- </tp:enumvalue>
-
- <tp:enumvalue suffix="Raw" value="1">
- <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
- Raw media.
- </tp:docstring>
- </tp:enumvalue>
-
- <tp:enumvalue suffix="MSN_Webcam" value="2">
- <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
- MSN webcam. This is the video-only one-way type which was
- used in earlier versions of WLM. Although no longer used,
- modern WLM clients still support the MSN webcam protocol.
- </tp:docstring>
- </tp:enumvalue>
- </tp:enum>
-
- <property name="Packetization" tp:name-for-bindings="Packetization"
- type="u" tp:type="Call_Content_Packetization_Type" access="read"
- tp:immutable="yes">
- <tp:added version="0.21.2"/>
- <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
- <p>The packetization method in use for this content.</p>
- </tp:docstring>
- </property>
</interface>
</node>
<!-- vim:set sw=2 sts=2 et ft=xml: -->
diff --git a/spec/Call_Content_Interface_Media.xml b/spec/Call_Content_Interface_Media.xml
index 274d8b21..038ce8c7 100644
--- a/spec/Call_Content_Interface_Media.xml
+++ b/spec/Call_Content_Interface_Media.xml
@@ -326,6 +326,42 @@
there is no longer any active codec offer) signals.</p>
</tp:docstring>
</property>
+
+ <tp:enum name="Call_Content_Packetization_Type" type="u">
+ <tp:added version="0.21.2"/>
+ <tp:docstring>
+ A packetization method that can be used for a content.
+ </tp:docstring>
+
+ <tp:enumvalue suffix="RTP" value="0">
+ <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
+ Real-time Transport Protocol, as documented by RFC 3550.
+ </tp:docstring>
+ </tp:enumvalue>
+
+ <tp:enumvalue suffix="Raw" value="1">
+ <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
+ Raw media.
+ </tp:docstring>
+ </tp:enumvalue>
+
+ <tp:enumvalue suffix="MSN_Webcam" value="2">
+ <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
+ MSN webcam. This is the video-only one-way type which was
+ used in earlier versions of WLM. Although no longer used,
+ modern WLM clients still support the MSN webcam protocol.
+ </tp:docstring>
+ </tp:enumvalue>
+ </tp:enum>
+
+ <property name="Packetization" tp:name-for-bindings="Packetization"
+ type="u" tp:type="Call_Content_Packetization_Type" access="read"
+ tp:immutable="yes">
+ <tp:added version="0.21.2"/>
+ <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
+ <p>The packetization method in use for this content.</p>
+ </tp:docstring>
+ </property>
</interface>
</node>
<!-- vim:set sw=2 sts=2 et ft=xml: -->
diff --git a/spec/Call_Content_Interface_Video_Control.xml b/spec/Call_Content_Interface_Video_Control.xml
new file mode 100644
index 00000000..b066de42
--- /dev/null
+++ b/spec/Call_Content_Interface_Video_Control.xml
@@ -0,0 +1,137 @@
+<!DOCTYPE node PUBLIC "-//freedesktop//DTD D-BUS Object Introspection 1.0//EN" "http://www.freedesktop.org/standards/dbus/1.0/introspect.dtd">
+<node name="/Call_Content_Interface_Video_Control"
+ xmlns:tp="http://telepathy.freedesktop.org/wiki/DbusSpec#extensions-v0">
+ <tp:copyright>Copyright © 2009-2010 Collabora Ltd.</tp:copyright>
+ <tp:copyright>Copyright © 2009-2010 Nokia Corporation</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.Call.Content.Interface.VideoControl.DRAFT"
+ tp:causes-havoc="experimental">
+ <tp:added version="0.21.10">(draft 1)</tp:added>
+ <tp:requires interface="org.freedesktop.Telepathy.Call.Content.Interface.Media.DRAFT"/>
+
+ <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
+ <p>An interface that allows the connection manager to control the video
+ stream.</p>
+ <p>This interface is generally not needed. In cases where the connection
+ manager handles the network communication and the media is transferred
+ from the client to the connection manager via shared memory, it can
+ sometimes be beneficial for the connection manager to be able to
+ control certain aspects of the video stream.</p>
+ </tp:docstring>
+
+ <signal name="KeyFrameRequested" tp:name-for-bindings="Key_Frame_Requested">
+ <tp:docstring>
+ Request that the video encoder produce a new key frame as soon as
+ possible.
+ </tp:docstring>
+ </signal>
+
+ <tp:struct name="Video_Resolution"
+ array-name="Video_Resolution_Struct">
+ <tp:member type="u" name="Width">
+ <tp:docstring>
+ With of the video stream.
+ </tp:docstring>
+ </tp:member>
+ <tp:member type="u" name="Height">
+ <tp:docstring>
+ Height of the video stream.
+ </tp:docstring>
+ </tp:member>
+ </tp:struct>
+
+ <property name="VideoResolution" type="(uu)" tp:type="Video_Resolution"
+ access="read" tp:name-for-bindings="Video_Resolution">
+ <tp:docstring>
+ The resolution at which the streaming engine should be sending.
+
+ <p>Change notification is via the
+ <tp:member-ref>VideoResolutionChanged</tp:member-ref> signal.</p>
+ </tp:docstring>
+ </property>
+
+ <signal name="VideoResolutionChanged"
+ tp:name-for-bindings="Video_Resolution_Changed">
+ <tp:docstring>
+ The desired video resolution has changed.
+ </tp:docstring>
+ <arg type="(uu)" tp:type="Video_Resolution" name="NewResolution" />
+ </signal>
+
+ <property name="Bitrate" type="u" access="read"
+ tp:name-for-bindings="Bitrate">
+ <tp:docstring>
+ The bitrate the streaming engine should be sending at.
+
+ <p>Change notification is via the
+ <tp:member-ref>BitrateChanged</tp:member-ref> signal.</p>
+ </tp:docstring>
+ </property>
+
+ <signal name="BitrateChanged"
+ tp:name-for-bindings="Bitrate_Changed">
+ <tp:docstring>
+ The desired bitrate has changed
+ </tp:docstring>
+ <arg type="u" name="NewBitrate" />
+ </signal>
+
+ <property name="Framerate" type="u" access="read"
+ tp:name-for-bindings="Framerate">
+ <tp:docstring>
+ The framerate the streaming engine should be sending at.
+
+ <p>Change notification is via the
+ <tp:member-ref>FramerateChanged</tp:member-ref> signal.</p>
+ </tp:docstring>
+ </property>
+
+ <signal name="FramerateChanged"
+ tp:name-for-bindings="Framerate_Changed">
+ <tp:docstring>
+ The desired framerate has changed
+ </tp:docstring>
+ <arg type="u" name="NewFramerate" />
+ </signal>
+
+ <property name="MTU" type="u" access="read"
+ tp:name-for-bindings="MTU">
+ <tp:docstring>
+ The Maximum Transmission Unit
+
+ <p>Change notification is via the
+ <tp:member-ref>MTUChanged</tp:member-ref> signal.</p>
+ </tp:docstring>
+ </property>
+
+ <signal name="MTUChanged" tp:name-for-bindings="MTU_Changed">
+ <tp:docstring>
+ The Maximum Transmission Unit has changed
+ </tp:docstring>
+ <arg type="u" name="NewMTU" />
+ </signal>
+
+ <property name="ManualKeyFrames" type="b" access="read"
+ tp:name-for-bindings="Manual_Key_Frames">
+ <tp:docstring>
+ Only send key frames when manually requested
+ </tp:docstring>
+ </property>
+ </interface>
+</node>
diff --git a/spec/Call_Stream_Endpoint.xml b/spec/Call_Stream_Endpoint.xml
index 4818168d..cf1783d1 100644
--- a/spec/Call_Stream_Endpoint.xml
+++ b/spec/Call_Stream_Endpoint.xml
@@ -72,7 +72,7 @@
</signal>
<property name="RemoteCandidates" tp:name-for-bindings="Remote_Candidates"
- type="a(usqa{sv})" tp:type="Candidate[]" access="read">
+ type="a(usua{sv})" tp:type="Candidate[]" access="read">
<tp:docstring>
A list of candidates for this endpoint.
</tp:docstring>
@@ -85,7 +85,7 @@
<tp:member-ref>RemoteCandidates</tp:member-ref> property.
</tp:docstring>
<arg name="Candidates"
- type="a(usqa{sv})" tp:type="Candidate[]">
+ type="a(usua{sv})" tp:type="Candidate[]">
<tp:docstring>
The candidates that were added.
</tp:docstring>
@@ -98,7 +98,7 @@
Emitted when a candidate is selected for use in the stream.
</tp:docstring>
<arg name="Candidate"
- type="(usqa{sv})" tp:type="Candidate">
+ type="(usua{sv})" tp:type="Candidate">
<tp:docstring>
The candidate that has been selected.
</tp:docstring>
@@ -107,7 +107,7 @@
<property name="SelectedCandidate"
tp:name-for-bindings="Selected_Candidate"
- type="(usqa{sv})" tp:type="Candidate" access="read">
+ type="(usua{sv})" tp:type="Candidate" access="read">
<tp:docstring>
The candidate that has been selected for use to stream packets
to the remote contact. Change notification is given via the
@@ -122,7 +122,7 @@
<tp:member-ref>CandidateSelected</tp:member-ref>.
</tp:docstring>
<arg name="Candidate"
- type="(usqa{sv})" tp:type="Candidate" direction="in">
+ type="(usua{sv})" tp:type="Candidate" direction="in">
<tp:docstring>
The candidate that has been selected.
</tp:docstring>
diff --git a/spec/Call_Stream_Interface_Media.xml b/spec/Call_Stream_Interface_Media.xml
index 9e62c874..54476f0f 100644
--- a/spec/Call_Stream_Interface_Media.xml
+++ b/spec/Call_Stream_Interface_Media.xml
@@ -110,15 +110,41 @@
</tp:member>
</tp:mapping>
+ <tp:enum type="u" name="Stream_Component">
+ <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
+ Media streams can use more than one UDP socket: one for RTP (data)
+ and one for RTCP (control). Most of the time, they are adjacent
+ to each other, but some protocols (xmpp) signal each port separately.
+ </tp:docstring>
+ <tp:enumvalue suffix="Unknown" value="0">
+ <tp:docstring>
+ The stream transport type is unknown or not applicable
+ (should not appear over dbus).
+ </tp:docstring>
+ </tp:enumvalue>
+ <tp:enumvalue suffix="Data" value="1">
+ <tp:docstring>
+ This is the high-traffic data socket, containing the audio/video
+ data for the stream.
+ </tp:docstring>
+ </tp:enumvalue>
+ <tp:enumvalue suffix="Control" value="2">
+ <tp:docstring>
+ This is the low-traffic control socket, usually containing feedback
+ about packet loss etc.
+ </tp:docstring>
+ </tp:enumvalue>
+ </tp:enum>
+
<tp:struct name="Candidate" array-name="Candidate_List">
<tp:docstring>A Stream Candidate.</tp:docstring>
- <tp:member name="Component" type="u">
+ <tp:member name="Component" type="u" tp:type="Stream_Component">
<tp:docstring>The component number.</tp:docstring>
</tp:member>
<tp:member name="IP" type="s">
<tp:docstring>The IP address to use.</tp:docstring>
</tp:member>
- <tp:member name="Port" type="q">
+ <tp:member name="Port" type="u">
<tp:docstring>The port number to use.</tp:docstring>
</tp:member>
<tp:member name="Info" type="a{sv}" tp:type="Candidate_Info">
@@ -133,7 +159,7 @@
signal them to the remote contact(s).
</tp:docstring>
<arg name="Candidates" direction="in"
- type="a(usqa{sv})" tp:type="Candidate[]">
+ type="a(usua{sv})" tp:type="Candidate[]">
<tp:docstring>
The candidates to be added.
</tp:docstring>
@@ -216,7 +242,7 @@
</property>
<property name="LocalCandidates" tp:name-for-bindings="Local_Candidates"
- type="a(usqa{sv})" tp:type="Candidate[]" access="read">
+ type="a(usua{sv})" tp:type="Candidate[]" access="read">
<tp:docstring>
[FIXME]. Change notification is via the
<tp:member-ref>LocalCandidatesAdded</tp:member-ref> signal.
@@ -229,7 +255,7 @@
Emitted when local candidates are added to the
<tp:member-ref>LocalCandidates</tp:member-ref> property.
</tp:docstring>
- <arg name="Candidates" type="a(usqa{sv})" tp:type="Candidate[]">
+ <arg name="Candidates" type="a(usua{sv})" tp:type="Candidate[]">
<tp:docstring>
Candidates that have been added.
</tp:docstring>
diff --git a/spec/Channel_Interface_Credentials_Storage.xml b/spec/Channel_Interface_Credentials_Storage.xml
new file mode 100644
index 00000000..e44b13e3
--- /dev/null
+++ b/spec/Channel_Interface_Credentials_Storage.xml
@@ -0,0 +1,59 @@
+<?xml version="1.0" ?>
+<node name="/Channel_Interface_Credentials_Storage"
+ xmlns:tp="http://telepathy.freedesktop.org/wiki/DbusSpec#extensions-v0">
+ <tp:copyright> Copyright © 2011 Collabora Limited </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.Channel.Interface.CredentialsStorage.DRAFT"
+ tp:causes-havoc="experimental">
+ <tp:added version="0.21.10">(draft 1)</tp:added>
+ <tp:requires interface="org.freedesktop.Telepathy.Channel.Interface.SASLAuthentication"/>
+ <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
+ <p>A channel interface for SASL authentication channels that can save the
+ credentials in the connection manager.</p>
+
+ <p>This interface is unlikely to be present for any SASL channels that are
+ more complex than a simple password prompt (e.g.
+ <code>X-TELEPATHY-PASSWORD</code> or <code>PLAIN</code>).</p>
+
+ <p>In practice, this interface should only be implemented by connection
+ managers that implement the <tp:dbus-ref
+ namespace="ofdT">ConnectionManager.Interface.AccountStorage.DRAFT</tp:dbus-ref>
+ interface. To clear a password that has been saved in this manner, a
+ client should call <tp:dbus-ref
+ namespace="ofdT.ConnectionManager.Interface">AccountStorage.DRAFT.ForgetCredentials</tp:dbus-ref>
+ on the Account.</p>
+ </tp:docstring>
+
+ <method name="StoreCredentials" tp:name-for-bindings="Store_Credentials">
+ <arg direction="in" name="Store" type="b">
+ <tp:docstring>
+ Whether to store the authentication credentials.
+ </tp:docstring>
+ </arg>
+ <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
+ <p>This method tells the connection manager whether to store the
+ authentication response in order to allow the connection manager to
+ sign-on automatically in the future.</p>
+ <p>If credentials have been stored in this way, the client SHOULD NOT
+ attempt to store the credentials locally in a keyring.</p>
+ <p>This method MUST be called before <tp:dbus-ref
+ namespace="org.freedesktop.Telepathy.Channel.Interface.SASLAuthentication">AcceptSASL</tp:dbus-ref>
+ is called or it will have no effect.</p>
+ </tp:docstring>
+ </method>
+ </interface>
+</node>
diff --git a/spec/Channel_Interface_SASL_Authentication.xml b/spec/Channel_Interface_SASL_Authentication.xml
index 38568b1d..7985a6bd 100644
--- a/spec/Channel_Interface_SASL_Authentication.xml
+++ b/spec/Channel_Interface_SASL_Authentication.xml
@@ -367,6 +367,25 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.</
</tp:docstring>
</property>
+ <property name="MaySaveResponse" tp:name-for-bindings="May_Save_Response"
+ type="b" access="read" tp:immutable="yes">
+ <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
+ <p>Whether or not the client can save the authentication response and
+ re-use it to automate future authentication challenges.</p>
+
+ <p>If this property is <code>False</code>, the client SHOULD NOT attempt
+ to cache the authentication response in its own keyring.</p>
+
+ <p>If this property is not specified, it should be treated as if it were
+ <code>True</code>.</p>
+
+ <tp:rationale>Some protocols or services may have terms and conditions
+ that prohibit caching a user's credentials.</tp:rationale>
+
+ </tp:docstring>
+ </property>
+
+
<method name="StartMechanism" tp:name-for-bindings="Start_Mechanism">
<arg direction="in" name="Mechanism" type="s" tp:type="SASL_Mechanism">
<tp:docstring>
diff --git a/spec/Channel_Request.xml b/spec/Channel_Request.xml
index 1a9c397e..fbb67925 100644
--- a/spec/Channel_Request.xml
+++ b/spec/Channel_Request.xml
@@ -2,8 +2,8 @@
<node name="/Channel_Request"
xmlns:tp="http://telepathy.freedesktop.org/wiki/DbusSpec#extensions-v0">
- <tp:copyright>Copyright © 2008-2009 Collabora Ltd.</tp:copyright>
- <tp:copyright>Copyright © 2008-2009 Nokia Corporation</tp:copyright>
+ <tp:copyright>Copyright © 2008–2011 Collabora Ltd.</tp:copyright>
+ <tp:copyright>Copyright © 2008–2009 Nokia Corporation</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
@@ -25,12 +25,15 @@
<tp:added version="0.17.26">(as a stable interface)</tp:added>
<tp:docstring xmlns="http://www.w3.org/1999/xhtml">
- <p>A channel request is an object in the ChannelDispatcher representing
- an ongoing request for some channels to be created or found. There
+ <p>A channel request is an object in the <tp:dbus-ref
+ namespace='ofdT'>ChannelDispatcher</tp:dbus-ref> representing
+ an ongoing request for some channels to be created or found. They are
+ created by methods such as <tp:dbus-ref
+ namespace='ofdT.ChannelDispatcher'>CreateChannel</tp:dbus-ref>. There
can be any number of ChannelRequest objects at the same time.</p>
<p>Its well-known bus name is the same as that of the ChannelDispatcher,
- "org.freedesktop.Telepathy.ChannelDispatcher".</p>
+ <code>"org.freedesktop.Telepathy.ChannelDispatcher"</code>.</p>
<tp:rationale>
<p>See
diff --git a/spec/Channel_Type_Call.xml b/spec/Channel_Type_Call.xml
index 039c1f98..045d4169 100644
--- a/spec/Channel_Type_Call.xml
+++ b/spec/Channel_Type_Call.xml
@@ -32,7 +32,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
<p>Handlers are advised against executing all the media
signalling, codec and candidate negotiation themselves but
instead use a helper library such as <a
- href="http://telepathy.freedesktop.org/doc/telepathy-farsight/">telepathy-farsight</a>
+ href="http://telepathy.freedesktop.org/doc/telepathy-farstream/">telepathy-farstream</a>
which when given a new Call channel will set up the
transports and codecs and create GStreamer pads which
can be added to the handler UI. This is useful as it means
@@ -117,7 +117,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
<tp:type>Call_State</tp:type>_Accepted.</p>
<p>At this point <a
- href="http://telepathy.freedesktop.org/doc/telepathy-farsight/">telepathy-farsight</a>
+ href="http://telepathy.freedesktop.org/doc/telepathy-farstream/">telepathy-farstream</a>
will signal that a pad is available for the handler to show
in the user interface.</p>
@@ -183,9 +183,9 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
<p>Once the handler has notified the local user that there is an
incoming call waiting for acceptance, the handler should call
<tp:member-ref>SetRinging</tp:member-ref> to let the CM know.
- The new channel should also be given to telepathy-farsight to
+ The new channel should also be given to telepathy-farstream to
work out how the two participants will connect together.
- telepathy-farsight will call the appropriate methods on the call's
+ telepathy-farstream will call the appropriate methods on the call's
<tp:dbus-ref namespace="ofdT.Call">Content.DRAFT</tp:dbus-ref>s
to negotiate codecs and transports.</p>
@@ -193,7 +193,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
<tp:member-ref>Accept</tp:member-ref>. The
<tp:member-ref>CallState</tp:member-ref> property changes to
<tp:type>Call_State</tp:type>_Accepted and once media is
- being transferred, telepathy-farsight will notify the
+ being transferred, telepathy-farstream will notify the
handler of a new pad to be shown to the local user in the
UI</p>
@@ -225,9 +225,9 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
</blockquote>
<p>Assuming no errors, the new video content will be added to
- the call. telepathy-farsight will pick up the new content and
+ the call. telepathy-farstream will pick up the new content and
perform the transport and codec negotiation automatically.
- telpathy-farsight will signal when the video is ready to
+ telpathy-farstream will signal when the video is ready to
show in the handler's user interface.</p>
<p>A similar method is used for removing contents from a call,
diff --git a/spec/Channel_Type_File_Transfer.xml b/spec/Channel_Type_File_Transfer.xml
index 19dda060..6963d213 100644
--- a/spec/Channel_Type_File_Transfer.xml
+++ b/spec/Channel_Type_File_Transfer.xml
@@ -260,6 +260,38 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.</
</tp:docstring>
</property>
+ <property name="URI" type="s" access="readwrite"
+ tp:name-for-bindings="URI" tp:immutable="sometimes" tp:requestable="yes">
+ <tp:added version="0.21.9"/>
+ <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
+ <p>For outgoing file transfers, this requestable property allows the channel
+ requester to inform observers (and the handler, if it is not the requester
+ itself) of the URI of the file being transferred. Note that the
+ connection manager SHOULD NOT read this file directly; the handler
+ streams the file into the CM through the socket negotiated using
+ <tp:member-ref>ProvideFile</tp:member-ref>.</p>
+
+ <p>On outgoing file transfers, this property MUST NOT change after the channel
+ is requested.</p>
+
+ <p>For incoming file transfers, this property MAY be set by the channel
+ handler before calling <tp:member-ref>AcceptFile</tp:member-ref> to
+ inform observers where the incoming file will be saved.
+ Setting this property once <tp:member-ref>AcceptFile</tp:member-ref>
+ has been called MUST fail. Once this property has been set
+ <tp:member-ref>URIDefined</tp:member-ref> is emitted.</p>
+
+ <p>If set, this URI SHOULD generally point to a file on the local system, as
+ defined by <a href='http://www.apps.ietf.org/rfc/rfc1738.html#sec-3.10'>
+ RFC 1738 §3.10</a>; that is, it should be of the form
+ <tt>file:///path/to/file</tt> or <tt>file://localhost/path/to/file</tt>.
+ For outgoing files, this URI MAY use a different scheme, such as
+ <tt>http:</tt>, if a remote resource is being transferred
+ to a contact.</p>
+
+ </tp:docstring>
+ </property>
+
<tp:enum name="File_Transfer_State" type="u">
<tp:enumvalue suffix="None" value="0">
<tp:docstring>
@@ -525,6 +557,23 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.</
</arg>
</signal>
+ <signal name="URIDefined"
+ tp:name-for-bindings="URI_Defined">
+ <tp:added version="0.21.9"/>
+ <tp:docstring>
+ Emitted when the value of the <tp:member-ref>URI</tp:member-ref>
+ property has been set. This signal MUST only be emitted on
+ incoming file transfers, and only if the handler sets the
+ <tp:member-ref>URI</tp:member-ref> property before
+ accepting the file.
+ </tp:docstring>
+ <arg name="URI" type="s">
+ <tp:docstring>
+ The value of the <tp:member-ref>URI</tp:member-ref> property.
+ </tp:docstring>
+ </arg>
+ </signal>
+
</interface>
</node>
diff --git a/spec/Channel_Type_Server_TLS_Connection.xml b/spec/Channel_Type_Server_TLS_Connection.xml
index 1f3348e1..97efd1b3 100644
--- a/spec/Channel_Type_Server_TLS_Connection.xml
+++ b/spec/Channel_Type_Server_TLS_Connection.xml
@@ -44,23 +44,71 @@
</tp:docstring>
<property name="ServerCertificate" type="o" access="read"
- tp:name-for-bindings="Server_Certificate">
+ tp:name-for-bindings="Server_Certificate"
+ tp:immutable='yeah'>
<tp:docstring>
<p>A <tp:dbus-ref
namespace="org.freedesktop.Telepathy.Authentication">TLSCertificate</tp:dbus-ref>
containing the certificate chain as sent by the server,
and other relevant information.</p>
- <p>This property is immutable.</p>
</tp:docstring>
</property>
<property name="Hostname" type="s" access="read"
- tp:name-for-bindings="Hostname">
+ tp:name-for-bindings="Hostname"
+ tp:immutable='sharks'>
<tp:added version="0.19.12"/>
<tp:docstring>
- The hostname of the server we expect <tp:member-ref>ServerCertificate</tp:member-ref>
- to certify; clients SHOULD verify <tp:member-ref>ServerCertificate</tp:member-ref> against
- this hostname when checking its validity.
+ <p>The hostname or domain that the user expects to connect to. Clients
+ SHOULD use the <tp:member-ref>ReferenceIdentities</tp:member-ref>
+ property to verify the identity of the certificate. Clients MAY display
+ this hostname to the user as the expected identity. Clients SHOULD use
+ this property to lookup pinned certificates or other user preferences
+ for the connection.</p>
+ </tp:docstring>
+ </property>
+
+ <property name="ReferenceIdentities" type="as" access="read"
+ tp:name-for-bindings="Reference_Identities"
+ tp:immutable='plz'>
+ <tp:added version="0.21.10">
+ If this property is not present, clients SHOULD use the
+ <tp:member-ref>Hostname</tp:member-ref> property as the reference
+ identity to validate server certificates against.
+ </tp:added>
+
+ <tp:docstring>
+ <p>The identities of the server we expect
+ <tp:member-ref>ServerCertificate</tp:member-ref> to certify; clients
+ SHOULD verify that <tp:member-ref>ServerCertificate</tp:member-ref>
+ matches one of these identities when checking its validity.</p>
+
+ <p>This property MUST NOT be the empty list; it MUST
+ contain the value of the <tp:member-ref>Hostname</tp:member-ref>
+ property. All other identities included in this property MUST be derived from
+ explicit user input or choices, such as <tp:dbus-ref
+ namespace='ofdT.Account'>Parameters</tp:dbus-ref> passed to
+ <tp:dbus-ref
+ namespace='ofdT.ConnectionManager'>RequestConnection</tp:dbus-ref>.</p>
+
+ <tp:rationale>
+ <p>The primary use for this property is for XMPP services hosted by
+ <a href='http://www.google.com/apps/intl/en/business/gmail.html'>Google
+ Apps</a>. When connecting to Google Talk using an
+ <tt>@gmail.com</tt> JID, the server correctly presents a
+ certificate for <tt>gmail.com</tt>; however, for domains hosted via
+ Google Apps, a certificate for <tt>talk.google.com</tt> is
+ offered, due to unresolved technical limitations.</p>
+
+ <p>If the user has explicitly chosen to create a <q>Google Talk</q>
+ account, then trusting a certificate for <tt>talk.google.com</tt>
+ is reasonable. To handle this case, the connection manager may add
+ the values of any or all of the <tt>server</tt>,
+ <tt>fallback-server</tt> and <tt>extra-identities</tt> parameters;
+ the Google Talk account creation user interface may set these
+ parameters appropriately, or the user may set them for accounts
+ with other services.</p>
+ </tp:rationale>
</tp:docstring>
</property>
diff --git a/spec/Client_Approver.xml b/spec/Client_Approver.xml
index dd26303d..12cbc76a 100644
--- a/spec/Client_Approver.xml
+++ b/spec/Client_Approver.xml
@@ -77,6 +77,10 @@
<p>Approvers should usually prompt the user and ask for
confirmation, rather than dispatching the channel to a handler
straight away.</p>
+
+ <p>Non-interactive approvers can also be implemented as
+ <tp:dbus-ref namespace="ofdT.Client">Observer</tp:dbus-ref>s as
+ described in the interface description.</p>
</tp:docstring>
<property name="ApproverChannelFilter"
diff --git a/spec/Client_Observer.xml b/spec/Client_Observer.xml
index 01fee8b9..b42b3b1d 100644
--- a/spec/Client_Observer.xml
+++ b/spec/Client_Observer.xml
@@ -86,6 +86,32 @@
destructive happen. Destructive things (e.g. acknowledging messages)
are defined to be done by handlers, therefore HandleWith and Claim
aren't allowed to succeed until all observers are ready.</p>
+
+ <p>Non-interactive approvers (for instance, to shoot down spam
+ IM channels before the tray icon blinks at the user, or to grab
+ a SASL channel before the user is prompted for a password) can
+ be implemented as observers by following these steps:</p>
+
+ <ol>
+ <li><tp:member-ref>ObserveChannels</tp:member-ref>() is called
+ on the observer.</li>
+ <li>The observer calls <tp:dbus-ref
+ namespace="ofdT.ChannelDispatchOperation">Claim</tp:dbus-ref>()
+ on the CDO.</li>
+ <li>The observer then returns from
+ <tp:member-ref>ObserveChannels</tp:member-ref>().</li>
+ <li><tp:dbus-ref
+ namespace="ofdT.ChannelDispatchOperation">Claim</tp:dbus-ref>
+ will return successfully if the channels were successfully
+ claimed, or failure if someone else got there first.</li>
+ </ol>
+
+ <p>Non-interactive approvers implemented as observers SHOULD
+ also set <tp:member-ref>DelayApprovers</tp:member-ref> to TRUE
+ so that other Approvers are not called on until all observers
+ return from <tp:member-ref>ObserveChannels</tp:member-ref>.
+ This gives non-interactive approvers a chance to claim the
+ channels before Approvers are called.</p>
</tp:docstring>
<property name="ObserverChannelFilter"
@@ -374,6 +400,48 @@ Recover=true
</method>
+ <property name="DelayApprovers" type="b" access="read"
+ tp:name-for-bindings="Delay_Approvers">
+ <tp:added version="0.21.11"/>
+ <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
+ <p>If true, the channel dispatcher will wait for
+ <tp:member-ref>ObserveChannels</tp:member-ref> to return
+ before calling <tp:dbus-ref
+ namespace="ofdT.Client">Approver.AddDispatchOperation</tp:dbus-ref>
+ on appropriate Approvers.</p>
+
+ <p>This property SHOULD be false unless there is a reason
+ why a channel should not be given to approvers. An example
+ of this is if an Observer is also a Handler and wants to
+ <tp:dbus-ref
+ namespace="ofdT.ChannelDispatchOperation">Claim</tp:dbus-ref>
+ a channel so that it becomes its handler and doesn't want
+ any approver to be called, this property should be true.</p>
+
+ <p>Observers and Approvers should be called at the same time
+ in normal operation (with this property set to false) to
+ improve responsiveness. For example, if an incoming call
+ appears, the approver should get the channel as fast as
+ possible to show a dialog, but if an approver has to make
+ round-trips to set itself up, then the approval of the
+ channel is delayed. As a result, it is recommended for this
+ property to remain false unless absolutely necessary.</p>
+
+ <p>For service-activatable clients, this property should be
+ specified in the observer's <tt>.client</tt> file as
+ follows:</p>
+
+ <p>If this property is not implemented (telepathy-mission-control
+ 5.7.5 and older), the channel dispatcher SHOULD consider it as
+ being false.</p>
+
+<pre>
+[org.freedesktop.Telepathy.Client.Observer]
+DelayApprovers=true
+</pre>
+ </tp:docstring>
+ </property>
+
</interface>
</node>
<!-- vim:set sw=2 sts=2 et ft=xml: -->
diff --git a/spec/Connection.xml b/spec/Connection.xml
index 51ec1ab2..0ba095a9 100644
--- a/spec/Connection.xml
+++ b/spec/Connection.xml
@@ -1033,6 +1033,12 @@ USA.</p>
<dd>Debugging information on the change, corresponding to the
message part of a D-Bus error message, which SHOULD NOT be
displayed to users under normal circumstances</dd>
+
+ <dt>server-message (s)</dt>
+ <dd>A human-readable message from the server explaining what
+ happened. This may be in the user's native language, or in the
+ server operator's native language, or even in Lojban.</dd>
+
<dt>user-requested (b), expected-hostname (s), certificate-hostname (s)</dt>
<dd>The same details defined in <tp:type>TLS_Certificate_Rejection</tp:type>.</dd>
</dl>
diff --git a/spec/Connection_Interface_Cellular.xml b/spec/Connection_Interface_Cellular.xml
index 99a36028..e9b10e3c 100644
--- a/spec/Connection_Interface_Cellular.xml
+++ b/spec/Connection_Interface_Cellular.xml
@@ -117,13 +117,39 @@
type="b" access="readwrite"
tp:is-connection-parameter='no... just kidding! yes!'>
<tp:docstring xmlns="http://www.w3.org/1999/xhtml">
- <p>Determines whether SMSes containing characters that do not fit into
- a 7‐bit GSM character set should be sent as UCS‐2, or lossily
- recoded. If <code>False</code> (which SHOULD be the default),
- messages will be sent with no loss of fidelity (at the potential
- financial cost of using twice as many SMSes); if <code>True</code>,
- the message will be recoded in an implementation‐specific way to fit
- into a country‐specific GSM reduced character set.</p>
+ <p>Determines how to encode SMSes containing characters that do not
+ fit into a non-Unicode character set.
+ If <code>False</code> (which SHOULD be the default), messages will
+ be encoded as UCS-2 and sent with no loss of fidelity (at the
+ potential financial cost of using twice as many SMSes); if
+ <code>True</code>, the message will be recoded in an
+ implementation‐specific way to fit into a GSM reduced character
+ set.</p>
+ </tp:docstring>
+ </property>
+
+ <property name="MessageNationalCharacterSet"
+ tp:name-for-bindings="Message_National_Character_Set"
+ type="s" access="readwrite"
+ tp:is-connection-parameter='affirmative'>
+ <tp:added version="0.21.12"/>
+ <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
+ <p>Hint for the connection manager for the GSM character set that
+ should be used to send SMSes. The connection manager SHOULD follow
+ this hint unless it has other ways to determine a better encoding.
+ If the value is <code>"gsm"</code> (which SHOULD be the default),
+ SMSes will be encoded in the normal 7-bit GSM character set,
+ eventually falling back to UCS-2; see the
+ <tp:member-ref>MessageReducedCharacterSet</tp:member-ref> property
+ for details.
+ Other valid character sets are specified in the
+ <a href="http://www.3gpp.org/ftp/specs/archive/23_series/23.038/"
+ >GSM standard</a> and are, for instance, <code>"turkey"</code>,
+ <code>"spain"</code> or <code>"portugal"</code>.
+ If the SMS cannot be encoded using the requested character set the
+ behaviour is implementation-specific, but it is RECOMMENDED that
+ the connection manager should behave as if this property was set
+ to <code>"gsm"</code>.</p>
</tp:docstring>
</property>
</interface>
diff --git a/spec/Connection_Interface_Contact_Blocking.xml b/spec/Connection_Interface_Contact_Blocking.xml
new file mode 100644
index 00000000..756fd4db
--- /dev/null
+++ b/spec/Connection_Interface_Contact_Blocking.xml
@@ -0,0 +1,207 @@
+<?xml version="1.0" ?>
+<node name="/Connection_Interface_Contact_Blocking" xmlns:tp="http://telepathy.freedesktop.org/wiki/DbusSpec#extensions-v0">
+ <tp:copyright>Copyright © 2009–2011 Collabora Ltd.</tp:copyright>
+ <tp:copyright>Copyright © 2009 Nokia Corporation</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.ContactBlocking">
+ <tp:requires interface="org.freedesktop.Telepathy.Connection"/>
+ <tp:requires interface="org.freedesktop.Telepathy.Connection.Interface.ContactList"/>
+ <tp:added version='0.21.13'>Changes from the draft:
+ methods and signals now return <tp:type>Handle_Identifier_Map</tp:type>
+ (<code>a{us}</code>) rather than bare lists of contact handles
+ (<code>au</code>)</tp:added>
+
+ <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
+ <p>An interface for connections where contacts can be blocked from
+ communicating with this user and receiving this user's presence.
+ Clients may retrieve a list of currently-blocked contacts using
+ <tp:member-ref>RequestBlockedContacts</tp:member-ref>, and listen for
+ <tp:member-ref>BlockedContactsChanged</tp:member-ref> to be notified
+ when contacts are blocked and unblocked. The
+ <tp:member-ref>BlockContacts</tp:member-ref> and
+ <tp:member-ref>UnblockContacts</tp:member-ref> methods do what they say
+ on the tin; depending on the value of the
+ <tp:member-ref>ContactBlockingCapabilities</tp:member-ref> property,
+ contacts may be reported for spam or other abuse when calling
+ <tp:member-ref>BlockContacts</tp:member-ref>.</p>
+
+ <p>This interface is intended for protocols where blocking contacts
+ persists on the server between connections; connection managers for
+ protocols with no server-side support for blocking contacts MAY choose
+ to implement this interface using an on-disk file of blocked
+ contacts or some other means to store blocked contacts between
+ connections.</p>
+
+ <p>This interface is intended to replace the
+ <tp:dbus-ref namespace="ofdT.Channel.Type">ContactList</tp:dbus-ref>
+ channel with <tp:dbus-ref
+ namespace='ofdT.Channel'>TargetHandleType</tp:dbus-ref>
+ <code>List</code> and <tp:dbus-ref
+ namespace='ofdT.Channel'>TargetID</tp:dbus-ref> <code>"deny"</code>
+ (along with the <tp:dbus-ref
+ namespace='ofdT.Connection.Interface'>ContactList</tp:dbus-ref> and
+ <tp:dbus-ref
+ namespace='ofdT.Connection.Interface'>ContactGroups</tp:dbus-ref>
+ interfaces replacing other channels with <tp:dbus-ref
+ namespace='ofdT.Channel'>TargetHandleType</tp:dbus-ref>
+ <code>List</code> and <tp:dbus-ref
+ namespace='ofdT.Channel'>TargetHandleType</tp:dbus-ref>
+ <code>Group</code>, respectively).</p>
+ </tp:docstring>
+
+ <method name="BlockContacts" tp:name-for-bindings="Block_Contacts">
+ <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
+ <p>Direct the server to block some contacts. The precise effect is
+ protocol-dependent, but SHOULD include ignoring all current and
+ subsequent communications from the given contacts, avoiding sending
+ presence to them in future, and if they were already receiving the
+ local user's presence, behaving as if the local user went
+ offline.</p>
+ </tp:docstring>
+
+ <arg name="Contacts" type="au" direction="in" tp:type="Contact_Handle[]">
+ <tp:docstring>Some contacts to block. If some of the contacts in this
+ list are already blocked, the connection manager MUST act as if they
+ were not specified in this list.</tp:docstring>
+ </arg>
+
+ <arg name="Report_Abusive" type="b" direction="in">
+ <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
+ <p>In addition to blocking, report these contacts as abusive to the
+ server administrators.</p>
+
+ <p>Clients can determine whether this capability is available by
+ checking the
+ <tp:member-ref>ContactBlockingCapabilities</tp:member-ref>
+ property. If this argument is set to <code>True</code> by a client
+ despite <tp:member-ref>ContactBlockingCapabilities</tp:member-ref>
+ not containing the <code>Can_Report_Abusive</code> flag, the
+ connection manager SHOULD act as if it were <code>False</code> and
+ simply block the supplied contacts.</p>
+
+ <tp:rationale>
+ <p>A correct user interface shouldn't get this far without knowing
+ that reporting abusive contacts is not supported. If it does,
+ then the user has expressed their intention to block these
+ contacts. Returning an error would leave the UI with three
+ options:</p>
+
+ <ul>
+ <li>Ignore the error, leaving the contacts not actually blocked;</li>
+ <li>Display an error to the user;</li>
+ <li>Call this method again, passing <code>False</code> for this
+ argument.</li>
+ </ul>
+
+ <p>None of these seem preferable to the CM just ignoring this flag
+ if it doesn't support it: that way, the contacts will be blocked,
+ as the user requested, and UIs have fewer ways to mess up
+ entirely.</p>
+ </tp:rationale>
+ </tp:docstring>
+ </arg>
+ </method>
+
+ <method name="UnblockContacts" tp:name-for-bindings="Unblock_Contacts">
+ <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
+ <p>Direct the server to unblock some contacts.</p>
+ </tp:docstring>
+
+ <arg name="Contacts" type="au" direction="in" tp:type="Contact_Handle[]">
+ <tp:docstring>Some contacts to unblock. If some of the contacts in this
+ list are not currently blocked, the connection manager MUST act as if
+ they were not specified in this list.</tp:docstring>
+ </arg>
+ </method>
+
+ <method name="RequestBlockedContacts"
+ tp:name-for-bindings="Request_Blocked_Contacts">
+ <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
+ <p>List the contacts that are blocked.</p>
+
+ <p>Clients SHOULD allow a relatively long timeout for calls to this
+ method, since on some protocols contact blocking is part of the
+ contact list, which can take a significant time to retrieve.</p>
+ </tp:docstring>
+
+ <arg name="Contacts" type="a{us}" direction="out"
+ tp:type="Handle_Identifier_Map">
+ <tp:docstring>The blocked contacts’ handles, together with their
+ identifiers.</tp:docstring>
+ </arg>
+ </method>
+
+ <signal name="BlockedContactsChanged"
+ tp:name-for-bindings="Blocked_Contacts_Changed">
+ <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
+ <p>Emitted when the list of blocked contacts is first retrieved
+ (before returning from any pending calls to
+ <tp:member-ref>RequestBlockedContacts</tp:member-ref>), and
+ whenever the list of blocked contacts subsequently changes.</p>
+ </tp:docstring>
+
+ <arg name="Blocked_Contacts" type="a{us}" tp:type="Handle_Identifier_Map">
+ <tp:docstring>Contacts added to the result of
+ <tp:member-ref>RequestBlockedContacts</tp:member-ref>.</tp:docstring>
+ </arg>
+
+ <arg name="Unblocked_Contacts" type="a{us}"
+ tp:type="Handle_Identifier_Map">
+ <tp:docstring>Contacts removed from the result of
+ <tp:member-ref>RequestBlockedContacts</tp:member-ref>.</tp:docstring>
+ </arg>
+ </signal>
+
+ <tp:contact-attribute name="blocked" type="b">
+ <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
+ <p><code>True</code> if the contact would be in the result of
+ <tp:member-ref>RequestBlockedContacts</tp:member-ref>;
+ <code>False</code> or omitted if the contact is not blocked, or if it
+ is unknown whether the contact is blocked.</p>
+ </tp:docstring>
+ </tp:contact-attribute>
+
+ <property name="ContactBlockingCapabilities"
+ tp:name-for-bindings="Contact_Blocking_Capabilities"
+ tp:type="Contact_Blocking_Capabilities" type="u" access="read"
+ tp:immutable="yes">
+ <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
+ <p>Additional capabilities for contact blocking; currently, this is
+ limited to whether contacts may be reported as abusive.</p>
+
+ <p>Note that there is no capability for supporting blocking itself:
+ the presence of this interface on a <tp:dbus-ref
+ namespace='ofdT'>Connection</tp:dbus-ref> indicates that blocking
+ contacts is supported.</p>
+ </tp:docstring>
+ </property>
+
+ <tp:flags name="Contact_Blocking_Capabilities" type="u"
+ value-prefix="Contact_Blocking_Capability">
+ <tp:flag suffix="Can_Report_Abusive" value="1">
+ <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
+ When calling <tp:member-ref>BlockContacts</tp:member-ref>, the
+ contacts may be reporting as abusive to the server administrators by
+ setting <var>Report_Abusive</var> to <code>True</code>.
+ </tp:docstring>
+ </tp:flag>
+ </tp:flags>
+
+ </interface>
+</node>
+<!-- vim:set sw=2 sts=2 et ft=xml: -->
diff --git a/spec/Connection_Manager.xml b/spec/Connection_Manager.xml
index d75d866d..3683fcad 100644
--- a/spec/Connection_Manager.xml
+++ b/spec/Connection_Manager.xml
@@ -45,9 +45,10 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.</
a library on which they are based.</p>
<tp:rationale>
- <p>We often abbreviate, for instance, telepathy-haze as "Haze",
- but abbreviating telepathy-sofiasip to "Sofia-SIP" would cause
- confusion between the connection manager and the library it
+ <p>We often abbreviate, for instance, <i>telepathy-haze</i> as
+ “Haze”, but abbreviating <i>telepathy-sofiasip</i>—since renamed to
+ <i>telepathy-rakia</i> for exactly this reason—to “Sofia-SIP”
+ caused confusion between the connection manager and the library it
uses. Please don't repeat that mistake.</p>
</tp:rationale>
</tp:docstring>
@@ -156,9 +157,13 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.</
and possibly changed on an existing Connection using methods on the
<code>org.freedesktop.DBus.Properties</code> interface.</p>
- <p>When a parameter with this flag is changed with <tp:dbus-ref
- namespace="ofdT">Account.UpdateParameters</tp:dbus-ref>, the
- account manager will attempt to update its value on any running
+ <p>When a new value for a parameter with this flag is passed to
+ <tp:dbus-ref namespace="ofdT">Account.UpdateParameters</tp:dbus-ref>,
+ the account manager will attempt to update its value on any running
+ connections. Similarly, if the parameter also has the
+ <code>Has_Default</code> flag, and is passed in the second argument
+ to <code>UpdateParameters</code>, the default value will be applied
+ to any running
connections. Thus, clients generally do not need to directly access
or update the connection property; instead, they SHOULD manipulate
<tp:dbus-ref namespace="ofdT">Account.Parameters</tp:dbus-ref>.</p>
diff --git a/spec/Connection_Manager_Interface_Account_Storage.xml b/spec/Connection_Manager_Interface_Account_Storage.xml
new file mode 100644
index 00000000..2f4f4bf7
--- /dev/null
+++ b/spec/Connection_Manager_Interface_Account_Storage.xml
@@ -0,0 +1,120 @@
+<?xml version="1.0" ?>
+<node name="/Connection_Manager_Interface_Account_Storage"
+ xmlns:tp="http://telepathy.freedesktop.org/wiki/DbusSpec#extensions-v0">
+
+ <tp:copyright>Copyright © 2011 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.ConnectionManager.Interface.AccountStorage.DRAFT"
+ tp:causes-havoc="experimental">
+ <tp:added version="0.21.10">(draft 1)</tp:added>
+ <tp:requires interface="org.freedesktop.Telepathy.ConnectionManager"/>
+
+ <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
+ <p>An interface for connection managers that store account details
+ internally. At the moment this consists only of storing an account's
+ credentials, but other functionality may be added in the future.</p>
+
+ <p><tp:dbus-ref namespace="ofdT">Account</tp:dbus-ref> objects
+ representing accounts on a connection manager that implements this
+ interface should implement the
+ <tp:dbus-ref namespace="ofdT.Account.Interface">ExternalPasswordStorage.DRAFT</tp:dbus-ref>
+ interface.</p>
+ </tp:docstring>
+
+ <tp:flags name="Account_Flags" value-prefix="Account_Flag" type="u">
+ <tp:docstring>
+ A set of flags representing the status of the Account stored in the
+ Connection Manager.
+ </tp:docstring>
+
+ <tp:flag suffix="Credentials_Stored" value="1">
+ <tp:docstring>
+ The associated account has its authentication credentials (password)
+ stored in the connection manager
+ </tp:docstring>
+ </tp:flag>
+ </tp:flags>
+
+ <tp:mapping name="Account_Flags_Map" array-name="Account_Flags_Map_List">
+ <tp:docstring>A mapping from Account_Ids to account flags.
+ </tp:docstring>
+ <tp:member type="s" name="Account_Id"/>
+ <tp:member type="u" tp:type="Account_Flags" name="Flags"/>
+ </tp:mapping>
+
+ <property name="Accounts"
+ tp:name-for-bindings="Accounts"
+ type="a{su}" tp:type="Account_Flags_Map" access="read">
+ <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
+ <p>The set of Accounts stored in this Connection Manager, and flags
+ indicating their status.</p>
+
+ <p>Change notification for this property is provided by the standard
+ D-Bus <code>PropertiesChanged</code> signal.</p>
+ </tp:docstring>
+ </property>
+
+ <method name="ForgetCredentials" tp:name-for-bindings="Forget_Credentials">
+ <tp:docstring>
+ Clears any saved credentials associated with the specified Account_Id.
+ Any other saved data related to the account will be unaffected.
+ </tp:docstring>
+
+ <arg direction="in" name="Account_Id"
+ type="s">
+ <tp:docstring>
+ An account id as returned from
+ <tp:dbus-ref namespace="ofdT">Protocol.IdentifyAccount</tp:dbus-ref>.
+ </tp:docstring>
+ </arg>
+
+ <tp:possible-errors>
+ <tp:error name="org.freedesktop.Telepathy.Error.InvalidArgument">
+ <tp:docstring>
+ The account id is invalid.
+ </tp:docstring>
+ </tp:error>
+ </tp:possible-errors>
+ </method>
+
+ <method name="RemoveAccount" tp:name-for-bindings="Remove_Account">
+ <tp:docstring>
+ Completely removes all data associated with an account from the
+ connection manager's internal storage.
+ </tp:docstring>
+
+ <arg direction="in" name="Account_Id"
+ type="s">
+ <tp:docstring>
+ An account id as returned from
+ <tp:dbus-ref namespace="ofdT">Protocol.IdentifyAccount</tp:dbus-ref>.
+ </tp:docstring>
+ </arg>
+
+ <tp:possible-errors>
+ <tp:error name="org.freedesktop.Telepathy.Error.InvalidArgument">
+ <tp:docstring>
+ The account id is invalid.
+ </tp:docstring>
+ </tp:error>
+ </tp:possible-errors>
+ </method>
+
+ </interface>
+</node>
diff --git a/spec/all.xml b/spec/all.xml
index 7fdd16ce..31db7806 100644
--- a/spec/all.xml
+++ b/spec/all.xml
@@ -3,10 +3,10 @@
xmlns:xi="http://www.w3.org/2001/XInclude">
<tp:title>Telepathy D-Bus Interface Specification</tp:title>
-<tp:version>0.21.8</tp:version>
+<tp:version>0.22.0</tp:version>
-<tp:copyright>Copyright © 2005-2010 Collabora Limited</tp:copyright>
-<tp:copyright>Copyright © 2005-2010 Nokia Corporation</tp:copyright>
+<tp:copyright>Copyright © 2005-2011 Collabora Limited</tp:copyright>
+<tp:copyright>Copyright © 2005-2011 Nokia Corporation</tp:copyright>
<tp:copyright>Copyright © 2006 INdT</tp:copyright>
<tp:license xmlns="http://www.w3.org/1999/xhtml">
@@ -32,6 +32,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.</
</p>
</tp:docstring>
<xi:include href="Connection_Manager.xml"/>
+ <xi:include href="Connection_Manager_Interface_Account_Storage.xml"/>
<xi:include href="Protocol.xml"/>
<xi:include href="Protocol_Interface_Addressing.xml"/>
<xi:include href="Protocol_Interface_Avatars.xml"/>
@@ -55,13 +56,15 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.</
<tp:docstring xmlns="http://www.w3.org/1999/xhtml">
<p>
On protocols that support contact lists, these interface expose the user's
- contact lists, along with presence subscription information and contact
- list groups (if supported).
+ contact lists, along with presence subscription information, contact
+ list groups (if supported), and the ability to block and unblock contacts
+ (if supported).
</p>
</tp:docstring>
<xi:include href="Connection_Interface_Contact_List.xml"/>
<xi:include href="Connection_Interface_Contact_Groups.xml"/>
+ <xi:include href="Connection_Interface_Contact_Blocking.xml"/>
</tp:section>
<tp:section name="Contact metadata interfaces">
@@ -163,6 +166,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.</
<xi:include href="Channel_Interface_Password.xml"/>
<xi:include href="Channel_Interface_Room.xml"/>
<xi:include href="Channel_Interface_SASL_Authentication.xml"/>
+ <xi:include href="Channel_Interface_Credentials_Storage.xml"/>
<xi:include href="Channel_Interface_Securable.xml"/>
<xi:include href="Channel_Interface_Service_Point.xml"/>
<xi:include href="Channel_Interface_Tube.xml"/>
@@ -179,13 +183,14 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.</
<xi:include href="Channel_Interface_SMS.xml"/>
</tp:section>
- <tp:section name="Streamed Media-related interfaces">
+ <tp:section name="Streamed Media/Call-related interfaces">
<tp:docstring xmlns="http://www.w3.org/1999/xhtml">
<p>These interfaces are only applicable to channels of type <tp:dbus-ref
namespace='ofdT.Channel.Type'>StreamedMedia</tp:dbus-ref>, with the
exception of the <tp:dbus-ref
- namespace='ofdT.Channel.Interface'>Hold</tp:dbus-ref> interface, which
- may also appear on <tp:dbus-ref
+ namespace='ofdT.Channel.Interface'>Hold</tp:dbus-ref> and
+ <tp:dbus-ref namespace="ofdT.Channel.Interface">DTMF</tp:dbus-ref>
+ interfaces, which may also appear on <tp:dbus-ref
namespace='ofdT.Channel.Type'>Call.DRAFT</tp:dbus-ref> channels.</p>
</tp:docstring>
@@ -232,6 +237,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.</
<xi:include href="Call_Content.xml"/>
<xi:include href="Call_Content_Interface_Media.xml"/>
<xi:include href="Call_Content_Interface_Mute.xml"/>
+ <xi:include href="Call_Content_Interface_Video_Control.xml"/>
<xi:include href="Call_Content_Codec_Offer.xml"/>
<xi:include href="Call_Stream.xml"/>
<xi:include href="Call_Stream_Interface_Media.xml"/>
@@ -253,10 +259,13 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.</
</p>
</tp:docstring>
<xi:include href="Account_Manager.xml"/>
+ <xi:include href="Account_Manager_Interface_Hidden.xml"/>
<xi:include href="Account.xml"/>
<xi:include href="Account_Interface_Addressing.xml"/>
<xi:include href="Account_Interface_Avatar.xml"/>
+ <xi:include href="Account_Interface_Hidden.xml"/>
<xi:include href="Account_Interface_Storage.xml"/>
+ <xi:include href="Account_Interface_External_Password_Storage.xml"/>
</tp:section>
<tp:section name="The Channel Dispatcher">
diff --git a/spec/errors.xml b/spec/errors.xml
index eccbd095..d63662ed 100644
--- a/spec/errors.xml
+++ b/spec/errors.xml
@@ -544,6 +544,43 @@
</tp:docstring>
</tp:error>
+ <tp:error name="Software Upgrade Required">
+ <tp:added version="0.21.12"/>
+ <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
+ <p>Raised as a
+ <tp:dbus-ref namespace="ofdT.Connection">ConnectionError</tp:dbus-ref>
+ when a Connection cannot be established because either the Connection
+ Manager or its support library (e.g. wocky, papyon, sofiasip) requires
+ upgrading to support a newer protocol version.</p>
+
+ <p>This error corresponds to the
+ <tp:type>Connection_Status_Reason</tp:type> of Network_Error.</p>
+
+ <tp:rationale>
+ Some protocols transmit a protocol or library version number to the
+ server, which will disconnect them if the version isn't appropriate.
+ This way we can report the error to the user, and if appropriate, the
+ user's client can check for updates.
+ </tp:rationale>
+ </tp:docstring>
+ </tp:error>
+
+ <tp:error name="Emergency Calls Not Supported">
+ <tp:added version="0.21.12"/>
+ <tp:docstring>
+ Raised if a client attempts to dial a number that is recognized as an
+ emergency number (e.g. '911' in the USA), but the Connection Manager or
+ provider does not support dialling emergency numbers.
+
+ <tp:rationale>
+ Many VOIP providers have the ability to dial traditional (PSTN)
+ telephone numbers, but do not provide the ability to dial emergency
+ numbers (for instance, Google Voice). This error provides additional
+ information about why such a call was unsuccessful.
+ </tp:rationale>
+ </tp:docstring>
+ </tp:error>
+
<tp:copyright>Copyright © 2005-2010 Collabora Limited</tp:copyright>
<tp:copyright>Copyright © 2005-2009 Nokia Corporation</tp:copyright>
<tp:license xmlns="http://www.w3.org/1999/xhtml">