Signals
ChannelMerged | (o: Channel) | |
ChannelRemoved | (o: Channel) |
Properties
Channels | ao | Read only | |
InitialChannels | ao | Read only | |
InitialInviteeHandles | au (Contact_Handle_List) | Read only | |
InitialInviteeIDs | as | Read only | |
InvitationMessage | s | Read only | |
SupportsNonMerges | b | Read only |
Description
An interface for multi-user conference channels that can "continue from" one or more individual channels.
Rationale:
The Group MAY have channel-specific handles for participants; clients SHOULD support both Conferences that have channel-specific handles, and those that do not.
Rationale:
Connection managers implementing channels with this interface MUST NOT allow the object paths of channels that could be merged into a Conference to be re-used, unless the channel re-using the object path is equivalent to the channel that previously used it.
Rationale:
Signals
ChannelMerged (o: Channel)
Parameters
- Channel — o
Emitted when a new channel is added to the value of Channels.
ChannelRemoved (o: Channel)
Parameters
- Channel — o
Emitted when a channel is removed from the value of Channels, either because it closed or because it was split using the Splittable.DRAFT.Split method.
[FIXME: relative ordering of this vs. Closed? Do we care?]
Properties
Channels — ao
The individual Channels that are continued by this conference, which have the same ChannelType as this one, but with TargetHandleType = CONTACT.
This property MUST NOT be requestable. [FIXME: or would it be better for this one, and not IC, to be requestable?]
Change notification is via the ChannelMerged and ChannelRemoved signals.
InitialChannels — ao
The initial value of Channels.
This property SHOULD be requestable. Omitting it from a request is equivalent to providing it with an empty list as value. Requests where its value has at least two elements SHOULD be expected to succeed on any implementation of this interface.
Whether a request with 0 or 1 elements in the list will succeed is indicated by SupportsNonMerges.
Rationale:
If possible, the Channels' states SHOULD NOT be altered by merging them into a conference. However, depending on the protocol, the Channels MAY be placed in a "frozen" state by placing them in this property's value or by calling MergeableConference.DRAFT.Merge on them. [FIXME: there's nothing in RequestableChannelClasses yet to say what will happen, see #24906 comment 6]
Rationale:
Depending on the protocol, it might be signalled to remote users that this channel is a continuation of all the requested channels, or that it is only a continuation of the first channel in the list.
Rationale:
This property is immutable.
InitialInviteeHandles — au (Contact_Handle_List)
A list of additional contacts invited to this conference when it was created.
This property SHOULD be requestable, and appear in the allowed properties in RequestableChannelClasses, in all connection managers that can implement its semantics (in practice, this is likely to mean exactly those connection managers where SupportsNonMerges will be true).
If included in a request, the given contacts are automatically invited into the new channel, as if they had been added with Group.AddMembers(InitialInviteeHandles, InvitationMessage) immediately after the channel was created.
Rationale:
If the local user was not the initiator of this channel, the Group.SelfHandle SHOULD appear in the value of this property, together with any other contacts invited at the same time (if that information is known).
This property is immutable.
InitialInviteeHandles, InitialInviteeIDs and InitialChannels MAY be combined in a single request.
Rationale:
If a request includes some combination of InitialInviteeHandles, InitialInviteeIDs and InitialChannels, then the value of InitialInviteeHandles on the resulting channel SHOULD be the union of the handles from InitialInviteeHandles, the handles corresponding to the InitialInviteeIDs, and the target handles of the InitialChannels, with any duplicate handles removed. Because this property is immutable, its value SHOULD be computed before the channel is announced via the NewChannels signal.
Rationale:
InitialInviteeIDs — as
A list of additional contacts invited to this conference when it was created.
This property SHOULD be requestable as an alternative to, or combined with, InitialInviteeHandles. Its semantics are the same, except that it takes a list of the string representations of contact handles; invitations are sent to any contact present in either or both of these properties.
When a channel is created, the values of InitialInviteeHandles and InitialInviteeIDs MUST correspond to each other. In particular, this means that the value of InitialInviteeIDs will include the TargetID of each channel in InitialChannels, and the ID corresponding to each handle in InitialInviteeHandles.
This property is immutable.
InvitationMessage — s
The message that was sent to the InitialInviteeHandles when they were invited.
This property SHOULD be requestable, and appear in the allowed properties in RequestableChannelClasses, in protocols where invitations can have an accompanying text message.
Rationale:
If the local user was not the initiator of this channel, the message with which they were invited (if any) SHOULD appear in the value of this property.
This property is immutable.
SupportsNonMerges — b
[FIXME: needs a better name; or perhaps it could be implied by InitialInviteeHandles being requestable in XMPP/MSN but not in GSM?]
If true, requests with InitialChannels omitted, empty, or one element long should be expected to succeed.
This property SHOULD appear in RequestableChannelClasses for conference channels if and only if its value on those channels will be true.
Rationale:
If false, InitialChannels SHOULD be supplied in all requests for this channel class, and contain at least two channels. Requests where this requirement is not met SHOULD fail with NotImplemented.