Interface Call1.Stream

Interface Index (Compact) | Summary | Description | Methods | Signals | Properties | Types

Methods

SetSending (b: Send) nothing
RequestReceiving (u: Contact, b: Receive) nothing

Signals

RemoteMembersChanged (a{uu}: Updates, a{us}: Identifiers, au: Removed, (uuss): Reason)
LocalSendingStateChanged (u: State, (uuss): Reason)

Properties

Interfaces as (DBus_Interface_List) Read only Immutable
RemoteMembers a{uu} (Contact_Sending_State_Map) Read only
RemoteMemberIdentifiers a{us} (Handle_Identifier_Map) Read only
LocalSendingState u (Sending_State) Read only
CanRequestReceiving b Read only Immutable

Types

Sending_State Enum u
Contact_Sending_State_Map Mapping a{uu}
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)

Description

One stream inside a Content. A stream is a single flow of packets to and from a single remote endpoint. If your call connects to multiple people, you could have multiple streams.

For protocols that support muting streams separately, this object MAY also implement the Mute interface

Methods

(Permalink)

SetSending (b: Send) → nothing

Parameters

Set the stream to start or stop sending media from the local user to other contacts.

Possible Errors

  • Not Implemented
  • Raised when the requested method, channel, etc is not available on this connection.
  • Not Yet
  • If the call has not been accepted yet, calling SetSending(True) is an error. See LocalSendingState for details.
(Permalink)

RequestReceiving (u: Contact, b: Receive) → nothing

Parameters

  • Contact — u (Contact_Handle)
  • Contact from which sending is requested

  • Receive — b
  • If true, request that the given contact starts to send media. If false, request that the given contact stops sending media.

Request that a remote contact stops or starts sending on this stream.

The CanRequestReceiving property defines whether the protocol allows the local user to request the other side start sending on this stream.


Possible Errors

  • Invalid Handle
  • The handle specified is unknown on this channel or connection.
  • Invalid Argument
  • The request contact is valid but is not involved in this stream.
  • Not Implemented
  • The protocol does not allow the local user to request the other side starts sending on this stream.

Signals

(Permalink)

RemoteMembersChanged (a{uu}: Updates, a{us}: Identifiers, au: Removed, (uuss): Reason)

Changed in 0.21.2. renamed from SendersChanged to MembersChanged
Changed in 0.21.3. renamed from MembersChanged to RemoteMembersChanged

Parameters

  • Updates — a{uu} (Contact_Sending_State_Map)
  • A mapping from channel-specific handles to their updated sending state, whose keys include at least the members who were added, and the members whose states changed.
  • Identifiers — a{us} (Handle_Identifier_Map)
  • The identifiers of the contacts in the Updates map.
  • Removed — au (Contact_Handle_List)
  • The channel-specific handles that were removed from the keys of the RemoteMembers property, as a result of the contact leaving this stream
  • Reason — (uuss) (Call_State_Reason)
  • A structured reason for the change.
Emitted when RemoteMembers changes.
(Permalink)

LocalSendingStateChanged (u: State, (uuss): Reason)

Parameters

Emitted when LocalSendingState changes.

Properties

Accessed using the org.freedesktop.DBus.Properties interface.
(Permalink)

Interfaces — as (DBus_Interface_List)

Read only
This property is immutable which means that it can never change.
Added in 0.19.11.

Extra interfaces provided by this stream, such as Stream.Interface.Media. This SHOULD NOT include the Stream interface itself, and cannot change once the stream has been created.

(Permalink)

RemoteMembers — a{uu} (Contact_Sending_State_Map)

Read only
Changed in 0.21.2. renamed from Senders

A map from remote contacts to their sending state.

Media sent to this stream will be sent to all members listed here. All members listed here will also appear in CallMembers, and each CallMembers member will be listed in at most one Stream per Content. Therefore, to hide things from a member of the call, UIs only need to mute one Stream per Content.

Contacts' handles in this map indicate whether they are sending media to this stream. Sending_State_Pending_Send indicates contacts who are not sending but have been asked to do so. The local user's sending state is shown in LocalSendingState.

This mapping is also used by the streaming implementation to map from MediaDescriptions to Streams. In this use-case, all of the senders in this stream will be represented in RemoteMediaDescriptions. This use-case should not affect anything that does not handle media streaming.

(Permalink)

RemoteMemberIdentifiers — a{us} (Handle_Identifier_Map)

Read only
The string identifiers for handles mentioned in RemoteMembers, to give clients the minimal information necessary to create contacts without waiting for round-trips.
(Permalink)

LocalSendingState — u (Sending_State)

Read only

The local user's sending state. Media sent on this stream should be assumed to be received, directly or indirectly, by every other contact in the RemoteMembers mapping. Change notification is given via the LocalSendingStateChanged signal.

Rationale:
Implementations of the first Call draft had the self handle in the RemoteMembers (then called Members) map and this showed that it's annoying having to keep track of the self handle so that it can be special-cased.

A value of Pending_Send for this property indicates that the other side requested the local user start sending media (which can be done by calling either SetSending or Accept).

When Accept is called, all streams with a local sending state of Pending_Send and the associated Disposition set to Initial are automatically set to sending.

(Permalink)

CanRequestReceiving — b

Read only
This property is immutable which means that it can never change.
Added in 0.21.2.

If true, the user can request that a remote contact starts sending on this stream.

Rationale:
Not all protocols allow the user to ask the other side to start sending media.

Types

Enum (Permalink)

Sending_State — u

Enum indicating whether a contact is sending media.
  • None (0)
  • The contact is not sending media and has not been asked to do so.
  • Pending_Send (1)
  • The contact has been asked to start sending media.
  • Sending (2)
  • The contact is sending media.
  • Pending_Stop_Sending (3)
  • The contact has been asked to stop sending media.
Mapping (Permalink)

Contact_Sending_State_Map — a{uu}

A map from a contact to his or her sending state.