summaryrefslogtreecommitdiff
path: root/spec
diff options
context:
space:
mode:
authorSimon McVittie <simon.mcvittie@collabora.co.uk>2010-07-20 17:27:15 +0100
committerSimon McVittie <simon.mcvittie@collabora.co.uk>2010-07-20 17:27:15 +0100
commit11f06e38a50fffe3ef02540e09123aeca4113200 (patch)
treee1a46f4e5879c7570424be46656597a316b7c6ed /spec
parent465e4adf6f999d45ee0d780321fe415c76cd150f (diff)
downloadtelepathy-glib-11f06e38a50fffe3ef02540e09123aeca4113200.tar.gz
Update spec to 0.19.10
Diffstat (limited to 'spec')
-rw-r--r--spec/Account.xml30
-rw-r--r--spec/Channel.xml67
-rw-r--r--spec/Channel_Interface_Group.xml28
-rw-r--r--spec/Channel_Interface_Messages.xml12
-rw-r--r--spec/Channel_Type_Contact_Search.xml55
-rw-r--r--spec/Channel_Type_Streamed_Media.xml168
-rw-r--r--spec/Connection_Interface_Anonymity.xml32
-rw-r--r--spec/Connection_Interface_Cellular.xml81
-rw-r--r--spec/Connection_Interface_Forwarding.xml10
-rw-r--r--spec/Connection_Manager.xml4
-rw-r--r--spec/Protocol.xml5
-rw-r--r--spec/Protocol_Interface_Avatars.xml2
-rw-r--r--spec/Protocol_Interface_Presence.xml2
-rw-r--r--spec/all.xml2
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>