diff options
author | Andre Moreira Magalhaes (andrunko) <andre.magalhaes@collabora.co.uk> | 2011-03-25 03:39:17 -0300 |
---|---|---|
committer | Andre Moreira Magalhaes (andrunko) <andre.magalhaes@collabora.co.uk> | 2011-04-22 17:56:38 -0300 |
commit | 8a5ec49510f83738ff887f7d8685a41b83c0f895 (patch) | |
tree | bc5d8219cb9227edc97896f83598831a8aea1b6a /spec | |
parent | e37145cce893e4e4338d331be093da6d65aa6179 (diff) |
Update to spec 0.22.0
Diffstat (limited to 'spec')
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"> |