summaryrefslogtreecommitdiff
path: root/spec/Channel_Interface_Room.xml
diff options
context:
space:
mode:
Diffstat (limited to 'spec/Channel_Interface_Room.xml')
-rw-r--r--spec/Channel_Interface_Room.xml119
1 files changed, 57 insertions, 62 deletions
diff --git a/spec/Channel_Interface_Room.xml b/spec/Channel_Interface_Room.xml
index ffdf4a96..92423b67 100644
--- a/spec/Channel_Interface_Room.xml
+++ b/spec/Channel_Interface_Room.xml
@@ -21,10 +21,9 @@
02110-1301, USA.</p>
</tp:license>
- <interface name="org.freedesktop.Telepathy.Channel.Interface.Room.DRAFT"
- tp:causes-havoc="experimental">
+ <interface name="org.freedesktop.Telepathy.Channel.Interface.Room2">
<tp:requires interface="org.freedesktop.Telepathy.Channel"/>
- <tp:added version="0.19.11">(draft 1)</tp:added>
+ <tp:added version="0.24.0">(version 2)</tp:added>
<tp:docstring xmlns="http://www.w3.org/1999/xhtml">
<p>Different IM protocols use a variety of ways to name chat rooms. The
@@ -40,7 +39,9 @@
href="http://xmpp.org/extensions/xep-0045.html#createroom-unique"><acronym
title="XMPP Extension Protocol">XEP</acronym>-0045 §10.1.4
<q>Requesting a Unique Room Name</q></a> defines a protocol for
- requesting a unique, opaque room name on the server.</p>
+ requesting a unique, opaque room name on the server. Note that
+ this interface is not restricted to Text channels, and can
+ also be used on Call channels.</p>
<p>This interface intends to support and differentiate these mechanisms
more clearly than the <tp:dbus-ref
@@ -61,7 +62,7 @@
<tp:dbus-ref
namespace="org.freedesktop.Telepathy.Channel">TargetID</tp:dbus-ref>
= <code>"#telepathy"</code>,
- <tp:member-ref>RoomID</tp:member-ref> = <code>"#telepathy"</code>,
+ <tp:member-ref>RoomName</tp:member-ref> = <code>"#telepathy"</code>,
<tp:member-ref>Server</tp:member-ref> = <code>""</code>, indicating
that the room has a human-readable identifier, and is not confined to
a particular server on the network.
@@ -82,7 +83,7 @@
<tp:dbus-ref
namespace="org.freedesktop.Telepathy.Channel">TargetID</tp:dbus-ref>
= <code>"0xdeadbeef"</code>,
- <tp:member-ref>RoomID</tp:member-ref> = <code>""</code>,
+ <tp:member-ref>RoomName</tp:member-ref> = <code>""</code>,
<tp:member-ref>Server</tp:member-ref> = <code>""</code>, indicating
that the room has an identifier but no human-readable name.
</li>
@@ -91,7 +92,7 @@
<tp:dbus-ref
namespace="org.freedesktop.Telepathy.Channel">TargetHandleType</tp:dbus-ref>
= <code>None</code>,
- <tp:member-ref>RoomID</tp:member-ref> = <code>""</code>,
+ <tp:member-ref>RoomName</tp:member-ref> = <code>""</code>,
<tp:member-ref>Server</tp:member-ref> = <code>""</code>, indicating
that the room has neither an identifier (so it cannot be re-joined
later) nor a human-readable name.
@@ -105,7 +106,7 @@
<tp:dbus-ref
namespace="org.freedesktop.Telepathy.Channel">TargetID</tp:dbus-ref>
= <code>"jdev@conference.jabber.org"</code>,
- <tp:member-ref>RoomID</tp:member-ref> = <code>"jdev"</code>,
+ <tp:member-ref>RoomName</tp:member-ref> = <code>"jdev"</code>,
<tp:member-ref>Server</tp:member-ref> = <code>"conference.jabber.org"</code>.
</li>
@@ -116,7 +117,7 @@
<tp:dbus-ref
namespace="org.freedesktop.Telepathy.Channel">TargetID</tp:dbus-ref>
= <code>"private-chat-11111x1x-11xx-111x-1111-111x1xx11x11@groupchat.google.com"</code>,
- <tp:member-ref>RoomID</tp:member-ref> = <code>""</code>,
+ <tp:member-ref>RoomName</tp:member-ref> = <code>""</code>,
<tp:member-ref>Server</tp:member-ref> =
<code>"groupchat.google.com"</code>, indicating that the room has a
persistent identifier, no human-readable name, and is hosted by a
@@ -131,7 +132,7 @@
<tp:dbus-ref
namespace="org.freedesktop.Telepathy.Channel">TargetID</tp:dbus-ref>
= <code>"lrcgsnthzvwm@conference.jabber.org"</code>,
- <tp:member-ref>RoomID</tp:member-ref> = <code>""</code>,
+ <tp:member-ref>RoomName</tp:member-ref> = <code>""</code>,
<tp:member-ref>Server</tp:member-ref> =
<code>"conference.jabber.org"</code>, indicating that the room has a
persistent identifier, no human-readable name, and is hosted by a
@@ -165,7 +166,7 @@
>TargetHandle</tp:dbus-ref>.</p>
<p>If, like IRC, the room identifiers are also human-readable, the
- RCCs should also include RoomID in <var>Allowed_Properties</var>:</p>
+ RCCs should also include RoomName in <var>Allowed_Properties</var>:</p>
<blockquote>
<pre>
@@ -179,7 +180,7 @@
>TargetID</tp:dbus-ref>,
...<tp:dbus-ref namespace="org.freedesktop.Telepathy.Channel"
>TargetHandle</tp:dbus-ref>,
- ...<tp:member-ref>RoomID</tp:member-ref>
+ ...<tp:member-ref>RoomName</tp:member-ref>
]
),
@@ -187,14 +188,14 @@
>ChannelType</tp:dbus-ref>: ...<tp:dbus-ref namespace="org.freedesktop.Telepathy.Channel.Type"
>Text</tp:dbus-ref>
},
- Allowed = [ ...<tp:member-ref>RoomID</tp:member-ref>,
+ Allowed = [ ...<tp:member-ref>RoomName</tp:member-ref>,
]
)</pre></blockquote>
- <p>Requests may specify the RoomID in place of
+ <p>Requests may specify the RoomName in place of
<tp:dbus-ref namespace="org.freedesktop.Telepathy.Channel">TargetID</tp:dbus-ref> or
<tp:dbus-ref namespace="org.freedesktop.Telepathy.Channel">TargetHandle</tp:dbus-ref>
- . Note how <tp:member-ref>RoomID</tp:member-ref> appears
+ . Note how <tp:member-ref>RoomName</tp:member-ref> appears
in <var>Allowed_Properties</var> of a different RCC because
when <tp:dbus-ref namespace="org.freedesktop.Telepathy.Channel"
>TargetHandleType</tp:dbus-ref> is omitted (or is None), both
@@ -202,7 +203,7 @@
>TargetHandle</tp:dbus-ref> and
<tp:dbus-ref namespace="org.freedesktop.Telepathy.Channel"
>TargetID</tp:dbus-ref> must also be omitted.
- <tp:member-ref>RoomID</tp:member-ref> is allowed in conjuction
+ <tp:member-ref>RoomName</tp:member-ref> is allowed in conjuction
with
<tp:dbus-ref namespace="org.freedesktop.Telepathy.Channel">TargetID</tp:dbus-ref> or
<tp:dbus-ref namespace="org.freedesktop.Telepathy.Channel">TargetHandle</tp:dbus-ref>
@@ -221,7 +222,7 @@
fallback conference server is specified on jabber connections in
gabble.</p>
- <p>If the protocol supports unnamed rooms, <tp:member-ref>RoomID</tp:member-ref>
+ <p>If the protocol supports unnamed rooms, <tp:member-ref>RoomName</tp:member-ref>
should be fixed to the empty string, and
<tp:dbus-ref namespace="org.freedesktop.Telepathy.Channel">TargetHandleType</tp:dbus-ref>
should be None:</p>
@@ -233,7 +234,7 @@
>Text</tp:dbus-ref>,
...<tp:dbus-ref namespace="org.freedesktop.Telepathy.Channel"
>TargetHandleType</tp:dbus-ref>: None,
- ...<tp:member-ref>RoomID</tp:member-ref>: "",
+ ...<tp:member-ref>RoomName</tp:member-ref>: "",
},
Allowed = [ ]
)</pre></blockquote>
@@ -242,7 +243,7 @@
<p>When explicitly joining a room, the CM cannot know whether the room
ID is unique or not. As a result, if this is the case, adding an
- empty string <tp:member-ref>RoomID</tp:member-ref> into the channel
+ empty string <tp:member-ref>RoomName</tp:member-ref> into the channel
request will ensure the CM knows. For example:</p>
<blockquote>
@@ -250,16 +251,16 @@
{ ...<tp:dbus-ref namespace="org.freedesktop.Telepathy.Channel">ChannelType</tp:dbus-ref>: ...<tp:dbus-ref namespace="org.freedesktop.Telepathy.Channel.Type">Text</tp:dbus-ref>,
...<tp:dbus-ref namespace="org.freedesktop.Telepathy.Channel">TargetHandleType</tp:dbus-ref>: Room,
...<tp:dbus-ref namespace="org.freedesktop.Telepathy.Channel">TargetID</tp:dbus-ref>: "qwerasdfzxcv@conference.jabber.org",
- ...<tp:member-ref>RoomID</tp:member-ref>: ""
+ ...<tp:member-ref>RoomName</tp:member-ref>: ""
}</pre></blockquote>
- <p>If <tp:member-ref>RoomID</tp:member-ref> features in
+ <p>If <tp:member-ref>RoomName</tp:member-ref> features in
<var>Allowed_Properties</var> then the only value allowed in conjunction
with <tp:dbus-ref namespace="org.freedesktop.Telepathy.Channel">TargetID</tp:dbus-ref>
or <tp:dbus-ref namespace="org.freedesktop.Telepathy.Channel">TargetHandle</tp:dbus-ref>
is the empty string. Requests with conflicting
<tp:dbus-ref namespace="org.freedesktop.Telepathy.Channel">TargetID</tp:dbus-ref>
- and <tp:member-ref>RoomID</tp:member-ref> properties
+ and <tp:member-ref>RoomName</tp:member-ref> properties
will fail with InvalidArgument.</p>
<p>To create a XEP-0045 §10.1.4 uniquely-named room channel
@@ -269,7 +270,7 @@
<blockquote>
<pre>
{ ...<tp:dbus-ref namespace="org.freedesktop.Telepathy.Channel">ChannelType</tp:dbus-ref>: ...<tp:dbus-ref namespace="org.freedesktop.Telepathy.Channel.Type">Text</tp:dbus-ref>,
- ...<tp:member-ref>RoomID</tp:member-ref>: ""
+ ...<tp:member-ref>RoomName</tp:member-ref>: ""
...<tp:member-ref>Server</tp:member-ref>: "conference.jabber.org"
}</pre>
</blockquote>
@@ -282,20 +283,20 @@
{ ...<tp:dbus-ref namespace="org.freedesktop.Telepathy.Channel">ChannelType</tp:dbus-ref>: ...<tp:dbus-ref namespace="org.freedesktop.Telepathy.Channel.Type">Text</tp:dbus-ref>,
...<tp:dbus-ref namespace="org.freedesktop.Telepathy.Channel">TargetHandleType</tp:dbus-ref>: Room,
...<tp:dbus-ref namespace="org.freedesktop.Telepathy.Channel">TargetID</tp:dbus-ref>: "kajsdhkajshdfjkshdfjkhs@conference.jabber.org",
- ...<tp:member-ref>RoomID</tp:member-ref>: ""
+ ...<tp:member-ref>RoomName</tp:member-ref>: ""
...<tp:member-ref>Server</tp:member-ref>: "conference.jabber.org"
}</pre>
</blockquote>
<p>The CM will have received the unique room name (kajsdhkajshdfjkshdfjkhs)
and then created a room with such a name on the said server. The empty
- <tp:member-ref>RoomID</tp:member-ref> property shows that the room name
+ <tp:member-ref>RoomName</tp:member-ref> property shows that the room name
is not human-readable.</p>
</tp:docstring>
- <property name="RoomID" tp:name-for-bindings="Room_ID" type="s"
- access="read">
+ <property name="RoomName" tp:name-for-bindings="Room_Name" type="s"
+ access="read" tp:immutable="yes" tp:requestable="yes">
<tp:docstring xmlns="http://www.w3.org/1999/xhtml">
<p>The human-readable identifier of a chat room. Note that if
non-empty, this property (and perhaps also
@@ -303,7 +304,10 @@
a channel request to join the room. XMPP MUCs have a room name
concept which is more like a topic, except more
persistent. This D-Bus property is <strong>not</strong> this
- XMPP room name, but the bit before the @ in the room jid.</p>
+ XMPP room name, but the bit before the @ in the room jid; see
+ <tp:dbus-ref
+ namespace='ofdT.Channel.Interface'>RoomConfig1.Title</tp:dbus-ref>
+ for that concept.</p>
<p>This property cannot change during the lifetime of the channel. It
should appear in the <var>Allowed_Properties</var> of a
@@ -314,7 +318,7 @@
</property>
<property name="Server" tp:name-for-bindings="Server" type="s"
- access="read">
+ access="read" tp:immutable="yes" tp:requestable="yes">
<tp:docstring xmlns="http://www.w3.org/1999/xhtml">
<p>For protocols with a concept of chatrooms on multiple servers with
different DNS names (like XMPP), the DNS name of the server hosting
@@ -329,42 +333,33 @@
</tp:docstring>
</property>
- <tp:struct name="Room_Subject">
- <tp:docstring>
- A struct representing the subject of a room channel.
- </tp:docstring>
- <tp:member type="s" name="Subject">
- <tp:docstring>
- A human-readable description of the current subject of
- conversation in the channel, similar to /topic in IRC.
- </tp:docstring>
- </tp:member>
- <tp:member type="s" name="Actor">
- <tp:docstring>
- A normalized contact ID representing who last modified the
- subject, or the empty string if it is not known.
- </tp:docstring>
- </tp:member>
- <tp:member type="x" tp:type="Unix_Timestamp64" name="Timestamp">
- <tp:docstring>
- A unix timestamp indicating when the subject was last modified.
- </tp:docstring>
- </tp:member>
- </tp:struct>
-
- <property name="Subject" tp:name-for-bindings="Subject"
- type="(ssx)" tp:type="Room_Subject" access="read">
+ <property name="Creator" tp:name-for-bindings="Creator"
+ type="s" access="read" tp:immutable="yes">
+ <tp:added version="0.25.0"/>
<tp:docstring xmlns="http://www.w3.org/1999/xhtml">
- <p>The subject on the room such as the topic in an IRC channel,
- or the room name in XMPP MUCs. In protocols which do not support
- subjects (like MSN), this property should be ("", "", 0).</p>
+ The normalized contact ID representing who created the room; or
+ the empty string if unknown.
+ </tp:docstring>
+ </property>
- <tp:rationale>This property replaces the subject, subject-contact, and
- subject-timestamp Telepathy properties of Text channels, as Telepathy
- properties are soon to be deprecated completely.</tp:rationale>
+ <property name="CreatorHandle" tp:name-for-bindings="Creator_Handle"
+ type="u" tp:type="Contact_Handle" access="read"
+ tp:immutable="yes">
+ <tp:added version="0.25.0"/>
+ <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
+ The handle corresponding to <tp:member-ref>Creator</tp:member-ref>;
+ or 0 if <tp:member-ref>Creator</tp:member-ref> is unknown.
+ </tp:docstring>
+ </property>
- <p>This property may change during the lifetime of the channel and
- MUST not be included in a channel request.</p>
+ <property name="CreationTimestamp"
+ tp:name-for-bindings="Creation_Timestamp"
+ type="x" tp:type="Unix_Timestamp64" access="read"
+ tp:immutable="yes">
+ <tp:added version="0.25.0"/>
+ <tp:docstring xmlns="http://www.w3.org/1999/xhtml">
+ A unix timestamp indicating when the room was created; or
+ <code>INT_MAX64</code> if unknown.
</tp:docstring>
</property>