Interface Channel.Interface.MergeableConference1

Interface Index (Compact) | Summary | Description | Methods

Methods

Merge (o: Channel) nothing
WARNING: This interface is experimental and is likely to cause havoc to your API/ABI if bindings are generated. Do not include this interface in libraries that care about compatibility.
Added in 0.19.0. (draft 1)
Objects implementing this interface must also implement:

Description

An interface for multi-user conference channels that can have additional individual channels merged into them after they are created.

Rationale:

This interface addresses part of freedesktop.org bug #24906 (GSM-compatible conference calls). GSM is currently the only protocol known to implement this; PBXs might implement it too.

It might be made into a mandatory-to-implement part of Conference, or kept as a separate interface, when stabilized.

Methods

(Permalink)

Merge (o: Channel) → nothing

Parameters

Request that the given channel be incorporated into this channel.

The given channel SHOULD be added to Conference1.Channels if and only if the underlying protocol signals the merge in some way. It MUST NOT be added to Conference1.InitialChannels (to preserve immutability).

Rationale:

In GSM it is possible to merge additional calls into an ongoing conference.

In XMPP this method could be implemented to merge a 1-1 Text channel into a MUC Text channel by inviting the peer from the Text channel into the MUC, or to merge a 1-1 Jingle call into a Muji call by inviting the peer from the Jingle call into the Muji call. (MUC and Muji channels are both implemented by XMPP MUCs, with Handle_Type_Room.)


Possible Errors

  • Invalid Argument
  • The given channel isn't suitable for merging into this one: for instance, it might have the wrong channel type or handle type.
  • Not Implemented
  • It will never be possible to merge channels into this particular conference.
  • Not Available
  • The given channel is theoretically suitable for merging into this one, but that's not currently possible for some reason (for instance, this SHOULD be raised if a limit on the number of channels in a conference is exceeded). [FIXME: PermissionDenied?]