## Media channels Media channels — service-side interfaces for the Streamed Media channel type, and the Call State, DTMF and Media Signalling interfaces |

## Synopsis

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

                        TpSvcChannelTypeStreamedMedia;
                        TpSvcChannelTypeStreamedMediaClass;
    void                (*tp_svc_channel_type_streamed_media_list_streams_impl)
                                                            (TpSvcChannelTypeStreamedMedia *self,
                                                             DBusGMethodInvocation *context);
    void                tp_svc_channel_type_streamed_media_implement_list_streams
                                                            (TpSvcChannelTypeStreamedMediaClass *klass,
                                                             tp_svc_channel_type_streamed_media_list_streams_impl impl);
    void                tp_svc_channel_type_streamed_media_return_from_list_streams
                                                            (DBusGMethodInvocation *context,
                                                             const GPtrArray *out_Streams);
    void                (*tp_svc_channel_type_streamed_media_remove_streams_impl)
                                                            (TpSvcChannelTypeStreamedMedia *self,
                                                             const GArray *in_Streams,
                                                             DBusGMethodInvocation *context);
    void                tp_svc_channel_type_streamed_media_implement_remove_streams
                                                            (TpSvcChannelTypeStreamedMediaClass *klass,
                                                             tp_svc_channel_type_streamed_media_remove_streams_impl impl);
    void                tp_svc_channel_type_streamed_media_return_from_remove_streams
                                                            (DBusGMethodInvocation *context);
    void                (*tp_svc_channel_type_streamed_media_request_stream_direction_impl)
                                                            (TpSvcChannelTypeStreamedMedia *self,
                                                             guint in_Stream_ID,
                                                             guint in_Stream_Direction,
                                                             DBusGMethodInvocation *context);
    void                tp_svc_channel_type_streamed_media_implement_request_stream_direction
                                                            (TpSvcChannelTypeStreamedMediaClass *klass,
                                                             tp_svc_channel_type_streamed_media_request_stream_direction_impl impl);
    void                tp_svc_channel_type_streamed_media_return_from_request_stream_direction
                                                            (DBusGMethodInvocation *context);
    void                (*tp_svc_channel_type_streamed_media_request_streams_impl)
                                                            (TpSvcChannelTypeStreamedMedia *self,
                                                             guint in_Contact_Handle,
                                                             const GArray *in_Types,
                                                             DBusGMethodInvocation *context);
    void                tp_svc_channel_type_streamed_media_implement_request_streams
                                                            (TpSvcChannelTypeStreamedMediaClass *klass,
                                                             tp_svc_channel_type_streamed_media_request_streams_impl impl);
    void                tp_svc_channel_type_streamed_media_return_from_request_streams
                                                            (DBusGMethodInvocation *context,
                                                             const GPtrArray *out_Streams);
    void                tp_svc_channel_type_streamed_media_emit_stream_added
                                                            (gpointer instance,
                                                             guint arg_Stream_ID,
                                                             guint arg_Contact_Handle,
                                                             guint arg_Stream_Type);
    void                tp_svc_channel_type_streamed_media_emit_stream_direction_changed
                                                            (gpointer instance,
                                                             guint arg_Stream_ID,
                                                             guint arg_Stream_Direction,
                                                             guint arg_Pending_Flags);
    void                tp_svc_channel_type_streamed_media_emit_stream_error
                                                            (gpointer instance,
                                                             guint arg_Stream_ID,
                                                             guint arg_Error_Code,
                                                             const gchar *arg_Message);
    void                tp_svc_channel_type_streamed_media_emit_stream_removed
                                                            (gpointer instance,
                                                             guint arg_Stream_ID);
    void                tp_svc_channel_type_streamed_media_emit_stream_state_changed
                                                            (gpointer instance,
                                                             guint arg_Stream_ID,
                                                             guint arg_Stream_State);

                        TpSvcChannelInterfaceCallState;
                        TpSvcChannelInterfaceCallStateClass;
    void                tp_svc_channel_interface_call_state_emit_call_state_changed
                                                            (gpointer instance,
                                                             guint arg_Contact,
                                                             guint arg_State);
    void                (*tp_svc_channel_interface_call_state_get_call_states_impl)
                                                            (TpSvcChannelInterfaceCallState *self,
                                                             DBusGMethodInvocation *context);
    void                tp_svc_channel_interface_call_state_implement_get_call_states
                                                            (TpSvcChannelInterfaceCallStateClass *klass,
                                                             tp_svc_channel_interface_call_state_get_call_states_impl impl);
    void                tp_svc_channel_interface_call_state_return_from_get_call_states
                                                            (DBusGMethodInvocation *context,
                                                             GHashTable *out_States);

                        TpSvcChannelInterfaceDTMF;
                        TpSvcChannelInterfaceDTMFClass;
    void                tp_svc_channel_interface_dtmf_implement_multiple_tones
                                                            (TpSvcChannelInterfaceDTMFClass *klass,
                                                             tp_svc_channel_interface_dtmf_multiple_tones_impl impl);
    void                tp_svc_channel_interface_dtmf_implement_start_tone
                                                            (TpSvcChannelInterfaceDTMFClass *klass,
                                                             tp_svc_channel_interface_dtmf_start_tone_impl impl);
    void                tp_svc_channel_interface_dtmf_implement_stop_tone
                                                            (TpSvcChannelInterfaceDTMFClass *klass,
                                                             tp_svc_channel_interface_dtmf_stop_tone_impl impl);
    void                tp_svc_channel_interface_dtmf_return_from_multiple_tones
                                                            (DBusGMethodInvocation *context);
    void                tp_svc_channel_interface_dtmf_return_from_start_tone
                                                            (DBusGMethodInvocation *context);
    void                tp_svc_channel_interface_dtmf_return_from_stop_tone
                                                            (DBusGMethodInvocation *context);
    void                (*tp_svc_channel_interface_dtmf_multiple_tones_impl)
                                                            (TpSvcChannelInterfaceDTMF *self,
                                                             const gchar *in_Tones,
                                                             DBusGMethodInvocation *context);
    void                (*tp_svc_channel_interface_dtmf_start_tone_impl)
                                                            (TpSvcChannelInterfaceDTMF *self,
                                                             guint in_Stream_ID,
                                                             guchar in_Event,
                                                             DBusGMethodInvocation *context);
    void                (*tp_svc_channel_interface_dtmf_stop_tone_impl)
                                                            (TpSvcChannelInterfaceDTMF *self,
                                                             guint in_Stream_ID,
                                                             DBusGMethodInvocation *context);
    void                tp_svc_channel_interface_dtmf_emit_sending_tones
                                                            (gpointer instance,
                                                             const gchar *arg_Tones);
    void                tp_svc_channel_interface_dtmf_emit_stopped_tones
                                                            (gpointer instance,
                                                             gboolean arg_Cancelled);
    void                tp_svc_channel_interface_dtmf_emit_tones_deferred
                                                            (gpointer instance,
                                                             const gchar *arg_Tones);

                        TpSvcChannelInterfaceHold;
                        TpSvcChannelInterfaceHoldClass;
    void                (*tp_svc_channel_interface_hold_get_hold_state_impl)
                                                            (TpSvcChannelInterfaceHold *self,
                                                             DBusGMethodInvocation *context);
    void                tp_svc_channel_interface_hold_return_from_get_hold_state
                                                            (DBusGMethodInvocation *context,
                                                             guint out_HoldState,
                                                             guint out_Reason);
    void                tp_svc_channel_interface_hold_implement_get_hold_state
                                                            (TpSvcChannelInterfaceHoldClass *klass,
                                                             tp_svc_channel_interface_hold_get_hold_state_impl impl);
    void                (*tp_svc_channel_interface_hold_request_hold_impl)
                                                            (TpSvcChannelInterfaceHold *self,
                                                             gboolean in_Hold,
                                                             DBusGMethodInvocation *context);
    void                tp_svc_channel_interface_hold_return_from_request_hold
                                                            (DBusGMethodInvocation *context);
    void                tp_svc_channel_interface_hold_implement_request_hold
                                                            (TpSvcChannelInterfaceHoldClass *klass,
                                                             tp_svc_channel_interface_hold_request_hold_impl impl);
    void                tp_svc_channel_interface_hold_emit_hold_state_changed
                                                            (gpointer instance,
                                                             guint arg_HoldState,
                                                             guint arg_Reason);

                        TpSvcChannelInterfaceMediaSignalling;
                        TpSvcChannelInterfaceMediaSignallingClass;
    void                (*tp_svc_channel_interface_media_signalling_get_session_handlers_impl)
                                                            (TpSvcChannelInterfaceMediaSignalling *self,
                                                             DBusGMethodInvocation *context);
    void                tp_svc_channel_interface_media_signalling_implement_get_session_handlers
                                                            (TpSvcChannelInterfaceMediaSignallingClass *klass,
                                                             tp_svc_channel_interface_media_signalling_get_session_handlers_impl impl);
    void                tp_svc_channel_interface_media_signalling_return_from_get_session_handlers
                                                            (DBusGMethodInvocation *context,
                                                             const GPtrArray *out_Session_Handlers);
    void                tp_svc_channel_interface_media_signalling_emit_new_session_handler
                                                            (gpointer instance,
                                                             const gchar *arg_Session_Handler,
                                                             const gchar *arg_Session_Type);

## Object Hierarchy

      GInterface
       +----TpSvcChannelTypeStreamedMedia

      GInterface
       +----TpSvcChannelInterfaceCallState

      GInterface
       +----TpSvcChannelInterfaceDTMF

      GInterface
       +----TpSvcChannelInterfaceHold

      GInterface
       +----TpSvcChannelInterfaceMediaSignalling

## Known Implementations

TpSvcChannelInterfaceDTMF is implemented by TpBaseCallChannel and TpBaseMediaCallChannel.

TpSvcChannelInterfaceHold is implemented by TpBaseMediaCallChannel.

## Signals

      "stream-added"                                   : Has Details
      "stream-direction-changed"                       : Has Details
      "stream-error"                                   : Has Details
      "stream-removed"                                 : Has Details
      "stream-state-changed"                           : Has Details
      "call-state-changed"                             : Has Details
      "sending-tones"                                  : Has Details
      "stopped-tones"                                  : Has Details
      "tones-deferred"                                 : Has Details
      "hold-state-changed"                             : Has Details
      "new-session-handler"                            : Has Details

## Description

This section documents the auto-generated C wrappers for the Streamed Media channel type, and some interfaces which are optionally supported by channels of this type.

Streamed Media channels represent real-time audio or video streaming, including voice over IP, webcams, and telephony.

Channels of type Streamed Media may support the Media Signalling interface. If not, the connection manager is assumed to be presenting the media streams to the user automatically (for instance, in a connection manager like gnome-phone-manager or telepathy-snom that remotely controls a telephone, the phone's own speaker and microphone will probably be used directly).

If Media Signalling is supported, the Telepathy client is responsible for actually streaming the media, using the Media Signalling interface to provide signalling (connection managers might implement this interface in terms of Jingle or SDP, for instance).

Channels of type Streamed Media may also support the DTMF and CallState interfaces.

## Details

### TpSvcChannelTypeStreamedMedia

    typedef struct _TpSvcChannelTypeStreamedMedia TpSvcChannelTypeStreamedMedia;

Dummy typedef representing any implementation of this interface.

### TpSvcChannelTypeStreamedMediaClass

    typedef struct _TpSvcChannelTypeStreamedMediaClass TpSvcChannelTypeStreamedMediaClass;

The class of TpSvcChannelTypeStreamedMedia.

In a full implementation of this interface (i.e. all methods implemented), the interface initialization function used in `G_IMPLEMENT_INTERFACE()` would typically look like this:

    static void
    implement_channel_type_streamed_media (gpointer klass,
        gpointer unused G_GNUC_UNUSED)
    {
    #define IMPLEMENT(x) tp_svc_channel_type_streamed_media_implement_##x (\
      klass, my_object_##x)
      IMPLEMENT (list_streams);
      IMPLEMENT (remove_streams);
      IMPLEMENT (request_stream_direction);
      IMPLEMENT (request_streams);
    #undef IMPLEMENT
    }

### tp_svc_channel_type_streamed_media_list_streams_impl ()

    void                (*tp_svc_channel_type_streamed_media_list_streams_impl)
                                                            (TpSvcChannelTypeStreamedMedia *self,
                                                             DBusGMethodInvocation *context);

The signature of an implementation of the D-Bus method ListStreams on interface org.freedesktop.Telepathy.Channel.Type.StreamedMedia.

`self` : | The object implementing this interface
`context` : | Used to return values or throw an error

### tp_svc_channel_type_streamed_media_implement_list_streams ()

    void                tp_svc_channel_type_streamed_media_implement_list_streams
                                                            (TpSvcChannelTypeStreamedMediaClass *klass,
                                                             tp_svc_channel_type_streamed_media_list_streams_impl impl);

Register an implementation for the ListStreams method in the vtable of an implementation of this interface. To be called from the interface init function.

`klass` : | A class whose instances implement this interface
`impl` : | A callback used to implement the ListStreams D-Bus method

### tp_svc_channel_type_streamed_media_return_from_list_streams ()

    void                tp_svc_channel_type_streamed_media_return_from_list_streams
                                                            (DBusGMethodInvocation *context,
                                                             const GPtrArray *out_Streams);

Return successfully by calling `dbus_g_method_return()`. This inline function exists only to provide type-safety.

`context` : | The D-Bus method invocation context
`out_Streams` : | const GPtrArray * (FIXME, generate documentation)

### tp_svc_channel_type_streamed_media_remove_streams_impl ()

    void                (*tp_svc_channel_type_streamed_media_remove_streams_impl)
                                                            (TpSvcChannelTypeStreamedMedia *self,
                                                             const GArray *in_Streams,
                                                             DBusGMethodInvocation *context);

The signature of an implementation of the D-Bus method RemoveStreams on interface org.freedesktop.Telepathy.Channel.Type.StreamedMedia.

`self` : | The object implementing this interface
`in_Streams` : | const GArray * (FIXME, generate documentation)
`context` : | Used to return values or throw an error

### tp_svc_channel_type_streamed_media_implement_remove_streams ()

    void                tp_svc_channel_type_streamed_media_implement_remove_streams
                                                            (TpSvcChannelTypeStreamedMediaClass *klass,
                                                             tp_svc_channel_type_streamed_media_remove_streams_impl impl);

Register an implementation for the RemoveStreams method in the vtable of an implementation of this interface. To be called from the interface init function.

`klass` : | A class whose instances implement this interface
`impl` : | A callback used to implement the RemoveStreams D-Bus method

### tp_svc_channel_type_streamed_media_return_from_remove_streams ()

    void                tp_svc_channel_type_streamed_media_return_from_remove_streams
                                                            (DBusGMethodInvocation *context);

Return successfully by calling `dbus_g_method_return()`. This inline function exists only to provide type-safety.

`context` : | The D-Bus method invocation context

### tp_svc_channel_type_streamed_media_request_stream_direction_impl ()

    void                (*tp_svc_channel_type_streamed_media_request_stream_direction_impl)
                                                            (TpSvcChannelTypeStreamedMedia *self,
                                                             guint in_Stream_ID,
                                                             guint in_Stream_Direction,
                                                             DBusGMethodInvocation *context);

The signature of an implementation of the D-Bus method RequestStreamDirection on interface org.freedesktop.Telepathy.Channel.Type.StreamedMedia.

`self` : | The object implementing this interface
`in_Stream_ID` : | guint (FIXME, generate documentation)
`in_Stream_Direction` : | guint (FIXME, generate documentation)
`context` : | Used to return values or throw an error

### tp_svc_channel_type_streamed_media_implement_request_stream_direction ()

    void                tp_svc_channel_type_streamed_media_implement_request_stream_direction
                                                            (TpSvcChannelTypeStreamedMediaClass *klass,
                                                             tp_svc_channel_type_streamed_media_request_stream_direction_impl impl);

Register an implementation for the RequestStreamDirection method in the vtable of an implementation of this interface. To be called from the interface init function.

`klass` : | A class whose instances implement this interface
`impl` : | A callback used to implement the RequestStreamDirection D-Bus method

### tp_svc_channel_type_streamed_media_return_from_request_stream_direction ()

    void                tp_svc_channel_type_streamed_media_return_from_request_stream_direction
                                                            (DBusGMethodInvocation *context);

Return successfully by calling `dbus_g_method_return()`. This inline function exists only to provide type-safety.

`context` : | The D-Bus method invocation context

### tp_svc_channel_type_streamed_media_request_streams_impl ()

    void                (*tp_svc_channel_type_streamed_media_request_streams_impl)
                                                            (TpSvcChannelTypeStreamedMedia *self,
                                                             guint in_Contact_Handle,
                                                             const GArray *in_Types,
                                                             DBusGMethodInvocation *context);

The signature of an implementation of the D-Bus method RequestStreams on interface org.freedesktop.Telepathy.Channel.Type.StreamedMedia.

`self` : | The object implementing this interface
`in_Contact_Handle` : | guint (FIXME, generate documentation)
`in_Types` : | const GArray * (FIXME, generate documentation)
`context` : | Used to return values or throw an error

### tp_svc_channel_type_streamed_media_implement_request_streams ()

    void                tp_svc_channel_type_streamed_media_implement_request_streams
                                                            (TpSvcChannelTypeStreamedMediaClass *klass,
                                                             tp_svc_channel_type_streamed_media_request_streams_impl impl);

Register an implementation for the RequestStreams method in the vtable of an implementation of this interface. To be called from the interface init function.

`klass` : | A class whose instances implement this interface
`impl` : | A callback used to implement the RequestStreams D-Bus method

### tp_svc_channel_type_streamed_media_return_from_request_streams ()

    void                tp_svc_channel_type_streamed_media_return_from_request_streams
                                                            (DBusGMethodInvocation *context,
                                                             const GPtrArray *out_Streams);

Return successfully by calling `dbus_g_method_return()`. This inline function exists only to provide type-safety.

`context` : | The D-Bus method invocation context
`out_Streams` : | const GPtrArray * (FIXME, generate documentation)

### tp_svc_channel_type_streamed_media_emit_stream_added ()

    void                tp_svc_channel_type_streamed_media_emit_stream_added
                                                            (gpointer instance,
                                                             guint arg_Stream_ID,
                                                             guint arg_Contact_Handle,
                                                             guint arg_Stream_Type);

Type-safe wrapper around g_signal_emit to emit the StreamAdded signal on interface org.freedesktop.Telepathy.Channel.Type.StreamedMedia.

`instance` : | The object implementing this interface
`arg_Stream_ID` : | guint (FIXME, generate documentation)
`arg_Contact_Handle` : | guint (FIXME, generate documentation)
`arg_Stream_Type` : | guint (FIXME, generate documentation)

### tp_svc_channel_type_streamed_media_emit_stream_direction_changed ()

    void                tp_svc_channel_type_streamed_media_emit_stream_direction_changed
                                                            (gpointer instance,
                                                             guint arg_Stream_ID,
                                                             guint arg_Stream_Direction,
                                                             guint arg_Pending_Flags);

Type-safe wrapper around g_signal_emit to emit the StreamDirectionChanged signal on interface org.freedesktop.Telepathy.Channel.Type.StreamedMedia.

`instance` : | The object implementing this interface
`arg_Stream_ID` : | guint (FIXME, generate documentation)
`arg_Stream_Direction` : | guint (FIXME, generate documentation)
`arg_Pending_Flags` : | guint (FIXME, generate documentation)

### tp_svc_channel_type_streamed_media_emit_stream_error ()

    void                tp_svc_channel_type_streamed_media_emit_stream_error
                                                            (gpointer instance,
                                                             guint arg_Stream_ID,
                                                             guint arg_Error_Code,
                                                             const gchar *arg_Message);

Type-safe wrapper around g_signal_emit to emit the StreamError signal on interface org.freedesktop.Telepathy.Channel.Type.StreamedMedia.

`instance` : | The object implementing this interface
`arg_Stream_ID` : | guint (FIXME, generate documentation)
`arg_Error_Code` : | guint (FIXME, generate documentation)
`arg_Message` : | const gchar * (FIXME, generate documentation)

### tp_svc_channel_type_streamed_media_emit_stream_removed ()

    void                tp_svc_channel_type_streamed_media_emit_stream_removed
                                                            (gpointer instance,
                                                             guint arg_Stream_ID);

Type-safe wrapper around g_signal_emit to emit the StreamRemoved signal on interface org.freedesktop.Telepathy.Channel.Type.StreamedMedia.

`instance` : | The object implementing this interface
`arg_Stream_ID` : | guint (FIXME, generate documentation)

### tp_svc_channel_type_streamed_media_emit_stream_state_changed ()

    void                tp_svc_channel_type_streamed_media_emit_stream_state_changed
                                                            (gpointer instance,
                                                             guint arg_Stream_ID,
                                                             guint arg_Stream_State);

Type-safe wrapper around g_signal_emit to emit the StreamStateChanged signal on interface org.freedesktop.Telepathy.Channel.Type.StreamedMedia.

`instance` : | The object implementing this interface
`arg_Stream_ID` : | guint (FIXME, generate documentation)
`arg_Stream_State` : | guint (FIXME, generate documentation)

### TpSvcChannelInterfaceCallState

    typedef struct _TpSvcChannelInterfaceCallState TpSvcChannelInterfaceCallState;

Dummy typedef representing any implementation of this interface.

### TpSvcChannelInterfaceCallStateClass

    typedef struct _TpSvcChannelInterfaceCallStateClass TpSvcChannelInterfaceCallStateClass;

The class of TpSvcChannelInterfaceCallState.

In a full implementation of this interface (i.e. all methods implemented), the interface initialization function used in `G_IMPLEMENT_INTERFACE()` would typically look like this:

    static void
    implement_channel_interface_call_state (gpointer klass,
        gpointer unused G_GNUC_UNUSED)
    {
    #define IMPLEMENT(x) tp_svc_channel_interface_call_state_implement_##x (\
      klass, my_object_##x)
      IMPLEMENT (get_call_states);
    #undef IMPLEMENT
    }

### tp_svc_channel_interface_call_state_emit_call_state_changed ()

    void                tp_svc_channel_interface_call_state_emit_call_state_changed
                                                            (gpointer instance,
                                                             guint arg_Contact,
                                                             guint arg_State);

Type-safe wrapper around g_signal_emit to emit the CallStateChanged signal on interface org.freedesktop.Telepathy.Channel.Interface.CallState.

`instance` : | The object implementing this interface
`arg_Contact` : | guint (FIXME, generate documentation)
`arg_State` : | guint (FIXME, generate documentation)

### tp_svc_channel_interface_call_state_get_call_states_impl ()

    void                (*tp_svc_channel_interface_call_state_get_call_states_impl)
                                                            (TpSvcChannelInterfaceCallState *self,
                                                             DBusGMethodInvocation *context);

The signature of an implementation of the D-Bus method GetCallStates on interface org.freedesktop.Telepathy.Channel.Interface.CallState.

`self` : | The object implementing this interface
`context` : | Used to return values or throw an error

### tp_svc_channel_interface_call_state_implement_get_call_states ()

    void                tp_svc_channel_interface_call_state_implement_get_call_states
                                                            (TpSvcChannelInterfaceCallStateClass *klass,
                                                             tp_svc_channel_interface_call_state_get_call_states_impl impl);

Register an implementation for the GetCallStates method in the vtable of an implementation of this interface. To be called from the interface init function.

`klass` : | A class whose instances implement this interface
`impl` : | A callback used to implement the GetCallStates D-Bus method

### tp_svc_channel_interface_call_state_return_from_get_call_states ()

    void                tp_svc_channel_interface_call_state_return_from_get_call_states
                                                            (DBusGMethodInvocation *context,
                                                             GHashTable *out_States);

Return successfully by calling `dbus_g_method_return()`. This inline function exists only to provide type-safety.

`context` : | The D-Bus method invocation context
`out_States` : | GHashTable * (FIXME, generate documentation)

### TpSvcChannelInterfaceDTMF

    typedef struct _TpSvcChannelInterfaceDTMF TpSvcChannelInterfaceDTMF;

Dummy typedef representing any implementation of this interface.

### TpSvcChannelInterfaceDTMFClass

    typedef struct _TpSvcChannelInterfaceDTMFClass TpSvcChannelInterfaceDTMFClass;

The class of TpSvcChannelInterfaceDTMF.

In a full implementation of this interface (i.e. all methods implemented), the interface initialization function used in `G_IMPLEMENT_INTERFACE()` would typically look like this:

    static void
    implement_channel_interface_dtmf (gpointer klass,
        gpointer unused G_GNUC_UNUSED)
    {
    #define IMPLEMENT(x) tp_svc_channel_interface_dtmf_implement_##x (\
      klass, my_object_##x)
      IMPLEMENT (start_tone);
      IMPLEMENT (stop_tone);
      IMPLEMENT (multiple_tones);
    #undef IMPLEMENT
    }

### tp_svc_channel_interface_dtmf_implement_multiple_tones ()

    void                tp_svc_channel_interface_dtmf_implement_multiple_tones
                                                            (TpSvcChannelInterfaceDTMFClass *klass,
                                                             tp_svc_channel_interface_dtmf_multiple_tones_impl impl);

Register an implementation for the MultipleTones method in the vtable of an implementation of this interface. To be called from the interface init function.

`klass` : | A class whose instances implement this interface
`impl` : | A callback used to implement the MultipleTones D-Bus method

### tp_svc_channel_interface_dtmf_implement_start_tone ()

    void                tp_svc_channel_interface_dtmf_implement_start_tone
                                                            (TpSvcChannelInterfaceDTMFClass *klass,
                                                             tp_svc_channel_interface_dtmf_start_tone_impl impl);

Register an implementation for the StartTone method in the vtable of an implementation of this interface. To be called from the interface init function.

`klass` : | A class whose instances implement this interface
`impl` : | A callback used to implement the StartTone D-Bus method

### tp_svc_channel_interface_dtmf_implement_stop_tone ()

    void                tp_svc_channel_interface_dtmf_implement_stop_tone
                                                            (TpSvcChannelInterfaceDTMFClass *klass,
                                                             tp_svc_channel_interface_dtmf_stop_tone_impl impl);

Register an implementation for the StopTone method in the vtable of an implementation of this interface. To be called from the interface init function.

`klass` : | A class whose instances implement this interface
`impl` : | A callback used to implement the StopTone D-Bus method

### tp_svc_channel_interface_dtmf_return_from_multiple_tones ()

    void                tp_svc_channel_interface_dtmf_return_from_multiple_tones
                                                            (DBusGMethodInvocation *context);

Return successfully by calling `dbus_g_method_return()`. This inline function exists only to provide type-safety.

`context` : | The D-Bus method invocation context

### tp_svc_channel_interface_dtmf_return_from_start_tone ()

    void                tp_svc_channel_interface_dtmf_return_from_start_tone
                                                            (DBusGMethodInvocation *context);

Return successfully by calling `dbus_g_method_return()`. This inline function exists only to provide type-safety.

`context` : | The D-Bus method invocation context

### tp_svc_channel_interface_dtmf_return_from_stop_tone ()

    void                tp_svc_channel_interface_dtmf_return_from_stop_tone
                                                            (DBusGMethodInvocation *context);

Return successfully by calling `dbus_g_method_return()`. This inline function exists only to provide type-safety.

`context` : | The D-Bus method invocation context

### tp_svc_channel_interface_dtmf_multiple_tones_impl ()

    void                (*tp_svc_channel_interface_dtmf_multiple_tones_impl)
                                                            (TpSvcChannelInterfaceDTMF *self,
                                                             const gchar *in_Tones,
                                                             DBusGMethodInvocation *context);

The signature of an implementation of the D-Bus method MultipleTones on interface org.freedesktop.Telepathy.Channel.Interface.DTMF.

`self` : | The object implementing this interface
`in_Tones` : | const gchar * (FIXME, generate documentation)
`context` : | Used to return values or throw an error

### tp_svc_channel_interface_dtmf_start_tone_impl ()

    void                (*tp_svc_channel_interface_dtmf_start_tone_impl)
                                                            (TpSvcChannelInterfaceDTMF *self,
                                                             guint in_Stream_ID,
                                                             guchar in_Event,
                                                             DBusGMethodInvocation *context);

The signature of an implementation of the D-Bus method StartTone on interface org.freedesktop.Telepathy.Channel.Interface.DTMF.

`self` : | The object implementing this interface
`in_Stream_ID` : | guint (FIXME, generate documentation)
`in_Event` : | guchar (FIXME, generate documentation)
`context` : | Used to return values or throw an error

### tp_svc_channel_interface_dtmf_stop_tone_impl ()

    void                (*tp_svc_channel_interface_dtmf_stop_tone_impl)
                                                            (TpSvcChannelInterfaceDTMF *self,
                                                             guint in_Stream_ID,
                                                             DBusGMethodInvocation *context);

The signature of an implementation of the D-Bus method StopTone on interface org.freedesktop.Telepathy.Channel.Interface.DTMF.

`self` : | The object implementing this interface
`in_Stream_ID` : | guint (FIXME, generate documentation)
`context` : | Used to return values or throw an error

### tp_svc_channel_interface_dtmf_emit_sending_tones ()

    void                tp_svc_channel_interface_dtmf_emit_sending_tones
                                                            (gpointer instance,
                                                             const gchar *arg_Tones);

Type-safe wrapper around g_signal_emit to emit the SendingTones signal on interface org.freedesktop.Telepathy.Channel.Interface.DTMF.

`instance` : | The object implementing this interface
`arg_Tones` : | const gchar * (FIXME, generate documentation)

### tp_svc_channel_interface_dtmf_emit_stopped_tones ()

    void                tp_svc_channel_interface_dtmf_emit_stopped_tones
                                                            (gpointer instance,
                                                             gboolean arg_Cancelled);

Type-safe wrapper around g_signal_emit to emit the StoppedTones signal on interface org.freedesktop.Telepathy.Channel.Interface.DTMF.

`instance` : | The object implementing this interface
`arg_Cancelled` : | gboolean (FIXME, generate documentation)

### tp_svc_channel_interface_dtmf_emit_tones_deferred ()

    void                tp_svc_channel_interface_dtmf_emit_tones_deferred
                                                            (gpointer instance,
                                                             const gchar *arg_Tones);

Type-safe wrapper around g_signal_emit to emit the TonesDeferred signal on interface org.freedesktop.Telepathy.Channel.Interface.DTMF.

`instance` : | The object implementing this interface
`arg_Tones` : | const gchar * (FIXME, generate documentation)

### TpSvcChannelInterfaceHold

    typedef struct _TpSvcChannelInterfaceHold TpSvcChannelInterfaceHold;

Dummy typedef representing any implementation of this interface.

### TpSvcChannelInterfaceHoldClass

    typedef struct _TpSvcChannelInterfaceHoldClass TpSvcChannelInterfaceHoldClass;

The class of TpSvcChannelInterfaceHold.

In a full implementation of this interface (i.e. all methods implemented), the interface initialization function used in `G_IMPLEMENT_INTERFACE()` would typically look like this:

    static void
    implement_channel_interface_hold (gpointer klass,
        gpointer unused G_GNUC_UNUSED)
    {
    #define IMPLEMENT(x) tp_svc_channel_interface_hold_implement_##x (\
      klass, my_object_##x)
      IMPLEMENT (get_hold_state);
      IMPLEMENT (request_hold);
    #undef IMPLEMENT
    }

### tp_svc_channel_interface_hold_get_hold_state_impl ()

    void                (*tp_svc_channel_interface_hold_get_hold_state_impl)
                                                            (TpSvcChannelInterfaceHold *self,
                                                             DBusGMethodInvocation *context);

The signature of an implementation of the D-Bus method GetHoldState on interface org.freedesktop.Telepathy.Channel.Interface.Hold.

`self` : | The object implementing this interface
`context` : | Used to return values or throw an error

### tp_svc_channel_interface_hold_return_from_get_hold_state ()

    void                tp_svc_channel_interface_hold_return_from_get_hold_state
                                                            (DBusGMethodInvocation *context,
                                                             guint out_HoldState,
                                                             guint out_Reason);

Return successfully by calling `dbus_g_method_return()`. This inline function exists only to provide type-safety.

`context` : | The D-Bus method invocation context
`out_HoldState` : | guint (FIXME, generate documentation)
`out_Reason` : | guint (FIXME, generate documentation)

### tp_svc_channel_interface_hold_implement_get_hold_state ()

    void                tp_svc_channel_interface_hold_implement_get_hold_state
                                                            (TpSvcChannelInterfaceHoldClass *klass,
                                                             tp_svc_channel_interface_hold_get_hold_state_impl impl);

Register an implementation for the GetHoldState method in the vtable of an implementation of this interface. To be called from the interface init function.

`klass` : | A class whose instances implement this interface
`impl` : | A callback used to implement the GetHoldState D-Bus method

### tp_svc_channel_interface_hold_request_hold_impl ()

    void                (*tp_svc_channel_interface_hold_request_hold_impl)
                                                            (TpSvcChannelInterfaceHold *self,
                                                             gboolean in_Hold,
                                                             DBusGMethodInvocation *context);

The signature of an implementation of the D-Bus method RequestHold on interface org.freedesktop.Telepathy.Channel.Interface.Hold.

`self` : | The object implementing this interface
`in_Hold` : | gboolean (FIXME, generate documentation)
`context` : | Used to return values or throw an error

### tp_svc_channel_interface_hold_return_from_request_hold ()

    void                tp_svc_channel_interface_hold_return_from_request_hold
                                                            (DBusGMethodInvocation *context);

Return successfully by calling `dbus_g_method_return()`. This inline function exists only to provide type-safety.

`context` : | The D-Bus method invocation context

### tp_svc_channel_interface_hold_implement_request_hold ()

    void                tp_svc_channel_interface_hold_implement_request_hold
                                                            (TpSvcChannelInterfaceHoldClass *klass,
                                                             tp_svc_channel_interface_hold_request_hold_impl impl);

Register an implementation for the RequestHold method in the vtable of an implementation of this interface. To be called from the interface init function.

`klass` : | A class whose instances implement this interface
`impl` : | A callback used to implement the RequestHold D-Bus method

### tp_svc_channel_interface_hold_emit_hold_state_changed ()

    void                tp_svc_channel_interface_hold_emit_hold_state_changed
                                                            (gpointer instance,
                                                             guint arg_HoldState,
                                                             guint arg_Reason);

Type-safe wrapper around g_signal_emit to emit the HoldStateChanged signal on interface org.freedesktop.Telepathy.Channel.Interface.Hold.

`instance` : | The object implementing this interface
`arg_HoldState` : | guint (FIXME, generate documentation)
`arg_Reason` : | guint (FIXME, generate documentation)

### TpSvcChannelInterfaceMediaSignalling

    typedef struct _TpSvcChannelInterfaceMediaSignalling TpSvcChannelInterfaceMediaSignalling;

Dummy typedef representing any implementation of this interface.

### TpSvcChannelInterfaceMediaSignallingClass

    typedef struct _TpSvcChannelInterfaceMediaSignallingClass TpSvcChannelInterfaceMediaSignallingClass;

The class of TpSvcChannelInterfaceMediaSignalling.

In a full implementation of this interface (i.e. all methods implemented), the interface initialization function used in `G_IMPLEMENT_INTERFACE()` would typically look like this:

    static void
    implement_channel_interface_media_signalling (gpointer klass,
        gpointer unused G_GNUC_UNUSED)
    {
    #define IMPLEMENT(x) tp_svc_channel_interface_media_signalling_implement_##x (\
      klass, my_object_##x)
      IMPLEMENT (get_session_handlers);
    #undef IMPLEMENT
    }

### tp_svc_channel_interface_media_signalling_get_session_handlers_impl ()

    void                (*tp_svc_channel_interface_media_signalling_get_session_handlers_impl)
                                                            (TpSvcChannelInterfaceMediaSignalling *self,
                                                             DBusGMethodInvocation *context);

The signature of an implementation of the D-Bus method GetSessionHandlers on interface org.freedesktop.Telepathy.Channel.Interface.MediaSignalling.

`self` : | The object implementing this interface
`context` : | Used to return values or throw an error

### tp_svc_channel_interface_media_signalling_implement_get_session_handlers ()

    void                tp_svc_channel_interface_media_signalling_implement_get_session_handlers
                                                            (TpSvcChannelInterfaceMediaSignallingClass *klass,
                                                             tp_svc_channel_interface_media_signalling_get_session_handlers_impl impl);

Register an implementation for the GetSessionHandlers method in the vtable of an implementation of this interface. To be called from the interface init function.

`klass` : | A class whose instances implement this interface
`impl` : | A callback used to implement the GetSessionHandlers D-Bus method

### tp_svc_channel_interface_media_signalling_return_from_get_session_handlers ()

    void                tp_svc_channel_interface_media_signalling_return_from_get_session_handlers
                                                            (DBusGMethodInvocation *context,
                                                             const GPtrArray *out_Session_Handlers);

Return successfully by calling `dbus_g_method_return()`. This inline function exists only to provide type-safety.

`context` : | The D-Bus method invocation context
`out_Session_Handlers` : | const GPtrArray * (FIXME, generate documentation)

### tp_svc_channel_interface_media_signalling_emit_new_session_handler ()

    void                tp_svc_channel_interface_media_signalling_emit_new_session_handler
                                                            (gpointer instance,
                                                             const gchar *arg_Session_Handler,
                                                             const gchar *arg_Session_Type);

Type-safe wrapper around g_signal_emit to emit the NewSessionHandler signal on interface org.freedesktop.Telepathy.Channel.Interface.MediaSignalling.

`instance` : | The object implementing this interface
`arg_Session_Handler` : | const gchar * (FIXME, generate documentation)
`arg_Session_Type` : | const gchar * (FIXME, generate documentation)

## Signal Details

### The `"stream-added"` signal

    void                user_function                      (TpSvcChannelTypeStreamedMedia *self,
                                                            guint                          arg_Stream_ID,
                                                            guint                          arg_Contact_Handle,
                                                            guint                          arg_Stream_Type,
                                                            gpointer                       user_data)               : Has Details

The StreamAdded D-Bus signal is emitted whenever this GObject signal is.

`self` : | an object
`arg_Stream_ID` : | guint (FIXME, generate documentation)
`arg_Contact_Handle` : | guint (FIXME, generate documentation)
`arg_Stream_Type` : | guint (FIXME, generate documentation)
`user_data` : | user data set when the signal handler was connected.

### The `"stream-direction-changed"` signal

    void                user_function                      (TpSvcChannelTypeStreamedMedia *self,
                                                            guint                          arg_Stream_ID,
                                                            guint                          arg_Stream_Direction,
                                                            guint                          arg_Pending_Flags,
                                                            gpointer                       user_data)                 : Has Details

The StreamDirectionChanged D-Bus signal is emitted whenever this GObject signal is.

`self` : | an object
`arg_Stream_ID` : | guint (FIXME, generate documentation)
`arg_Stream_Direction` : | guint (FIXME, generate documentation)
`arg_Pending_Flags` : | guint (FIXME, generate documentation)
`user_data` : | user data set when the signal handler was connected.

### The `"stream-error"` signal

    void                user_function                      (TpSvcChannelTypeStreamedMedia *self,
                                                            guint                          arg_Stream_ID,
                                                            guint                          arg_Error_Code,
                                                            gchar                         *arg_Message,
                                                            gpointer                       user_data)           : Has Details

The StreamError D-Bus signal is emitted whenever this GObject signal is.

`self` : | an object
`arg_Stream_ID` : | guint (FIXME, generate documentation)
`arg_Error_Code` : | guint (FIXME, generate documentation)
`arg_Message` : | const gchar * (FIXME, generate documentation)
`user_data` : | user data set when the signal handler was connected.

### The `"stream-removed"` signal

    void                user_function                      (TpSvcChannelTypeStreamedMedia *self,
                                                            guint                          arg_Stream_ID,
                                                            gpointer                       user_data)          : Has Details

The StreamRemoved D-Bus signal is emitted whenever this GObject signal is.

`self` : | an object
`arg_Stream_ID` : | guint (FIXME, generate documentation)
`user_data` : | user data set when the signal handler was connected.

### The `"stream-state-changed"` signal

    void                user_function                      (TpSvcChannelTypeStreamedMedia *self,
                                                            guint                          arg_Stream_ID,
                                                            guint                          arg_Stream_State,
                                                            gpointer                       user_data)             : Has Details

The StreamStateChanged D-Bus signal is emitted whenever this GObject signal is.

`self` : | an object
`arg_Stream_ID` : | guint (FIXME, generate documentation)
`arg_Stream_State` : | guint (FIXME, generate documentation)
`user_data` : | user data set when the signal handler was connected.

### The `"call-state-changed"` signal

    void                user_function                      (TpSvcChannelInterfaceCallState *self,
                                                            guint                           arg_Contact,
                                                            guint                           arg_State,
                                                            gpointer                        user_data)        : Has Details

The CallStateChanged D-Bus signal is emitted whenever this GObject signal is.

`self` : | an object
`arg_Contact` : | guint (FIXME, generate documentation)
`arg_State` : | guint (FIXME, generate documentation)
`user_data` : | user data set when the signal handler was connected.

### The `"sending-tones"` signal

    void                user_function                      (TpSvcChannelInterfaceDTMF *self,
                                                            gchar                     *arg_Tones,
                                                            gpointer                   user_data)      : Has Details

The SendingTones D-Bus signal is emitted whenever this GObject signal is.

`self` : | an object
`arg_Tones` : | const gchar * (FIXME, generate documentation)
`user_data` : | user data set when the signal handler was connected.

### The `"stopped-tones"` signal

    void                user_function                      (TpSvcChannelInterfaceDTMF *self,
                                                            gboolean                   arg_Cancelled,
                                                            gpointer                   user_data)          : Has Details

The StoppedTones D-Bus signal is emitted whenever this GObject signal is.

`self` : | an object
`arg_Cancelled` : | gboolean (FIXME, generate documentation)
`user_data` : | user data set when the signal handler was connected.

### The `"tones-deferred"` signal

    void                user_function                      (TpSvcChannelInterfaceDTMF *self,
                                                            gchar                     *arg_Tones,
                                                            gpointer                   user_data)      : Has Details

The TonesDeferred D-Bus signal is emitted whenever this GObject signal is.

`self` : | an object
`arg_Tones` : | const gchar * (FIXME, generate documentation)
`user_data` : | user data set when the signal handler was connected.

### The `"hold-state-changed"` signal

    void                user_function                      (TpSvcChannelInterfaceHold *self,
                                                            guint                      arg_HoldState,
                                                            guint                      arg_Reason,
                                                            gpointer                   user_data)          : Has Details

The HoldStateChanged D-Bus signal is emitted whenever this GObject signal is.

`self` : | an object
`arg_HoldState` : | guint (FIXME, generate documentation)
`arg_Reason` : | guint (FIXME, generate documentation)
`user_data` : | user data set when the signal handler was connected.

### The `"new-session-handler"` signal

    void                user_function                      (TpSvcChannelInterfaceMediaSignalling *self,
                                                            DBusGObjectPath                      *arg_Session_Handler,
                                                            gchar                                *arg_Session_Type,
                                                            gpointer                              user_data)                : Has Details

The NewSessionHandler D-Bus signal is emitted whenever this GObject signal is.

`self` : | an object
`arg_Session_Handler` : | const gchar * (FIXME, generate documentation)
`arg_Session_Type` : | const gchar * (FIXME, generate documentation)
`user_data` : | user data set when the signal handler was connected.