117
122
<tp:flags name="Channel_Group_Flags" value-prefix="Channel_Group_Flag" type="u">
118
123
<tp:flag suffix="Can_Add" value="1">
120
The AddMembers method can be used to add or invite members who are
125
The <tp:member-ref>AddMembers</tp:member-ref> method can be used to
126
add or invite members who are
121
127
not already in the local pending list (which is always valid).
124
130
<tp:flag suffix="Can_Remove" value="2">
126
The RemoveMembers method can be used to remove channel members
132
The <tp:member-ref>RemoveMembers</tp:member-ref> method can be used
133
to remove channel members
127
134
(removing those on the pending local list is always valid).
130
137
<tp:flag suffix="Can_Rescind" value="4">
132
The RemoveMembers method can be used on people on the remote
139
The <tp:member-ref>RemoveMembers</tp:member-ref> method can be used
140
on people on the remote
136
144
<tp:flag suffix="Message_Add" value="8">
138
A message may be sent to the server when calling AddMembers on
146
A message may be sent to the server when calling
147
<tp:member-ref>AddMembers</tp:member-ref> on
139
148
contacts who are not currently pending members.
142
151
<tp:flag suffix="Message_Remove" value="16">
144
A message may be sent to the server when calling RemoveMembers on
153
A message may be sent to the server when calling
154
<tp:member-ref>RemoveMembers</tp:member-ref> on
145
155
contacts who are currently channel members.
148
158
<tp:flag suffix="Message_Accept" value="32">
150
A message may be sent to the server when calling AddMembers on
160
A message may be sent to the server when calling
161
<tp:member-ref>AddMembers</tp:member-ref> on
151
162
contacts who are locally pending.
154
165
<tp:flag suffix="Message_Reject" value="64">
156
A message may be sent to the server when calling RemoveMembers on
167
A message may be sent to the server when calling
168
<tp:member-ref>RemoveMembers</tp:member-ref> on
157
169
contacts who are locally pending.
160
172
<tp:flag suffix="Message_Rescind" value="128">
162
A message may be sent to the server when calling RemoveMembers on
174
A message may be sent to the server when calling
175
<tp:member-ref>RemoveMembers</tp:member-ref> on
163
176
contacts who are remote pending.
203
224
specification 0.17.6 are fully supported.
227
<tp:flag suffix="Members_Changed_Detailed" value="4096">
229
Indicates that <tp:member-ref>MembersChangedDetailed</tp:member-ref>
230
will be emitted for changes to this group's members in addition to
231
<tp:member-ref>MembersChanged</tp:member-ref>.
232
Clients can then connect to the former and ignore emission of the
233
latter. This flag's state MUST NOT change over the lifetime of a
237
If it were allowed to change, client bindings would have to always
238
connect to MembersChanged just in case the flag ever went away (and
239
generally be unnecessarily complicated), which would mostly negate
240
the point of having this flag in the first place.
244
<tp:flag suffix="Message_Depart" value="8192">
245
<tp:added version="0.17.21"/>
247
A message may be sent to the server when calling
248
<tp:member-ref>RemoveMembers</tp:member-ref> on
249
the <tp:member-ref>SelfHandle</tp:member-ref>.
252
This would be set for XMPP Multi-User Chat or IRC channels,
253
but not for a typical implementation of streamed media calls.
208
259
<property name="GroupFlags" type="u" tp:type="Channel_Group_Flags"
260
access="read" tp:name-for-bindings="Group_Flags">
211
262
An integer representing the bitwise-OR of flags on this
212
263
channel. The user interface can use this to present information about
213
264
which operations are currently valid. Change notification is via
214
the GroupFlagsChanged signal.
265
the <tp:member-ref>GroupFlagsChanged</tp:member-ref> signal.
216
267
<tp:added version="0.17.6">For backwards compatibility,
217
268
clients should fall back to calling GetGroupFlags if
218
269
Channel_Group_Flag_Properties is not present.</tp:added>
221
<method name="GetGroupFlags">
222
<arg direction="out" type="u" tp:type="Channel_Group_Flags">
272
<method name="GetGroupFlags" tp:name-for-bindings="Get_Group_Flags">
273
<arg direction="out" type="u" tp:type="Channel_Group_Flags"
224
276
The value of the GroupFlags property
228
Returns the value of the GroupFlags property.
280
Returns the value of the <tp:member-ref>GroupFlags</tp:member-ref> property.
230
282
<tp:deprecated version="0.17.6">Use GetAll on the D-Bus
231
283
Properties D-Bus interface to get properties including GroupFlags
515
587
<tp:enumvalue suffix="Offline" value="1">
517
The change is due to a user going offline. Also used when
518
user is already offline, but this wasn't known previously.
588
<tp:docstring xmlns="http://www.w3.org/1999/xhtml">
589
<p>The change is due to a user going offline. Also used when
590
user is already offline, but this wasn't known previously.</p>
592
<p>If a one-to-one <tp:dbus-ref
593
namespace="org.freedesktop.Telepathy.Channel.Type">StreamedMedia</tp:dbus-ref>
594
call fails because the contact being called is offline, the
595
connection manager SHOULD indicate this by removing both the
596
<tp:member-ref>SelfHandle</tp:member-ref> and the other contact's
597
handle from the Group interface with reason Offline.</p>
600
For 1-1 calls, the call terminates as a result of removing the
601
remote contact, so the SelfHandle should be removed at the same
602
time as the remote contact and for the same reason.
605
<p>If a handle is removed from a group for this reason, the
606
equivalent D-Bus error is
607
<code>org.freedesktop.Telepathy.Error.Offline</code>.</p>
521
610
<tp:enumvalue suffix="Kicked" value="2">
523
The change is due to a kick operation.
611
<tp:docstring xmlns="http://www.w3.org/1999/xhtml">
612
<p>The change is due to a kick operation.</p>
614
<p>If the <tp:member-ref>SelfHandle</tp:member-ref> is removed
615
from a group for this reason, the equivalent D-Bus error is
616
<code>org.freedesktop.Telepathy.Error.Channel.Kicked</code>.
526
620
<tp:enumvalue suffix="Busy" value="3">
528
The change is due to a busy indication.
621
<tp:docstring xmlns="http://www.w3.org/1999/xhtml">
622
<p>The change is due to a busy indication.</p>
624
<p>If a one-to-one <tp:dbus-ref
625
namespace="org.freedesktop.Telepathy.Channel.Type">StreamedMedia</tp:dbus-ref>
626
call fails because the contact being called is busy, the
627
connection manager SHOULD indicate this by removing both the
628
<tp:member-ref>SelfHandle</tp:member-ref> and the other contact's
629
handle from the Group interface with reason Busy.</p>
632
For 1-1 calls, the call terminates as a result of removing the
633
remote contact, so the SelfHandle should be removed at the same
634
time as the remote contact and for the same reason.
637
<p>If the <tp:member-ref>SelfHandle</tp:member-ref> is removed
638
from a group for this reason, the equivalent D-Bus error is
639
<code>org.freedesktop.Telepathy.Error.Busy</code>.
531
643
<tp:enumvalue suffix="Invited" value="4">
533
The change is due to an invitation.
645
The change is due to an invitation. This reason SHOULD only be used
646
when contacts are added to the remote-pending set (to indicate that
647
the contact has been invited) or to the members (to indicate that
648
the contact has accepted the invitation).
651
Otherwise, what would it mean?
536
655
<tp:enumvalue suffix="Banned" value="5">
538
The change is due to a kick+ban operation.
656
<tp:docstring xmlns="http://www.w3.org/1999/xhtml">
657
<p>The change is due to a kick+ban operation.</p>
659
<p>If the <tp:member-ref>SelfHandle</tp:member-ref> is removed
660
from a group for this reason, the equivalent D-Bus error is
661
<code>org.freedesktop.Telepathy.Error.Channel.Banned</code>.
541
665
<tp:enumvalue suffix="Error" value="6">
546
670
<tp:enumvalue suffix="Invalid_Contact" value="7">
548
The change is because the requested contact does not exist.
671
<tp:docstring xmlns="http://www.w3.org/1999/xhtml">
672
<p>The change is because the requested contact does not exist.</p>
674
<p>For instance, if the user invites a nonexistent contact to a
675
chatroom or attempts to call a nonexistent contact, this could
676
be indicated by the CM adding that contact's handle to
677
remote-pending for reason None or Invited, then removing it for
678
reason Invalid_Contact. In the case of a 1-1 StreamedMedia
679
call, the CM SHOULD remove the self handle from the Group
680
in the same signal.</p>
683
For 1-1 calls, the call terminates as a result of removing the
684
remote contact, so the SelfHandle should be removed at the same
685
time as the remote contact and for the same reason.
688
<p>If a contact is removed from a group for this reason, the
689
equivalent D-Bus error is
690
<code>org.freedesktop.Telepathy.Error.DoesNotExist</code>.
551
694
<tp:enumvalue suffix="No_Answer" value="8">
553
The change is because the requested contact did not respond.
695
<tp:docstring xmlns="http://www.w3.org/1999/xhtml">
696
<p>The change is because the requested contact did not respond.</p>
698
<p>If a one-to-one <tp:dbus-ref
699
namespace="org.freedesktop.Telepathy.Channel.Type">StreamedMedia</tp:dbus-ref>
700
call fails because the contact being called did not respond, the
701
connection manager SHOULD indicate this by removing both the
702
<tp:member-ref>SelfHandle</tp:member-ref> and the other contact's
703
handle from the Group interface with reason No_Answer.</p>
706
Documenting existing practice.
709
<p>If a contact is removed from a group for this reason, the
710
equivalent D-Bus error is
711
<code>org.freedesktop.Telepathy.Error.NoAnswer</code>.
556
715
<tp:enumvalue suffix="Renamed" value="9">
558
The change is because a contact's unique identifier changed.
716
<tp:docstring xmlns="http://www.w3.org/1999/xhtml">
717
<p>The change is because a contact's unique identifier changed.
559
718
There must be exactly one handle in the removed set and exactly
560
one handle in one of the added sets. The Renamed signal on the
561
Renaming interface will have been emitted for the same handles,
562
shortly before this MembersChanged signal is emitted.
719
one handle in one of the added sets. The <tp:dbus-ref
720
namespace="org.freedesktop.Telepathy.Connection.Interface.Renaming">Renamed</tp:dbus-ref>
723
namespace="org.freedesktop.Telepathy.Connection.Interface">Renaming</tp:dbus-ref>
724
interface will have been emitted for the same handles,
725
shortly before this <tp:member-ref>MembersChanged</tp:member-ref> signal is emitted.</p>
565
728
<tp:enumvalue suffix="Permission_Denied" value="10">
567
The change is because there was no permission to contact the
729
<tp:docstring xmlns="http://www.w3.org/1999/xhtml">
730
<p>The change is because there was no permission to contact the
731
requested handle.</p>
733
<p>If a contact is removed from a group for this reason, the
734
equivalent D-Bus error is
735
<code>org.freedesktop.Telepathy.Error.PermissionDenied</code>.
571
739
<tp:enumvalue suffix="Separated" value="11">
590
762
the group with reason Separated. Application protocols in Tubes
591
763
should be prepared to cope with this situation.
766
<p>The <tp:member-ref>SelfHandle</tp:member-ref> SHOULD NOT be
767
removed from channels with this reason.</p>
597
<signal name="MembersChanged">
598
<arg name="message" type="s">
772
<signal name="MembersChanged" tp:name-for-bindings="Members_Changed">
773
<arg name="Message" type="s">
600
775
A string message from the server, or blank if not
603
<arg name="added" type="au" tp:type="Contact_Handle[]">
778
<arg name="Added" type="au" tp:type="Contact_Handle[]">
605
780
A list of members added to the channel
608
<arg name="removed" type="au" tp:type="Contact_Handle[]">
783
<arg name="Removed" type="au" tp:type="Contact_Handle[]">
610
785
A list of members removed from the channel
613
<arg name="local_pending" type="au" tp:type="Contact_Handle[]">
788
<arg name="Local_Pending" type="au" tp:type="Contact_Handle[]">
615
790
A list of members who are pending local approval
618
<arg name="remote_pending" type="au" tp:type="Contact_Handle[]">
793
<arg name="Remote_Pending" type="au" tp:type="Contact_Handle[]">
620
795
A list of members who are pending remote approval
623
<arg name="actor" type="u" tp:type="Contact_Handle">
798
<arg name="Actor" type="u" tp:type="Contact_Handle">
625
800
The contact handle of the person who made the change, or 0
629
<arg name="reason" type="u" tp:type="Channel_Group_Change_Reason">
804
<arg name="Reason" type="u" tp:type="Channel_Group_Change_Reason">
631
A reason for the change: one of the values of
632
ChannelGroupChangeReason
806
A reason for the change
635
809
<tp:docstring xmlns="http://www.w3.org/1999/xhtml">
651
<method name="RemoveMembers">
652
<arg direction="in" name="contacts" type="au" tp:type="Contact_Handle[]">
654
An array of contact handles to remove from the channel
657
<arg direction="in" name="message" type="s">
659
A string message, which can be blank if desired
827
<tp:mapping name="Handle_Identifier_Map">
663
Requests the removal of contacts from a channel, reject their request
664
for channel membership on the pending local list, or rescind their
665
invitation on the pending remote list. A message may be provided along
666
with the request, which will be sent to the server if supported. See
667
the CHANNEL_GROUP_FLAG_MESSAGE_REMOVE,
668
CHANNEL_GROUP_FLAG_MESSAGE_REJECT and
669
CHANNEL_GROUP_FLAG_MESSAGE_RESCIND flags to see in which cases this
670
message should be provided.
829
A map from handles to the corresponding normalized string identifier.
831
<tp:added version="0.17.17"/>
833
<tp:member type="u" name="Handle" tp:type="Contact_Handle">
838
<tp:member type="s" name="Identifier">
840
The same string that would be returned by <tp:dbus-ref
841
namespace="org.freedesktop.Telepathy.Connection">InspectHandles</tp:dbus-ref>
847
<signal name="MembersChangedDetailed"
848
tp:name-for-bindings="Members_Changed_Detailed">
849
<arg name="Added" type="au" tp:type="Contact_Handle[]">
851
A list of members added to the channel
854
<arg name="Removed" type="au" tp:type="Contact_Handle[]">
856
A list of members removed from the channel
859
<arg name="Local_Pending" type="au" tp:type="Contact_Handle[]">
861
A list of members who are pending local approval
864
<arg name="Remote_Pending" type="au" tp:type="Contact_Handle[]">
866
A list of members who are pending remote approval
869
<arg name="Details" type="a{sv}" tp:type="String_Variant_Map">
870
<tp:docstring xmlns="http://www.w3.org/1999/xhtml">
871
<p>Information about the change, which may include the following
875
<dt>actor (u — <tp:type>Contact_Handle</tp:type>)</dt>
876
<dd>The contact handle of the person who made the change; 0 or
877
omitted if unknown or not applicable.</dd>
879
<dt>change-reason (u — <tp:type>Channel_Group_Change_Reason</tp:type>)</dt>
880
<dd>A reason for the change.</dd>
882
<dt>contact-ids (a{us} — <tp:type>Handle_Identifier_Map</tp:type>)</dt>
884
<p>The string identifiers for handles mentioned in this signal, to
885
give clients the minimal information necessary to react to the
886
event without waiting for round-trips. Connection managers
887
SHOULD include the identifiers for members added to the group and
888
for the actor (if any); they MAY omit the identifiers for handles
889
which have been removed from the group.</p>
892
<p>On IRC, an event such as a netsplit could cause the vast
893
majority of a channel to leave. Given that clients should
894
already know the identifiers of a channel's members, including
895
potentially hundreds of strings in the netsplit signal is
899
<p>Clients MUST NOT assume that the presence or absence of a
900
handle in this mapping is meaningful. This mapping is merely
901
an optimization for round-trip reduction, and connection
902
managers MAY add additional handles, omit some handles, or
903
omit the mapping completely.</p>
907
<dd>A string message from the server regarding the change</dd>
909
<dt>error (s — <tp:type>DBus_Error_Name</tp:type>)</dt>
910
<dd>A (possibly implementation-specific) DBus error describing the
911
change, providing more specific information than the
912
<tp:type>Channel_Group_Change_Reason</tp:type> enum allows. This
913
MUST only be present if it is strictly more informative than
914
'change-reason'; if present, 'change-reason' MUST be set to the
915
closest available reason.
918
A SIP connection manager might want to signal "402 Payment
919
required" as something more specific than Error or
920
Permission_Denied so that a SIP-aware UI could handle it
921
specially; including a namespaced error permits this to be done
922
without <tp:type>Channel_Group_Change_Reason</tp:type> being
923
extended to encompass every error any CM ever wants to report.
927
<dt>debug-message (s)</dt>
928
<dd>Debugging information on the change. SHOULD NOT be shown to
929
users in normal circumstances.</dd>
933
<tp:docstring xmlns="http://www.w3.org/1999/xhtml">
934
<p>Emitted when contacts join any of the three lists (members, local
935
pending or remote pending) or when they leave any of the three
936
lists. This signal provides a superset of the information provided by
937
<tp:member-ref>MembersChanged</tp:member-ref>;
938
if the channel's <tp:member-ref>GroupFlags</tp:member-ref>
939
contains Members_Changed_Detailed, then clients may listen exclusively
940
to this signal in preference to that signal.</p>
942
<p>All channel-specific handles that are mentioned in this signal
943
MUST be represented in the value of the
944
<tp:member-ref>HandleOwners</tp:member-ref> property. In practice,
946
<tp:member-ref>HandleOwnersChanged</tp:member-ref> is emitted
947
<em>before</em> emitting a MembersChangedDetailed signal in which
948
channel-specific handles are added, but that it is emitted
949
<em>after</em> emitting a MembersChangedDetailed signal in which
950
channel-specific handles are removed.</p>
952
<tp:added version="0.17.16"/>
955
<method name="RemoveMembers" tp:name-for-bindings="Remove_Members">
956
<arg direction="in" name="Contacts" type="au" tp:type="Contact_Handle[]">
958
An array of contact handles to remove from the channel
961
<arg direction="in" name="Message" type="s">
963
A string message, which can be blank if desired
966
<tp:docstring xmlns="http://www.w3.org/1999/xhtml">
967
<p>Requests the removal of contacts from a channel, reject their
968
request for channel membership on the pending local list, or
969
rescind their invitation on the pending remote list.</p>
971
<p>If the <tp:member-ref>SelfHandle</tp:member-ref> is in a Group,
972
it can be removed via this method, in order to leave the group
973
gracefully. This is the recommended way to leave a chatroom, close
974
or reject a <tp:dbus-ref
975
namespace="org.freedesktop.Telepathy.Channel.Type">StreamedMedia</tp:dbus-ref>
978
<p>Accordingly, connection managers SHOULD support
979
doing this, regardless of the value of
980
<tp:member-ref>GroupFlags</tp:member-ref>.
981
If doing so fails with PermissionDenied, this is considered to a bug
982
in the connection manager, but clients MUST recover by falling back
983
to closing the channel with the <tp:dbus-ref
984
namespace="org.freedesktop.Telepathy.Channel">Close</tp:dbus-ref>
987
<p>Removing any contact from the local pending list is always
988
allowed. Removing contacts other than the
989
<tp:member-ref>SelfHandle</tp:member-ref> from the channel's members
990
is allowed if and only if Channel_Group_Flag_Can_Remove is in the
991
<tp:member-ref>GroupFlags</tp:member-ref>,
992
while removing contacts other than the
993
<tp:member-ref>SelfHandle</tp:member-ref> from the remote pending list
994
is allowed if and only if Channel_Group_Flag_Can_Rescind is in the
995
<tp:member-ref>GroupFlags</tp:member-ref>.</p>
997
<p>A message may be provided along with the request, which will be
998
sent to the server if supported. See the
999
Channel_Group_Flag_Message_Remove,
1000
Channel_Group_Flag_Message_Depart,
1001
Channel_Group_Flag_Message_Reject and
1002
Channel_Group_Flag_Message_Rescind
1003
<tp:member-ref>GroupFlags</tp:member-ref> to see in which cases this
1004
message should be provided.</p>
672
1006
<tp:possible-errors>
673
1007
<tp:error name="org.freedesktop.Telepathy.Error.Disconnected"/>
721
1056
cannot be presumed by the channel's existence (for example, a channel you
722
1057
may request membership of but your request may not be granted).</p>
724
<p>This interface implements three lists: a list of current members, and two
725
lists of local pending and remote pending members. Contacts on the remote
1059
<p>This interface implements three lists: a list of current members
1060
(<tp:member-ref>Members</tp:member-ref>), and two lists of local pending
1061
and remote pending members
1062
(<tp:member-ref>LocalPendingMembers</tp:member-ref> and
1063
<tp:member-ref>RemotePendingMembers</tp:member-ref>, respectively).
1064
Contacts on the remote
726
1065
pending list have been invited to the channel, but the remote user has not
727
1066
accepted the invitation. Contacts on the local pending list have requested
728
1067
membership of the channel, but the local user of the framework must accept
729
1068
their request before they may join. A single contact should never appear on
730
1069
more than one of the three lists. The lists are empty when the channel is
731
created, and the MembersChanged signal should be emitted when information
1070
created, and the <tp:member-ref>MembersChanged</tp:member-ref> signal
1071
(and, if the channel's <tp:member-ref>GroupFlags</tp:member-ref> contains
1072
Members_Changed_Detailed, the
1073
<tp:member-ref>MembersChangedDetailed</tp:member-ref> signal)
1074
should be emitted when information
732
1075
is retrieved from the server, or changes occur.</p>
734
<p>Addition of members to the channel may be requested by using AddMembers. If
1077
<p>If the <tp:member-ref>MembersChanged</tp:member-ref> or
1078
<tp:member-ref>MembersChangedDetailed</tp:member-ref> signal indicates
1079
that the <tp:member-ref>SelfHandle</tp:member-ref> has been removed from
1080
the channel, and the channel subsequently emits <tp:dbus-ref
1081
namespace="org.freedesktop.Telepathy.Channel">Closed</tp:dbus-ref>,
1082
clients SHOULD consider the details given in the MembersChanged or
1083
MembersChangedDetailed signal to be the reason why the channel closed.</p>
1085
<p>Addition of members to the channel may be requested by using
1086
<tp:member-ref>AddMembers</tp:member-ref>. If
735
1087
remote acknowledgement is required, use of the AddMembers method will cause
736
1088
users to appear on the remote pending list. If no acknowledgement is
737
1089
required, AddMembers will add contacts to the member list directly. If a