diff options
author | Simon McVittie <simon.mcvittie@collabora.co.uk> | 2010-07-20 17:27:15 +0100 |
---|---|---|
committer | Simon McVittie <simon.mcvittie@collabora.co.uk> | 2010-07-20 17:27:15 +0100 |
commit | 11f06e38a50fffe3ef02540e09123aeca4113200 (patch) | |
tree | e1a46f4e5879c7570424be46656597a316b7c6ed /spec | |
parent | 465e4adf6f999d45ee0d780321fe415c76cd150f (diff) | |
download | telepathy-glib-11f06e38a50fffe3ef02540e09123aeca4113200.tar.gz |
Update spec to 0.19.10
Diffstat (limited to 'spec')
-rw-r--r-- | spec/Account.xml | 30 | ||||
-rw-r--r-- | spec/Channel.xml | 67 | ||||
-rw-r--r-- | spec/Channel_Interface_Group.xml | 28 | ||||
-rw-r--r-- | spec/Channel_Interface_Messages.xml | 12 | ||||
-rw-r--r-- | spec/Channel_Type_Contact_Search.xml | 55 | ||||
-rw-r--r-- | spec/Channel_Type_Streamed_Media.xml | 168 | ||||
-rw-r--r-- | spec/Connection_Interface_Anonymity.xml | 32 | ||||
-rw-r--r-- | spec/Connection_Interface_Cellular.xml | 81 | ||||
-rw-r--r-- | spec/Connection_Interface_Forwarding.xml | 10 | ||||
-rw-r--r-- | spec/Connection_Manager.xml | 4 | ||||
-rw-r--r-- | spec/Protocol.xml | 5 | ||||
-rw-r--r-- | spec/Protocol_Interface_Avatars.xml | 2 | ||||
-rw-r--r-- | spec/Protocol_Interface_Presence.xml | 2 | ||||
-rw-r--r-- | spec/all.xml | 2 |
14 files changed, 351 insertions, 147 deletions
diff --git a/spec/Account.xml b/spec/Account.xml index 2bce393ee..5917c6f0b 100644 --- a/spec/Account.xml +++ b/spec/Account.xml @@ -330,7 +330,8 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. <p>If any of the changed parameters' <tp:type>Conn_Mgr_Param_Flags</tp:type> include - <code>DBus_Property</code>, the change will be applied to the + <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 @@ -372,14 +373,25 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. </arg> <arg name="Reconnect_Required" type="as" direction="out"> - <tp:docstring> - A list of the names of parameters with changes that will not take - effect until the account is reconnected (this may be empty, e.g. if - all the parameters are D-Bus properties or parameters for which the - account manager has specific support). User interfaces that - require "instant apply" semantics MAY call - <tp:member-ref>Reconnect</tp:member-ref> in response to receiving - a non-empty list. + <tp:docstring xmlns="http://www.w3.org/1999/xhtml"> + <p>If all of the parameters had the <code>DBus_Property</code> flag, + 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 + namespace="org.freedesktop.Telepathy.Connection.Interface.Cellular">MessageValidityPeriod</tp:dbus-ref></tt>, + the new value can be applied immediately to the connection.</p> + + <p>Otherwise, a list of the names of parameters with changes that + will not take effect until the account is reconnected. User + interfaces that require "instant apply" semantics MAY call + <tp:member-ref>Reconnect</tp:member-ref> in response to receiving a + non-empty list. For example, if the caller updates both + <tt>...Anonymity.<tp:dbus-ref + namespace="org.freedesktop.Telepathy.Connection.Interface.Anonymity">AnonymityMandatory</tp:dbus-ref></tt> + and <tt>require-encryption</tt>, the former can be applied to the + current connection, but the latter needs a reconnect to take + effect, so this method should return + <code>["require-encryption"]</code>.</p> </tp:docstring> </arg> diff --git a/spec/Channel.xml b/spec/Channel.xml index 0fedf6896..897b68353 100644 --- a/spec/Channel.xml +++ b/spec/Channel.xml @@ -451,7 +451,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.</ be implemented by all channel objects, along with one single channel type, such as <tp:dbus-ref namespace="org.freedesktop.Telepathy">Channel.Type.ContactList</tp:dbus-ref> - which represents a list of people (such as a buddy list) or a <tp:dbus-ref + which represents a list of people (such as a buddy list) or <tp:dbus-ref namespace="org.freedesktop.Telepathy">Channel.Type.Text</tp:dbus-ref> which represents a channel over which textual messages are sent and received.</p> @@ -472,31 +472,58 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.</ information, by taking the first 7 components.</p> </tp:rationale> - <p>Each channel may have an immutable handle associated with it, which - may be any handle type, such as a contact, room or list handle, - indicating that the channel is for communicating with that handle.</p> - - <p>If a channel does not have a handle (an "anonymous channel" with - Target_Handle = 0 and Target_Handle_Type = Handle_Type_None), it - means that the channel is defined by some other terms, such as it - may be a transient group defined only by its members as visible - through the <tp:dbus-ref - namespace="org.freedesktop.Telepathy">Channel.Interface.Group</tp:dbus-ref> - interface.</p> - - <p>Other optional interfaces can be implemented to indicate other available + <p>Each channel has a number of immutable properties (which cannot vary + after the channel has been announced with <tp:dbus-ref + namespace='ofdT.Connection.Interface.Requests'>NewChannels</tp:dbus-ref>), + provided to clients in the + <tp:dbus-ref namespace='ofdT.Client.Observer'>ObserveChannels</tp:dbus-ref>, + <tp:dbus-ref namespace='ofdT.Client.Approver'>AddDispatchOperation</tp:dbus-ref> and + <tp:dbus-ref namespace='ofdT.Client.Handler'>HandleChannels</tp:dbus-ref> + methods to permit immediate identification of the channel. This interface + contains immutable properties common to all channels. In brief:</p> + + <ul> + <li><tp:member-ref>ChannelType</tp:member-ref> specifies the kind of + communication carried out on this channel;</li> + <li><tp:member-ref>TargetHandleType</tp:member-ref>, + <tp:member-ref>TargetHandle</tp:member-ref> and + <tp:member-ref>TargetID</tp:member-ref> specify the entity with which + this channel communicates, such as the other party in a 1-1 call, or + the name of a multi-user chat room;</li> + <li><tp:member-ref>InitiatorHandle</tp:member-ref> and + <tp:member-ref>InitiatorID</tp:member-ref> specify who created this + channel;</li> + <li><tp:member-ref>Requested</tp:member-ref> indicates whether the local + user requested this channel, or whether it is an incoming call, a text + conversation started by a remote contact, a chatroom invitation, + etc.</li> + </ul> + + <p>Other optional <tp:member-ref>Interfaces</tp:member-ref> can be + implemented to indicate other available functionality, such as <tp:dbus-ref namespace="org.freedesktop.Telepathy">Channel.Interface.Group</tp:dbus-ref> if the channel contains a number of contacts, <tp:dbus-ref namespace="org.freedesktop.Telepathy">Channel.Interface.Password</tp:dbus-ref> to indicate that a channel may have a password set to require entry, and <tp:dbus-ref - namespace="org.freedesktop.Telepathy">Properties</tp:dbus-ref> for - extra data about channels which represent chat rooms or voice calls. The - interfaces implemented may not vary after the channel's creation has been - signalled to the bus (with the connection's <tp:dbus-ref - namespace="org.freedesktop.Telepathy.Connection">NewChannel</tp:dbus-ref> - signal).</p> + namespace="org.freedesktop.Telepathy">Channel.Interface.ChatState</tp:dbus-ref> + for typing notifications. The interfaces implemented may not vary after + the channel has been created. These other interfaces (along with the + interface named by <tp:member-ref>ChannelType</tp:member-ref>) may + themselves specify immutable properties to be announced up-front along + with the properties on this interface.</p> + + <p>Some channels are “anonymous”, with + <tp:member-ref>TargetHandleType</tp:member-ref> set to <code>None</code>, + which indicates that the channel is defined by some other properties. For + instance, transient ad-hoc chat rooms may be defined only by their members (as visible + through the <tp:dbus-ref + namespace="ofdT.Channel.Interface">Group</tp:dbus-ref> + interface), and <tp:dbus-ref + namespace='ofdT.Channel.Type'>ContactSearch</tp:dbus-ref> + channels represent a single search attempt for a particular <tp:dbus-ref + namespace='ofdT.Channel.Type.ContactSearch'>Server</tp:dbus-ref>.</p> <p>Specific connection manager implementations may implement channel types and interfaces which are not contained within this specification in order to diff --git a/spec/Channel_Interface_Group.xml b/spec/Channel_Interface_Group.xml index a3319bf3f..92de9c5c4 100644 --- a/spec/Channel_Interface_Group.xml +++ b/spec/Channel_Interface_Group.xml @@ -580,6 +580,21 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.</ </signal> <tp:enum name="Channel_Group_Change_Reason" type="u"> + <tp:docstring xmlns="http://www.w3.org/1999/xhtml"> + <p>The reason for a set of handles to move to one of + <tp:member-ref>Members</tp:member-ref>, + <tp:member-ref>LocalPendingMembers</tp:member-ref> or + <tp:member-ref>RemotePendingMembers</tp:member-ref>, or to be removed + from the group. A client may supply a reason when attempting to + remove members from a group with + <tp:member-ref>RemoveMembersWithReason</tp:member-ref>, and reasons + are supplied by the CM when emitting + <tp:member-ref>MembersChanged</tp:member-ref> and + <tp:member-ref>MembersChangedDetailed</tp:member-ref>. Some reason + codes have different meanings depending on the <var>Actor</var> in a + MembersChanged signal.</p> + </tp:docstring> + <tp:enumvalue suffix="None" value="0"> <tp:docstring xmlns="http://www.w3.org/1999/xhtml"> <p>No reason was provided for this change.</p> @@ -712,7 +727,8 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.</ <p>If a one-to-one <tp:dbus-ref namespace="org.freedesktop.Telepathy.Channel.Type">StreamedMedia</tp:dbus-ref> - call fails because the contact being called did not respond, the + call fails because the contact being called did not respond, or the + local user did not respond to an incoming call, the connection manager SHOULD indicate this by removing both the <tp:member-ref>SelfHandle</tp:member-ref> and the other contact's handle from the Group interface with reason No_Answer.</p> @@ -836,6 +852,11 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.</ channel-specific handles are added, but that it is emitted <em>after</em> emitting a MembersChanged signal in which channel-specific handles are removed.</p> + + <p>See <tp:dbus-ref + namespace="org.freedesktop.Telepathy.Channel.Type">StreamedMedia</tp:dbus-ref> + for an overview of how group state changes are used to indicate the + progress of a call.</p> </tp:docstring> </signal> @@ -963,6 +984,11 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.</ channel-specific handles are added, but that it is emitted <em>after</em> emitting a MembersChangedDetailed signal in which channel-specific handles are removed.</p> + + <p>See <tp:dbus-ref + namespace="org.freedesktop.Telepathy.Channel.Type">StreamedMedia</tp:dbus-ref> + for an overview of how group state changes are used to indicate the + progress of a call.</p> </tp:docstring> <tp:added version="0.17.16"/> </signal> diff --git a/spec/Channel_Interface_Messages.xml b/spec/Channel_Interface_Messages.xml index 31cf47194..d4fde0d2b 100644 --- a/spec/Channel_Interface_Messages.xml +++ b/spec/Channel_Interface_Messages.xml @@ -557,6 +557,18 @@ USA.</p> Channel_Text_Message_Type_Normal MUST be assumed. MAY be omitted for normal chat messages.</dd> + <dt>supersedes (s – <tp:type>Protocol_Message_Token</tp:type>)</dt> + <dd>If present, this message supersedes a previous message, + identified by its <tt>protocol-token</tt> or + <tt>message-token</tt> header. The user interface MAY, for + example, choose to replace the superseded message with this + message, or grey out the superseded message. + + <tp:rationale>Skype, for example, allows the user to amend + messages they have already sent (to correct typos, + etc.).</tp:rationale> + </dd> + <dt>pending-message-id (u - <tp:type>Message_ID</tp:type>)</dt> <dd>The incoming message ID. This MUST NOT be present on outgoing messages. Clients SHOULD NOT store this key - it is only valid diff --git a/spec/Channel_Type_Contact_Search.xml b/spec/Channel_Type_Contact_Search.xml index 195d97be7..de58bfcc0 100644 --- a/spec/Channel_Type_Contact_Search.xml +++ b/spec/Channel_Type_Contact_Search.xml @@ -18,16 +18,20 @@ Lesser General Public License for more details.</p> License along with this library; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.</p> </tp:license> - <interface name="org.freedesktop.Telepathy.Channel.Type.ContactSearch.DRAFT2" - tp:causes-havoc='experimental'> + <interface name="org.freedesktop.Telepathy.Channel.Type.ContactSearch"> <tp:requires interface="org.freedesktop.Telepathy.Channel"/> - <tp:changed version="0.17.27">(draft 2)</tp:changed> + <tp:added version="0.19.10"> + as stable API. Changes from draft 2: + <tp:type>Contact_Search_Result_Map</tp:type> keys are now identifiers + rather than handles; consequently, the values need not include + <tt>x-telepathy-identifier</tt>. + </tp:added> <tp:docstring xmlns="http://www.w3.org/1999/xhtml"> <p>A channel type for searching server-stored user directories. A new channel should be requested by a client for each search attempt, and closed when the search is completed or the required result has been - found in order to free unused handles.</p> + found.</p> <p>Before searching, the <tp:member-ref>AvailableSearchKeys</tp:member-ref> property should be @@ -57,8 +61,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.</ <p>The client should call the channel's <tp:dbus-ref namespace="org.freedesktop.Telepathy.Channel">Close</tp:dbus-ref> - method when it is finished with the channel, so that any handles held - only by the channel can be released.</p> + method when it is finished with the channel.</p> <p>Each channel can only be used for a single search; a new channel should be requested for each subsequent search. Connection managers @@ -377,10 +380,22 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.</ </method> <tp:mapping name="Contact_Search_Result_Map"> - <tp:docstring>A map from contact handle to search result.</tp:docstring> - <tp:member name="Contact" type="u" tp:type="Contact_Handle"> - <tp:docstring> - An integer handle for the contact. + <tp:docstring>A map from contact identifier to search result, emitted in + the <tp:member-ref>SearchResultReceived</tp:member-ref> + signal.</tp:docstring> + + <tp:member name="Contact_Identifier" type="s"> + <tp:docstring xmlns="http://www.w3.org/1999/xhtml"> + The identifier of a contact matching the search terms. + + <tp:rationale> + This is an identifier rather than a handle in case we make handles + immortal; see <a + href="https://bugs.freedesktop.org/show_bug.cgi?id=23155">fd.o#23155</a> + and <a + href="https://bugs.freedesktop.org/show_bug.cgi?id=13347#c5">fd.o#13347 + comment 5</a>. + </tp:rationale> </tp:docstring> </tp:member> @@ -392,29 +407,17 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.</ interface. It is possible that a separate call to <tp:dbus-ref namespace="org.freedesktop.Telepathy.Connection.Interface.ContactInfo">RequestContactInfo</tp:dbus-ref> would return more information than this signal provides.</p> - - <p>This array SHOULD include the <code>x-telepathy-identifier</code> - field, whose values matches the result of calling <tp:dbus-ref - namespace="org.freedesktop.Telepathy.Connection">InspectHandles</tp:dbus-ref> - on the Contact handle.</p> - - <tp:rationale> - <p>UIs will most likely want to show the identifier to the user; - while they could do this by inspecting the signalled handle, - including it in this signal is cheap and removes a roundtrip to - look it up.</p> - </tp:rationale> </tp:docstring> </tp:member> </tp:mapping> <signal name="SearchResultReceived" tp:name-for-bindings="Search_Result_Received"> - <arg name="Result" type="a{ua(sasas)}" tp:type="Contact_Search_Result_Map"> - <tp:docstring>A mapping from contact handle to an array of fields - representing information about this contact. Handles in this mapping - MUST remain valid until the Channel closes.</tp:docstring> + <arg name="Result" type="a{sa(sasas)}" tp:type="Contact_Search_Result_Map"> + <tp:docstring>A mapping from contact identifier to an array of fields + representing information about this contact.</tp:docstring> </arg> + <tp:docstring> Emitted when a some search results are received from the server. This signal can be fired arbitrarily many times so clients MUST NOT diff --git a/spec/Channel_Type_Streamed_Media.xml b/spec/Channel_Type_Streamed_Media.xml index 4484b7ce3..544565912 100644 --- a/spec/Channel_Type_Streamed_Media.xml +++ b/spec/Channel_Type_Streamed_Media.xml @@ -598,46 +598,126 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.</ </property> <tp:docstring xmlns="http://www.w3.org/1999/xhtml"> - <p>A channel that can send and receive streamed media such as audio or video. - Provides a number of methods for listing and requesting new streams, and - signals to indicate when streams have been added, removed and changed - status.</p> - - <p>To make a media call to a contact, clients should call <tp:dbus-ref - namespace="org.freedesktop.Telepathy.Connection.Interface.Requests">CreateChannel</tp:dbus-ref> - with <tp:dbus-ref - namespace="org.freedesktop.Telepathy.Channel">ChannelType</tp:dbus-ref> - = <tp:dbus-ref - namespace="org.freedesktop.Telepathy.Channel.Type">StreamedMedia</tp:dbus-ref>, - <tp:dbus-ref - namespace="org.freedesktop.Telepathy.Channel">TargetHandleType</tp:dbus-ref> - = Contact, and one of <tp:dbus-ref - namespace="org.freedesktop.Telepathy.Channel">TargetHandle</tp:dbus-ref> - or <tp:dbus-ref - namespace="org.freedesktop.Telepathy.Channel">TargetID</tp:dbus-ref> - (which should yield a channel with the local user in <tp:dbus-ref - namespace="org.freedesktop.Telepathy.Channel.Interface.Group">Members</tp:dbus-ref>, - and the remote contact as <tp:dbus-ref + <p>A channel that can send and receive streamed media such as audio or + video. Provides a number of methods for listing and requesting new + streams, and signals to indicate when streams have been added, removed + and changed status. The state of the call (ringing remotely, ringing + locally, answered, missed, etc.) are represented using the properties + and signals of the Group interface.</p> + + <p>In general this should be used in conjunction with the <tp:dbus-ref + namespace="org.freedesktop.Telepathy.Channel.Interface">MediaSignalling</tp:dbus-ref> + interface to exchange connection candidates and codec choices with + whichever component is responsible for the streams. However, in certain + applications where no candidate exchange is necessary (eg the streams + are handled by specialised hardware which is controlled directly by the + connection manager), the signalling interface can be omitted and this + channel type used simply to control the streams.</p> + + <h4>Outgoing calls</h4> + + <p>To make an audio-only call to a contact <tt>foo@example.com</tt>, + clients should call:</p> + + <blockquote> + <pre> +<tp:dbus-ref + namespace="org.freedesktop.Telepathy.Connection.Interface.Requests">CreateChannel</tp:dbus-ref>({ + <tp:dbus-ref + namespace="org.freedesktop.Telepathy.Channel">ChannelType</tp:dbus-ref>: <tp:dbus-ref + namespace="org.freedesktop.Telepathy.Channel.Type">StreamedMedia</tp:dbus-ref>, + <tp:dbus-ref + namespace="org.freedesktop.Telepathy.Channel">TargetHandleType</tp:dbus-ref>: Contact, + <tp:dbus-ref + namespace="org.freedesktop.Telepathy.Channel">TargetID</tp:dbus-ref>: 'foo@example.com', + <tp:member-ref>InitialAudio</tp:member-ref>: True, +)</pre></blockquote> + + <p>As always, <tp:dbus-ref namespace="org.freedesktop.Telepathy.Channel">TargetHandle</tp:dbus-ref> - but not in any group members list), then call - <tp:member-ref>RequestStreams</tp:member-ref> to initiate the call (at - which point the contact should appear in the channel's <tp:dbus-ref - namespace="org.freedesktop.Telepathy.Channel.Interface.Group">RemotePendingMembers</tp:dbus-ref>).</p> + may be used in place of TargetID if the contact's handle is already + known. To make an audio-and-video call, the client should also specify + <tp:member-ref>InitialVideo</tp:member-ref>. The connection manager + SHOULD return a channel whose immutable properties contain the local + user as the <tp:dbus-ref namespace='ofdT.Channel'>InitiatorHandle</tp:dbus-ref>, + the remote contact as the <tp:dbus-ref namespace='ofdT.Channel'>TargetHandle</tp:dbus-ref>, + <tp:dbus-ref namespace='ofdT.Channel'>Requested</tp:dbus-ref> = <code>True</code> + (indicating that the call is outgoing); the <tp:dbus-ref + namespace='ofdT.Channel.Interface'>Group</tp:dbus-ref> interface should + initially have the local user in <tp:dbus-ref + namespace='ofdT.Channel.Interface.Group'>Members</tp:dbus-ref> and the remote + contact in <tp:dbus-ref + namespace='ofdT.Channel.Interface.Group'>RemotePendingMembers</tp:dbus-ref>, to + indicate that we are awaiting their response.</p> + + <p>The contact answering the call is represented by the CM signalling + <tp:dbus-ref + namespace="org.freedesktop.Telepathy.Channel.Interface.Group">MembersChanged</tp:dbus-ref>, + moving the remote contact to Members, with the remote contact as the + <var>Actor</var> and <var>Reason</var> <code>None</code>. The contact + rejecting the call is represented by both contacts being removed from + the group, with the remote contact as the <var>Actor</var> and + <var>Reason</var> set appropriately. The local user may hang up at any + time by calling + <tp:dbus-ref + namespace="org.freedesktop.Telepathy.Channel.Interface.Group">RemoveMembersWithReason</tp:dbus-ref> + to remove themself, with an appropriate reason; the CM SHOULD relay the + reason to the remote contact, and emit MembersChanged removing both + contacts from the group with the self handle as the <var>Actor</var>.</p> - <p>In the past, several other patterns have been used to place outgoing + <p>(In the past, several other patterns have been used to place outgoing calls; see <a href="http://telepathy.freedesktop.org/wiki/Requesting%20StreamedMedia%20channels">'Requesting StreamedMedia Channels' on the Telepathy wiki</a> - for the details.</p> + for the details.)</p> + + <h4>Incoming calls</h4> - <p>Incoming calls should be signalled as <tp:dbus-ref + <p>Incoming calls' immutable properties should contain <tp:dbus-ref namespace="org.freedesktop.Telepathy.Channel">TargetHandleType</tp:dbus-ref> - = Contact, <tp:dbus-ref - namespace="org.freedesktop.Telepathy.Channel">TargetHandle</tp:dbus-ref> - set to the remote contact, with the local user in <tp:dbus-ref - namespace="org.freedesktop.Telepathy.Channel.Interface.Group">LocalPendingMembers</tp:dbus-ref>; - to accept the call, <tp:dbus-ref + = Contact, both <tp:dbus-ref + namespace="org.freedesktop.Telepathy.Channel">TargetHandle</tp:dbus-ref> and + <tp:dbus-ref + namespace="org.freedesktop.Telepathy.Channel">InitiatorHandle</tp:dbus-ref> + set to the remote contact, <tp:dbus-ref + namespace='ofdT.Channel'>Requested</tp:dbus-ref> = <code>False</code> + (indicating that this is an incoming call), and appropriate values of + <tp:member-ref>InitialAudio</tp:member-ref> and + <tp:member-ref>InitialVideo</tp:member-ref>; the Group interface should + initially have the local user in <tp:dbus-ref + namespace="ofdT.Channel.Interface.Group">LocalPendingMembers</tp:dbus-ref> + and the remote contact in <tp:dbus-ref + namespace="ofdT.Channel.Interface.Group">Members</tp:dbus-ref>, + indicating that the contact is awaiting our response.</p> + + <p>To accept the call, use <tp:dbus-ref namespace="org.freedesktop.Telepathy.Channel.Interface.Group">AddMembers</tp:dbus-ref> - can be used to move the local user to the group's members.</p> + to move the local user to the group's members. To reject the call, use + <tp:dbus-ref + namespace="org.freedesktop.Telepathy.Channel.Interface.Group">RemoveMembersWithReason</tp:dbus-ref> + to remove the local member from the group, with an appropriate reason. + If the remote user ends the call before it is answered, this is + represented by <tp:dbus-ref + namespace="org.freedesktop.Telepathy.Channel.Interface.Group">MembersChanged</tp:dbus-ref> + removing both parties from the group with the remote contact as the + <var>Actor</var>, and <var>Reason</var> set appropriately.</p> + + <p>Note that the call may end with the self handle as the + <var>Actor</var> without the user having chosen to reject the call, as + indicated by the nature of the <var>Reason</var>. Specifically, some + local component may time out the call (indicating this with reason + <code>No_Answer</code>; for example, the CM may have forwarded the call + to another number, as configured using <tp:dbus-ref + namespace='ofdT.Connection.Interface'>Forwarding.DRAFT</tp:dbus-ref>), + or something may have gone wrong with the call + (indicated by reason <code>Error</code>). Such calls SHOULD be + considered missed, just as if the remote contact had hung up before the + local user answered the call.</p> + + <tp:rationale> + <p>This is a bit awkward, but these are the best ways we can represent + these situations. It's important to document which calls should be + considered missed, to ensure that the user can be notified.</p> + </tp:rationale> <p>When the local user accepts an incoming call, the connection manager SHOULD change the direction of any streams with pending local send @@ -658,14 +738,20 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.</ should be removed when this specification is revised.</p> </tp:rationale> - <p>In general this should be used in conjunction with the <tp:dbus-ref - namespace="org.freedesktop.Telepathy.Channel.Interface">MediaSignalling</tp:dbus-ref> - interface to exchange connection candidates and codec choices with - whichever component is responsible for the streams. However, in certain - applications where no candidate exchange is necessary (eg the streams are - handled by specialised hardware which is controlled directly by the - connection manager), the signalling interface can be omitted and this - channel type used simply to control the streams.</p> + <h4>During a call</h4> + + <p>If <tp:member-ref>ImmutableStreams</tp:member-ref> is + <code>False</code>, new streams may be requested using + <tp:member-ref>RequestStreams</tp:member-ref> (to add video to an + audio-only call, for instance), and existing streams may be removed using + <tp:member-ref>RemoveStreams</tp:member-ref> (for example, to downgrade + an audio-video call to audio-only). The call may be ended by calling + <tp:dbus-ref + namespace="org.freedesktop.Telepathy.Channel.Interface.Group">RemoveMembers</tp:dbus-ref> + or <tp:dbus-ref + namespace="org.freedesktop.Telepathy.Channel.Interface.Group">RemoveMembersWithReason</tp:dbus-ref>; the call ending is signalled by the CM emitting <tp:dbus-ref + namespace="org.freedesktop.Telepathy.Channel.Interface.Group">MembersChanged</tp:dbus-ref>, + removing both parties from the group.</p> <h4>Handler filters</h4> diff --git a/spec/Connection_Interface_Anonymity.xml b/spec/Connection_Interface_Anonymity.xml index 4d7391891..31f1554f8 100644 --- a/spec/Connection_Interface_Anonymity.xml +++ b/spec/Connection_Interface_Anonymity.xml @@ -123,17 +123,21 @@ SHOULD also set this property first (rather than accepting the CM's default value).</p> - <p>This property SHOULD also be made available as a parameter to - <tp:dbus-ref + <p>This property SHOULD also be made available as a parameter of the + same (fully-qualified) name to <tp:dbus-ref namespace="org.freedesktop.Telepathy.ConnectionManager">RequestConnection</tp:dbus-ref>, with the DBus_Property flag in its <tp:type>Conn_Mgr_Param_Flags</tp:type>. For connections managed by the <tp:dbus-ref namespace="org.freedesktop.Telepathy">AccountManager</tp:dbus-ref>, - clients (other than the account manager itself) SHOULD set this - property via the Account's <tp:dbus-ref - namespace="org.freedesktop.Telepathy.Account">UpdateParameters</tp:dbus-ref> - method.</p> + this property SHOULD be set via the Account Manager as follows:</p> + + <blockquote> + <code><tp:dbus-ref namespace="org.freedesktop.Telepathy.Account" + >UpdateParameters</tp:dbus-ref>({ + "org.freedesktop.Telepathy.Connection.Interface.Anonymity.AnonymityMandatory": <var>new_value</var> + }, [])</code> + </blockquote> </tp:docstring> </property> @@ -146,17 +150,21 @@ the modes will result in emission of <tp:member-ref>AnonymityModesChanged</tp:member-ref> signal.</p> - <p>This property SHOULD also be made available as a parameter to - <tp:dbus-ref + <p>This property SHOULD also be made available as a parameter of the + same (fully-qualified) name to <tp:dbus-ref namespace="org.freedesktop.Telepathy.ConnectionManager">RequestConnection</tp:dbus-ref>, with the DBus_Property flag in its <tp:type>Conn_Mgr_Param_Flags</tp:type>. For connections managed by the <tp:dbus-ref namespace="org.freedesktop.Telepathy">AccountManager</tp:dbus-ref>, - clients (other than the account manager itself) SHOULD set this - property via the Account's <tp:dbus-ref - namespace="org.freedesktop.Telepathy.Account">UpdateParameters</tp:dbus-ref> - method.</p> + this property SHOULD be set via the Account Manager as follows:</p> + + <blockquote> + <code><tp:dbus-ref namespace="org.freedesktop.Telepathy.Account" + >UpdateParameters</tp:dbus-ref>({ + "org.freedesktop.Telepathy.Connection.Interface.Anonymity.AnonymityModes": <var>new_value</var> + }, [])</code> + </blockquote> </tp:docstring> <tp:possible-errors> <tp:error name="org.freedesktop.Telepathy.Error.InvalidArgument"> diff --git a/spec/Connection_Interface_Cellular.xml b/spec/Connection_Interface_Cellular.xml index f6427806a..bf0f1a9c8 100644 --- a/spec/Connection_Interface_Cellular.xml +++ b/spec/Connection_Interface_Cellular.xml @@ -42,17 +42,24 @@ protocol or provider.</p> <p>Connections with this interface SHOULD provide this property as a - parameter for <tp:dbus-ref namespace="org.freedesktop.Telepathy" + parameter of the same (fully-qualified) name to <tp:dbus-ref + namespace="org.freedesktop.Telepathy" >ConnectionManager.RequestConnection</tp:dbus-ref>, with the - <code>DBus_Property</code> flag.</p> - - <p>For connections managed by the <tp:dbus-ref - namespace="org.freedesktop.Telepathy">AccountManager</tp:dbus-ref>, - this property SHOULD be set via the Account Manager, by calling - <tp:dbus-ref namespace="org.freedesktop.Telepathy" - >Account.UpdateParameters</tp:dbus-ref>; the AccountManager - provides change-notification, as long as all other clients cooperate - by using it instead of setting this property directly.</p> + <code>DBus_Property</code> flag. For connections managed by the + <tp:dbus-ref + namespace="org.freedesktop.Telepathy">AccountManager</tp:dbus-ref>, + this property SHOULD be set via the Account Manager as follows:</p> + + <blockquote> + <code><tp:dbus-ref namespace="org.freedesktop.Telepathy.Account" + >UpdateParameters</tp:dbus-ref>({ + "org.freedesktop.Telepathy.Connection.Interface.Cellular.MessageValidityPeriod": <var>new_validity_period</var> + }, [])</code> + </blockquote> + + <p>The AccountManager provides change-notification, as long as all + other clients cooperate by using it instead of setting this property + directly.</p> </tp:docstring> </property> @@ -64,17 +71,24 @@ number).</p> <p>Connections with this interface SHOULD provide this property as a - parameter for <tp:dbus-ref namespace="org.freedesktop.Telepathy" + parameter of the same (fully-qualified) name to <tp:dbus-ref + namespace="org.freedesktop.Telepathy" >ConnectionManager.RequestConnection</tp:dbus-ref>, with the - <code>DBus_Property</code> flag.</p> - - <p>For connections managed by the <tp:dbus-ref - namespace="org.freedesktop.Telepathy">AccountManager</tp:dbus-ref>, - this property SHOULD be set via the Account Manager, by calling - <tp:dbus-ref namespace="org.freedesktop.Telepathy" - >Account.UpdateParameters</tp:dbus-ref>; the AccountManager - provides change-notification, as long as all other clients cooperate - by using it instead of setting this property directly.</p> + <code>DBus_Property</code> flag. For connections managed by the + <tp:dbus-ref + namespace="org.freedesktop.Telepathy">AccountManager</tp:dbus-ref>, + this property SHOULD be set via the Account Manager as follows:</p> + + <blockquote> + <code><tp:dbus-ref namespace="org.freedesktop.Telepathy.Account" + >UpdateParameters</tp:dbus-ref>({ + "org.freedesktop.Telepathy.Connection.Interface.Cellular.MessageServiceCentre": <var>new_smsc_address</var> + }, [])</code> + </blockquote> + + <p>The AccountManager provides change-notification, as long as all + other clients cooperate by using it instead of setting this property + directly.</p> </tp:docstring> </property> @@ -117,17 +131,24 @@ into a country‐specific GSM reduced character set.</p> <p>Connections with this interface SHOULD provide this property as a - parameter for <tp:dbus-ref namespace="org.freedesktop.Telepathy" + parameter of the same (fully-qualified) name to <tp:dbus-ref + namespace="org.freedesktop.Telepathy" >ConnectionManager.RequestConnection</tp:dbus-ref>, with the - <code>DBus_Property</code> flag.</p> - - <p>For connections managed by the <tp:dbus-ref - namespace="org.freedesktop.Telepathy">AccountManager</tp:dbus-ref>, - this property SHOULD be set via the Account Manager, by calling - <tp:dbus-ref namespace="org.freedesktop.Telepathy" - >Account.UpdateParameters</tp:dbus-ref>; the AccountManager - provides change‐notification, as long as all other clients cooperate - by using it instead of setting this property directly.</p> + <code>DBus_Property</code> flag. For connections managed by the + <tp:dbus-ref + namespace="org.freedesktop.Telepathy">AccountManager</tp:dbus-ref>, + this property SHOULD be set via the Account Manager as follows:</p> + + <blockquote> + <code><tp:dbus-ref namespace="org.freedesktop.Telepathy.Account" + >UpdateParameters</tp:dbus-ref>({ + "org.freedesktop.Telepathy.Connection.Interface.Cellular.MessageReducedCharacterSet": <var>new_value</var> + }, [])</code> + </blockquote> + + <p>The AccountManager provides change-notification, as long as all + other clients cooperate by using it instead of setting this property + directly.</p> </tp:docstring> </property> </interface> diff --git a/spec/Connection_Interface_Forwarding.xml b/spec/Connection_Interface_Forwarding.xml index 7035ca999..e5457b1ea 100644 --- a/spec/Connection_Interface_Forwarding.xml +++ b/spec/Connection_Interface_Forwarding.xml @@ -85,6 +85,16 @@ CM then waits 30s for Handle #5 to accept the channel. If after 30s it does not, the CM forwards the incoming channel to Handle #3, which will have 20s to accept the channel.</p> + + <p>When an unanswered <tp:dbus-ref + namespace='ofdT.Channel.Type'>StreamedMedia</tp:dbus-ref> call is + forwarded, both the contact and the self handle should be removed from + the group with the self handle as the actor, and + <tp:type>Channel_Group_Change_Reason</tp:type> <code>No_Answer</code> or + <code>Busy</code>, as appropriate. For <tp:dbus-ref + namespace='ofdT.Channel.Type'>Call.DRAFT</tp:dbus-ref> channels, the + <tp:type>Call_State_Change_Reason</tp:type> <code>Forwarded</code> + should be used.</p> </tp:docstring> <tp:enum name="Forwarding_Condition" type="u"> diff --git a/spec/Connection_Manager.xml b/spec/Connection_Manager.xml index 0d0bbecb4..709a9b952 100644 --- a/spec/Connection_Manager.xml +++ b/spec/Connection_Manager.xml @@ -192,7 +192,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.</ <p>A map from protocol identifiers supported by a connection manager to the immutable properties of the corresponding <tp:dbus-ref namespace="org.freedesktop.Telepathy" - >Protocol.DRAFT</tp:dbus-ref> objects.</p> + >Protocol</tp:dbus-ref> objects.</p> </tp:docstring> <tp:member name="Protocol" type="s" tp:type="Protocol"> @@ -212,7 +212,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.</ <p>A map from protocol identifiers supported by this connection manager to the immutable properties of the corresponding <tp:dbus-ref namespace="org.freedesktop.Telepathy" - >Protocol.DRAFT</tp:dbus-ref> objects.</p> + >Protocol</tp:dbus-ref> objects.</p> <tp:rationale> <p>Providing the immutable properties here means that diff --git a/spec/Protocol.xml b/spec/Protocol.xml index 55585b20b..91c350f58 100644 --- a/spec/Protocol.xml +++ b/spec/Protocol.xml @@ -20,9 +20,8 @@ 02110-1301, USA.</p> </tp:license> - <interface name="org.freedesktop.Telepathy.Protocol.DRAFT" - tp:causes-havoc="experimental"> - <tp:added version="0.19.8">(draft 1)</tp:added> + <interface name="org.freedesktop.Telepathy.Protocol"> + <tp:added version="0.19.10">(as stable API)</tp:added> <tp:docstring xmlns="http://www.w3.org/1999/xhtml"> <p>An object representing a protocol for which this <tp:dbus-ref diff --git a/spec/Protocol_Interface_Avatars.xml b/spec/Protocol_Interface_Avatars.xml index 9dc630800..262741e1a 100644 --- a/spec/Protocol_Interface_Avatars.xml +++ b/spec/Protocol_Interface_Avatars.xml @@ -23,7 +23,7 @@ <interface name="org.freedesktop.Telepathy.Protocol.Interface.Avatars.DRAFT" tp:causes-havoc="experimental"> <tp:added version="0.19.8">(draft 1)</tp:added> - <tp:requires interface="org.freedesktop.Telepathy.Protocol.DRAFT"/> + <tp:requires interface="org.freedesktop.Telepathy.Protocol"/> <tp:docstring xmlns="http://www.w3.org/1999/xhtml"> <p>An interface for protocols where it might be possible to set the diff --git a/spec/Protocol_Interface_Presence.xml b/spec/Protocol_Interface_Presence.xml index 1ae3cfb6a..47a37eab0 100644 --- a/spec/Protocol_Interface_Presence.xml +++ b/spec/Protocol_Interface_Presence.xml @@ -23,7 +23,7 @@ <interface name="org.freedesktop.Telepathy.Protocol.Interface.Presence.DRAFT" tp:causes-havoc="experimental"> <tp:added version="0.19.8">(draft 1)</tp:added> - <tp:requires interface="org.freedesktop.Telepathy.Protocol.DRAFT"/> + <tp:requires interface="org.freedesktop.Telepathy.Protocol"/> <tp:docstring xmlns="http://www.w3.org/1999/xhtml"> <p>An interface for protocols where it might be possible to set the diff --git a/spec/all.xml b/spec/all.xml index e77f63405..9140a1f30 100644 --- a/spec/all.xml +++ b/spec/all.xml @@ -3,7 +3,7 @@ xmlns:xi="http://www.w3.org/2001/XInclude"> <tp:title>Telepathy D-Bus Interface Specification</tp:title> -<tp:version>0.19.9</tp:version> +<tp:version>0.19.10</tp:version> <tp:copyright>Copyright © 2005-2010 Collabora Limited</tp:copyright> <tp:copyright>Copyright © 2005-2010 Nokia Corporation</tp:copyright> |