TpCallContentMediaDescription

TpCallContentMediaDescription — implementation of TpSvcCallContentMediaDescription

Functions

Properties

GPtrArray_GValueArray_guint+gchararray+guint+guint+gboolean+GHashTable_gchararray+gchararray___* codecs Read
GDBusConnection * dbus-connection Read / Write / Construct Only
guint dlrr-max-size Read
gboolean does-avpf Read
guint duplicate-rle-max-size Read
gboolean enable-metrics Read
GHashTable_guint+GValueArray_guint+GPtrArray_GValueArray_gchararray+gchararray+gchararray____* feedback-messages Read
gboolean further-negotiation-required Read / Write / Construct Only
gboolean has-remote-information Read / Write / Construct Only
GPtrArray_GValueArray_guint+guint+gchararray+gchararray__* header-extensions Read
GStrv interfaces Read
guint loss-rle-max-size Read
gchar * object-path Read / Write / Construct Only
guint packet-receipt-times-max-size Read
guint remote-contact Read / Write / Construct Only
guint rtt-mode Read
GHashTable_guint+GArray_guint__* ssrcs Read
guint statistics-flags Read

Types and Values

Object Hierarchy

    GObject
    ╰── TpCallContentMediaDescription

Implemented Interfaces

TpCallContentMediaDescription implements TpSvcCall1ContentMediaDescription, TpSvcCall1ContentMediaDescriptionInterfaceRTPHeaderExtensions1, TpSvcCall1ContentMediaDescriptionInterfaceRTCPFeedback1 and TpSvcCall1ContentMediaDescriptionInterfaceRTCPExtendedReports1.

Includes

#include <telepathy-glib/telepathy-glib.h>

Description

This class is used to negociate the media description used with a remote contact. To be used with TpBaseMediaCallContent implementations.

Functions

tp_call_content_media_description_new ()

TpCallContentMediaDescription *
tp_call_content_media_description_new (GDBusConnection *dbus_connection,
                                       const gchar *object_path,
                                       TpHandle remote_contact,
                                       gboolean has_remote_information,
                                       gboolean further_negotiation_required);

Create a new TpCallContentMediaDescription object. More information can be added after construction using tp_call_content_media_description_append_codec() and tp_call_content_media_description_add_ssrc().

Once all information has been filled, the media description can be offered using tp_base_media_call_content_offer_media_description_async().

Parameters

dbus_connection

value of “dbus-connection” property

 

object_path

value of “object-path” property

 

remote_contact

value of “remote-contact” property

 

has_remote_information

value of “has_remote_information” property

 

further_negotiation_required

value of “further_negotiation_required” property

 

Since 0.17.5


tp_call_content_media_description_get_object_path ()

const gchar *
tp_call_content_media_description_get_object_path
                               (TpCallContentMediaDescription *self);

Parameters

Returns

the value of “object-path”

Since 0.17.5


tp_call_content_media_description_get_remote_contact ()

TpHandle
tp_call_content_media_description_get_remote_contact
                               (TpCallContentMediaDescription *self);

Parameters

Returns

the value of “remote-contact”

Since 0.17.5


tp_call_content_media_description_append_codec ()

void
tp_call_content_media_description_append_codec
                               (TpCallContentMediaDescription *self,
                                guint identifier,
                                const gchar *name,
                                guint clock_rate,
                                guint channels,
                                gboolean updated,
                                GHashTable *parameters);

Add description for a supported codec.

Parameters

self

a TpCallContentMediaDescription

 

identifier

Numeric identifier for the codec. This will be used as the PT in the SDP or content description.

 

name

The name of the codec.

 

clock_rate

The clock rate of the codec.

 

channels

Number of channels of the codec if applicable, otherwise 0.

 

updated

TRUE if this codec was updated since the last Media Description

 

parameters

a GHashTable of string->string containing optional parameters

 

Since 0.17.5


tp_call_content_media_description_add_ssrc ()

void
tp_call_content_media_description_add_ssrc
                               (TpCallContentMediaDescription *self,
                                TpHandle contact,
                                guint ssrc);

Add an SSRC to the list of SSRCs that a contact will send from. A SSRC is a synchronization source in RTP, it is the identifier for a continuous stream of packets following the same timeline.

Parameters

self

a TpCallContentMediaDescription

 

contact

The TpHandle of a contact that is part of the call

 

ssrc

A SSRC that this contact may send from

 

Since 0.17.5


tp_call_content_media_description_add_rtp_header_extension ()

void
tp_call_content_media_description_add_rtp_header_extension
                               (TpCallContentMediaDescription *self,
                                guint id,
                                TpMediaStreamDirection direction,
                                const gchar *uri,
                                const gchar *parameters);

Add an element to the “header-extensions” property.

Implement TP_IFACE_CALL_CONTENT_MEDIA_DESCRIPTION_INTERFACE_RTP_HEADER_EXTENSIONS interface.

Parameters

self

a TpCallContentMediaDescription

 

id

identifier to be negotiated.

 

direction

a TpMediaStreamDirection in which the Header Extension is negotiated.

 

uri

URI defining the extension.

 

parameters

Feedback parameters as a string. Format is defined in the relevant RFC.

 

Since 0.17.6


tp_call_content_media_description_add_rtcp_feedback_message ()

void
tp_call_content_media_description_add_rtcp_feedback_message
                               (TpCallContentMediaDescription *self,
                                guint codec_identifier,
                                const gchar *type,
                                const gchar *subtype,
                                const gchar *parameters);

Add a message for a given codec. This ensures codec_identifier is in the “feedback-messages” map. The rtcp-minimum-interval is set to G_MAXUINT and can then be changed using tp_call_content_media_description_set_rtcp_feedback_minimum_interval().

Implement TP_IFACE_CALL_CONTENT_MEDIA_DESCRIPTION_INTERFACE_RTCP_FEEDBACK interface.

Parameters

self

a TpCallContentMediaDescription

 

codec_identifier

Numeric identifier for the codec. This will be used as the PT in the SDP or content description.

 

type

feedback type, for example "ack", "nack", or "ccm".

 

subtype

feedback subtype, according to the Type, can be an empty string (""), if there is no subtype. For example, generic nack is Type="nack" Subtype="".

 

parameters

feedback parameters as a string. Format is defined in the relevant RFC.

 

Since 0.17.6


tp_call_content_media_description_set_rtcp_feedback_minimum_interval ()

void
tp_call_content_media_description_set_rtcp_feedback_minimum_interval
                               (TpCallContentMediaDescription *self,
                                guint codec_identifier,
                                guint rtcp_minimum_interval);

Set the minimum interval for a given codec. This ensures codec_identifier is in the “feedback-messages” map. The messages can then be added using tp_call_content_media_description_add_rtcp_feedback_message().

Implement TP_IFACE_CALL_CONTENT_MEDIA_DESCRIPTION_INTERFACE_RTCP_FEEDBACK interface.

Parameters

self

a TpCallContentMediaDescription

 

codec_identifier

Numeric identifier for the codec. This will be used as the PT in the SDP or content description.

 

rtcp_minimum_interval

The minimum interval between two regular RTCP packets in milliseconds for this content. If no special value is desired, one should put MAXUINT (0xFFFFFFFF). Implementors and users of Call's RTCPFeedback should not use the MAXUINT default. Instead, in RTP/AVP, the default should be 5000 (5 seconds). If using the RTP/AVPF profile, it can be set to a lower value, the default being 0.

 

Since 0.17.6


tp_call_content_media_description_set_does_avpf ()

void
tp_call_content_media_description_set_does_avpf
                               (TpCallContentMediaDescription *self,
                                gboolean does_avpf);

Implement properties for TP_IFACE_CALL_CONTENT_MEDIA_DESCRIPTION_INTERFACE_RTCP_FEEDBACK interface

Parameters

self

a TpCallContentMediaDescription

 

does_avpf

the value for “does-avpf” property.

 

Since 0.17.6


tp_call_content_media_description_set_rtcp_extended_reports ()

void
tp_call_content_media_description_set_rtcp_extended_reports
                               (TpCallContentMediaDescription *self,
                                guint loss_rle_max_size,
                                guint duplicate_rle_max_size,
                                guint packet_receipt_times_max_size,
                                guint dlrr_max_size,
                                TpRCPTXRRTTMode rtt_mode,
                                TpRTCPXRStatisticsFlags statistics_flags,
                                gboolean enable_metrics);

Implement TP_IFACE_CALL_CONTENT_MEDIA_DESCRIPTION_INTERFACE_RTCP_EXTENDED_REPORTS interface.

Parameters

self

a TpCallContentMediaDescription

 

loss_rle_max_size

the value for “loss-rle-max-size” property.

 

duplicate_rle_max_size

the value for “duplicate-rle-max-size” property.

 

packet_receipt_times_max_size

the value for “packet-receipt-times-max-size” property.

 

dlrr_max_size

the value for “dlrr-max-size” property.

 

rtt_mode

the value for “rtt-mode” property.

 

statistics_flags

the value for “statistics-flags” property.

 

enable_metrics

the value for “enable-metrics” property.

 

Since 0.17.6


tp_call_content_media_description_add_rtcp_extended_reports_interface ()

void
tp_call_content_media_description_add_rtcp_extended_reports_interface
                               (TpCallContentMediaDescription *self);

Adds the RTCPExtendedReports interface to the list of supported interfaces

Parameters

Since 0.17.6


tp_call_content_media_description_add_rtcp_feedback_interface ()

void
tp_call_content_media_description_add_rtcp_feedback_interface
                               (TpCallContentMediaDescription *self);

Adds the RTCPFeedback interface to the list of supported interfaces

Parameters

Since 0.17.6


tp_call_content_media_description_add_rtp_header_extensions_interface ()

void
tp_call_content_media_description_add_rtp_header_extensions_interface
                               (TpCallContentMediaDescription *self);

Adds the RTPHeaderExtensions interface to the list of supported interfaces

Parameters

Since 0.17.6

Types and Values

struct TpCallContentMediaDescription

struct TpCallContentMediaDescription;

A class for media content description

Since 0.17.5


struct TpCallContentMediaDescriptionClass

struct TpCallContentMediaDescriptionClass {
};

The class structure for TpCallContentMediaDescription

Since 0.17.5

Property Details

The “codecs” property

  “codecs”                   GPtrArray_GValueArray_guint+gchararray+guint+guint+gboolean+GHashTable_gchararray+gchararray___*

GPtrArray{codecs GValueArray}. A list of codecs the remote contact supports.

Flags: Read

Since 0.17.5


The “dbus-connection” property

  “dbus-connection”          GDBusConnection *

The connection to the DBus owning the CM.

Flags: Read / Write / Construct Only

Since 0.17.5


The “dlrr-max-size” property

  “dlrr-max-size”            guint

If non-zero, enable Receiver Reference Time and Delay since Last Receiver Report Blocks (for estimating Round Trip Times between non-senders and other parties in the call. The value of this integer represents the max-size of report blocks, as specified in RFC 3611 section 5.1. MAXUINT32 is used to indicate that there is no limit.

Flags: Read

Default value: 0

Since 0.17.6


The “does-avpf” property

  “does-avpf”                gboolean

TRUE if the remote contact supports Audio-Visual Profile Feedback (AVPF), otherwise FALSE.

Flags: Read

Default value: FALSE

Since 0.17.6


The “duplicate-rle-max-size” property

  “duplicate-rle-max-size”   guint

If non-zero, enable Duplicate Run-Length-Encoded Report Blocks. The value of this integer represents the max-size of report blocks, as specified in RFC 3611 section 5.1. MAXUINT32 is used to indicate that there is no limit.

Flags: Read

Default value: 0

Since 0.17.6


The “enable-metrics” property

  “enable-metrics”           gboolean

Whether to enable VoIP Metrics Report Blocks. These blocks are of a fixed size.

Flags: Read

Default value: FALSE

Since 0.17.6


The “feedback-messages” property

  “feedback-messages”        GHashTable_guint+GValueArray_guint+GPtrArray_GValueArray_gchararray+gchararray+gchararray____*

A map of remote feedback codec properties that are supported.

Flags: Read

Since 0.17.6


The “further-negotiation-required” property

  “further-negotiation-required” gboolean

TRUE if the MediaDescription contains remote information.

Flags: Read / Write / Construct Only

Default value: FALSE

Since 0.17.5


The “has-remote-information” property

  “has-remote-information”   gboolean

True if the MediaDescription contains remote information.

Flags: Read / Write / Construct Only

Default value: FALSE


The “header-extensions” property

  “header-extensions”        GPtrArray_GValueArray_guint+guint+gchararray+gchararray__*

A list of remote header extensions which are supported.

Flags: Read

Since 0.17.6


The “interfaces” property

  “interfaces”               GStrv

Additional interfaces implemented by this object.

Flags: Read

Since 0.17.5


The “loss-rle-max-size” property

  “loss-rle-max-size”        guint

If non-zero, enable Loss Run Length Encoded Report Blocks. The value of this integer represents the max-size of report blocks, as specified in RFC 3611 section 5.1. MAXUINT32 is used to indicate that there is no limit.

Flags: Read

Default value: 0

Since 0.17.6


The “object-path” property

  “object-path”              gchar *

The D-Bus object path used for this object on the bus.

Flags: Read / Write / Construct Only

Default value: NULL

Since 0.17.5


The “packet-receipt-times-max-size” property

  “packet-receipt-times-max-size” guint

If non-zero, enable Packet Receipt Times Report Blocks. The value of this integer represents the max-size of report blocks, as specified in RFC 3611 section 5.1. MAXUINT32 is used to indicate that there is no limit.

Flags: Read

Default value: 0

Since 0.17.6


The “remote-contact” property

  “remote-contact”           guint

The contact TpHandle that this media description applies to.

Flags: Read / Write / Construct Only

Default value: 0

Since 0.17.5


The “rtt-mode” property

  “rtt-mode”                 guint

Who is allowed to send Delay since Last Receiver Reports. Value from TpRCPTXRRTTMode.

Flags: Read

Default value: 0

Since 0.17.6


The “ssrcs” property

  “ssrcs”                    GHashTable_guint+GArray_guint__*

GHashTable{contact TpHandle, GArray{uint}} A map of contacts to SSRCs.

Flags: Read

Since 0.17.5


The “statistics-flags” property

  “statistics-flags”         guint

Which fields SHOULD be included in the statistics summary report blocks that are sent, and whether to send VoIP Metrics Report Blocks. There can be zero or more flags set. Value from TpRTCPXRStatisticsFlags.

Flags: Read

Default value: 0

Since 0.17.6

See Also

TpBaseMediaCallContent