## Service-side Channel Authentication interfaces Service-side Channel Authentication interfaces — GInterfaces to implement authentication channels |

## Synopsis

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

                        TpSvcChannelTypeServerAuthentication;
                        TpSvcChannelTypeServerAuthenticationClass;

                        TpSvcChannelInterfaceSASLAuthentication;
                        TpSvcChannelInterfaceSASLAuthenticationClass;
    void                (*tp_svc_channel_interface_sasl_authentication_abort_sasl_impl)
                                                            (TpSvcChannelInterfaceSASLAuthentication *self,
                                                             guint in_Reason,
                                                             const gchar *in_Debug_Message,
                                                             DBusGMethodInvocation *context);
    void                (*tp_svc_channel_interface_sasl_authentication_accept_sasl_impl)
                                                            (TpSvcChannelInterfaceSASLAuthentication *self,
                                                             DBusGMethodInvocation *context);
    void                tp_svc_channel_interface_sasl_authentication_emit_new_challenge
                                                            (gpointer instance,
                                                             const GArray *arg_Challenge_Data);
    void                tp_svc_channel_interface_sasl_authentication_emit_sasl_status_changed
                                                            (gpointer instance,
                                                             guint arg_Status,
                                                             const gchar *arg_Reason,
                                                             GHashTable *arg_Details);
    void                tp_svc_channel_interface_sasl_authentication_implement_abort_sasl
                                                            (TpSvcChannelInterfaceSASLAuthenticationClass *klass,
                                                             tp_svc_channel_interface_sasl_authentication_abort_sasl_impl impl);
    void                tp_svc_channel_interface_sasl_authentication_implement_accept_sasl
                                                            (TpSvcChannelInterfaceSASLAuthenticationClass *klass,
                                                             tp_svc_channel_interface_sasl_authentication_accept_sasl_impl impl);
    void                tp_svc_channel_interface_sasl_authentication_implement_respond
                                                            (TpSvcChannelInterfaceSASLAuthenticationClass *klass,
                                                             tp_svc_channel_interface_sasl_authentication_respond_impl impl);
    void                tp_svc_channel_interface_sasl_authentication_implement_start_mechanism
                                                            (TpSvcChannelInterfaceSASLAuthenticationClass *klass,
                                                             tp_svc_channel_interface_sasl_authentication_start_mechanism_impl impl);
    void                tp_svc_channel_interface_sasl_authentication_implement_start_mechanism_with_data
                                                            (TpSvcChannelInterfaceSASLAuthenticationClass *klass,
                                                             tp_svc_channel_interface_sasl_authentication_start_mechanism_with_data_impl impl);
    void                (*tp_svc_channel_interface_sasl_authentication_respond_impl)
                                                            (TpSvcChannelInterfaceSASLAuthentication *self,
                                                             const GArray *in_Response_Data,
                                                             DBusGMethodInvocation *context);
    void                tp_svc_channel_interface_sasl_authentication_return_from_abort_sasl
                                                            (DBusGMethodInvocation *context);
    void                tp_svc_channel_interface_sasl_authentication_return_from_accept_sasl
                                                            (DBusGMethodInvocation *context);
    void                tp_svc_channel_interface_sasl_authentication_return_from_respond
                                                            (DBusGMethodInvocation *context);
    void                tp_svc_channel_interface_sasl_authentication_return_from_start_mechanism
                                                            (DBusGMethodInvocation *context);
    void                tp_svc_channel_interface_sasl_authentication_return_from_start_mechanism_with_data
                                                            (DBusGMethodInvocation *context);
    void                (*tp_svc_channel_interface_sasl_authentication_start_mechanism_impl)
                                                            (TpSvcChannelInterfaceSASLAuthentication *self,
                                                             const gchar *in_Mechanism,
                                                             DBusGMethodInvocation *context);
    void                (*tp_svc_channel_interface_sasl_authentication_start_mechanism_with_data_impl)
                                                            (TpSvcChannelInterfaceSASLAuthentication *self,
                                                             const gchar *in_Mechanism,
                                                             const GArray *in_Initial_Data,
                                                             DBusGMethodInvocation *context);

                        TpSvcChannelInterfaceCaptchaAuthentication;
                        TpSvcChannelInterfaceCaptchaAuthenticationClass;

    void                (*tp_svc_channel_interface_captcha_authentication_answer_captchas_impl)
                                                            (TpSvcChannelInterfaceCaptchaAuthentication *self,
                                                             GHashTable *in_Answers,
                                                             DBusGMethodInvocation *context);
    void                (*tp_svc_channel_interface_captcha_authentication_cancel_captcha_impl)
                                                            (TpSvcChannelInterfaceCaptchaAuthentication *self,
                                                             guint in_Reason,
                                                             const gchar *in_Debug_Message,
                                                             DBusGMethodInvocation *context);
    void                (*tp_svc_channel_interface_captcha_authentication_get_captcha_data_impl)
                                                            (TpSvcChannelInterfaceCaptchaAuthentication *self,
                                                             guint in_ID,
                                                             const gchar *in_Mime_Type,
                                                             DBusGMethodInvocation *context);
    void                (*tp_svc_channel_interface_captcha_authentication_get_captchas_impl)
                                                            (TpSvcChannelInterfaceCaptchaAuthentication *self,
                                                             DBusGMethodInvocation *context);
    void                tp_svc_channel_interface_captcha_authentication_implement_answer_captchas
                                                            (TpSvcChannelInterfaceCaptchaAuthenticationClass *klass,
                                                             tp_svc_channel_interface_captcha_authentication_answer_captchas_impl impl);
    void                tp_svc_channel_interface_captcha_authentication_implement_cancel_captcha
                                                            (TpSvcChannelInterfaceCaptchaAuthenticationClass *klass,
                                                             tp_svc_channel_interface_captcha_authentication_cancel_captcha_impl impl);
    void                tp_svc_channel_interface_captcha_authentication_implement_get_captcha_data
                                                            (TpSvcChannelInterfaceCaptchaAuthenticationClass *klass,
                                                             tp_svc_channel_interface_captcha_authentication_get_captcha_data_impl impl);
    void                tp_svc_channel_interface_captcha_authentication_implement_get_captchas
                                                            (TpSvcChannelInterfaceCaptchaAuthenticationClass *klass,
                                                             tp_svc_channel_interface_captcha_authentication_get_captchas_impl impl);
    void                tp_svc_channel_interface_captcha_authentication_return_from_answer_captchas
                                                            (DBusGMethodInvocation *context);
    void                tp_svc_channel_interface_captcha_authentication_return_from_cancel_captcha
                                                            (DBusGMethodInvocation *context);
    void                tp_svc_channel_interface_captcha_authentication_return_from_get_captcha_data
                                                            (DBusGMethodInvocation *context,
                                                             const GArray *out_Captcha_Data);
    void                tp_svc_channel_interface_captcha_authentication_return_from_get_captchas
                                                            (DBusGMethodInvocation *context,
                                                             const GPtrArray *out_Captcha_Info,
                                                             guint out_Number_Required,
                                                             const gchar *out_Language);

## Object Hierarchy

      GInterface
       +----TpSvcChannelTypeServerAuthentication

      GInterface
       +----TpSvcChannelInterfaceSASLAuthentication

      GInterface
       +----TpSvcChannelInterfaceCaptchaAuthentication

## Known Implementations

TpSvcChannelTypeServerAuthentication is implemented by TpBasePasswordChannel.

TpSvcChannelInterfaceSASLAuthentication is implemented by TpBasePasswordChannel.

## Signals

      "new-challenge"                                  : Has Details
      "s-as-lstatus-changed"                           : Has Details

## Description

The ServerAuthentication channel type represents a request for client/UI processes to carry out authentication with a server.

The SASLAuthentication interface allows authentication via SASL, and also allows providing a simple password to the connection manager for it to use with SASL or non-SASL mechanisms.

The CaptchaAuthentication interface (since 0.17.5) allows interactive captcha-solving so that the user can prove that they are not a bot, on protocols requiring this.

## Details

### TpSvcChannelTypeServerAuthentication

    typedef struct _TpSvcChannelTypeServerAuthentication TpSvcChannelTypeServerAuthentication;

Dummy typedef representing any implementation of this interface.

### TpSvcChannelTypeServerAuthenticationClass

    typedef struct _TpSvcChannelTypeServerAuthenticationClass TpSvcChannelTypeServerAuthenticationClass;

The class of TpSvcChannelTypeServerAuthentication. This interface has no D-Bus methods, so an implementation can typically pass `NULL` to `G_IMPLEMENT_INTERFACE()` as the interface initialization function.

### TpSvcChannelInterfaceSASLAuthentication

    typedef struct _TpSvcChannelInterfaceSASLAuthentication TpSvcChannelInterfaceSASLAuthentication;

Dummy typedef representing any implementation of this interface.

### TpSvcChannelInterfaceSASLAuthenticationClass

    typedef struct _TpSvcChannelInterfaceSASLAuthenticationClass TpSvcChannelInterfaceSASLAuthenticationClass;

The class of TpSvcChannelInterfaceSASLAuthentication.

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_sasl_authentication (gpointer klass,
        gpointer unused G_GNUC_UNUSED)
    {
    #define IMPLEMENT(x) tp_svc_channel_interface_sasl_authentication_implement_##x (\
      klass, my_object_##x)
      IMPLEMENT (start_mechanism);
      IMPLEMENT (start_mechanism_with_data);
      IMPLEMENT (respond);
      IMPLEMENT (accept_sasl);
      IMPLEMENT (abort_sasl);
    #undef IMPLEMENT
    }

### tp_svc_channel_interface_sasl_authentication_abort_sasl_impl ()

    void                (*tp_svc_channel_interface_sasl_authentication_abort_sasl_impl)
                                                            (TpSvcChannelInterfaceSASLAuthentication *self,
                                                             guint in_Reason,
                                                             const gchar *in_Debug_Message,
                                                             DBusGMethodInvocation *context);

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

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

### tp_svc_channel_interface_sasl_authentication_accept_sasl_impl ()

    void                (*tp_svc_channel_interface_sasl_authentication_accept_sasl_impl)
                                                            (TpSvcChannelInterfaceSASLAuthentication *self,
                                                             DBusGMethodInvocation *context);

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

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

### tp_svc_channel_interface_sasl_authentication_emit_new_challenge ()

    void                tp_svc_channel_interface_sasl_authentication_emit_new_challenge
                                                            (gpointer instance,
                                                             const GArray *arg_Challenge_Data);

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

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

### tp_svc_channel_interface_sasl_authentication_emit_sasl_status_changed ()

    void                tp_svc_channel_interface_sasl_authentication_emit_sasl_status_changed
                                                            (gpointer instance,
                                                             guint arg_Status,
                                                             const gchar *arg_Reason,
                                                             GHashTable *arg_Details);

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

`instance` : | The object implementing this interface
`arg_Status` : | guint (FIXME, generate documentation)
`arg_Reason` : | const gchar * (FIXME, generate documentation)
`arg_Details` : | GHashTable * (FIXME, generate documentation)

### tp_svc_channel_interface_sasl_authentication_implement_abort_sasl ()

    void                tp_svc_channel_interface_sasl_authentication_implement_abort_sasl
                                                            (TpSvcChannelInterfaceSASLAuthenticationClass *klass,
                                                             tp_svc_channel_interface_sasl_authentication_abort_sasl_impl impl);

Register an implementation for the AbortSASL 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 AbortSASL D-Bus method

### tp_svc_channel_interface_sasl_authentication_implement_accept_sasl ()

    void                tp_svc_channel_interface_sasl_authentication_implement_accept_sasl
                                                            (TpSvcChannelInterfaceSASLAuthenticationClass *klass,
                                                             tp_svc_channel_interface_sasl_authentication_accept_sasl_impl impl);

Register an implementation for the AcceptSASL 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 AcceptSASL D-Bus method

### tp_svc_channel_interface_sasl_authentication_implement_respond ()

    void                tp_svc_channel_interface_sasl_authentication_implement_respond
                                                            (TpSvcChannelInterfaceSASLAuthenticationClass *klass,
                                                             tp_svc_channel_interface_sasl_authentication_respond_impl impl);

Register an implementation for the Respond 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 Respond D-Bus method

### tp_svc_channel_interface_sasl_authentication_implement_start_mechanism ()

    void                tp_svc_channel_interface_sasl_authentication_implement_start_mechanism
                                                            (TpSvcChannelInterfaceSASLAuthenticationClass *klass,
                                                             tp_svc_channel_interface_sasl_authentication_start_mechanism_impl impl);

Register an implementation for the StartMechanism 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 StartMechanism D-Bus method

### tp_svc_channel_interface_sasl_authentication_implement_start_mechanism_with_data ()

    void                tp_svc_channel_interface_sasl_authentication_implement_start_mechanism_with_data
                                                            (TpSvcChannelInterfaceSASLAuthenticationClass *klass,
                                                             tp_svc_channel_interface_sasl_authentication_start_mechanism_with_data_impl impl);

Register an implementation for the StartMechanismWithData 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 StartMechanismWithData D-Bus method

### tp_svc_channel_interface_sasl_authentication_respond_impl ()

    void                (*tp_svc_channel_interface_sasl_authentication_respond_impl)
                                                            (TpSvcChannelInterfaceSASLAuthentication *self,
                                                             const GArray *in_Response_Data,
                                                             DBusGMethodInvocation *context);

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

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

### tp_svc_channel_interface_sasl_authentication_return_from_abort_sasl ()

    void                tp_svc_channel_interface_sasl_authentication_return_from_abort_sasl
                                                            (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_sasl_authentication_return_from_accept_sasl ()

    void                tp_svc_channel_interface_sasl_authentication_return_from_accept_sasl
                                                            (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_sasl_authentication_return_from_respond ()

    void                tp_svc_channel_interface_sasl_authentication_return_from_respond
                                                            (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_sasl_authentication_return_from_start_mechanism ()

    void                tp_svc_channel_interface_sasl_authentication_return_from_start_mechanism
                                                            (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_sasl_authentication_return_from_start_mechanism_with_data ()

    void                tp_svc_channel_interface_sasl_authentication_return_from_start_mechanism_with_data
                                                            (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_sasl_authentication_start_mechanism_impl ()

    void                (*tp_svc_channel_interface_sasl_authentication_start_mechanism_impl)
                                                            (TpSvcChannelInterfaceSASLAuthentication *self,
                                                             const gchar *in_Mechanism,
                                                             DBusGMethodInvocation *context);

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

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

### tp_svc_channel_interface_sasl_authentication_start_mechanism_with_data_impl ()

    void                (*tp_svc_channel_interface_sasl_authentication_start_mechanism_with_data_impl)
                                                            (TpSvcChannelInterfaceSASLAuthentication *self,
                                                             const gchar *in_Mechanism,
                                                             const GArray *in_Initial_Data,
                                                             DBusGMethodInvocation *context);

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

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

### TpSvcChannelInterfaceCaptchaAuthentication

    typedef struct _TpSvcChannelInterfaceCaptchaAuthentication TpSvcChannelInterfaceCaptchaAuthentication;

Dummy typedef representing any implementation of this interface.

### TpSvcChannelInterfaceCaptchaAuthenticationClass

    typedef struct _TpSvcChannelInterfaceCaptchaAuthenticationClass TpSvcChannelInterfaceCaptchaAuthenticationClass;

The class of TpSvcChannelInterfaceCaptchaAuthentication.

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_captcha_authentication (gpointer klass,
        gpointer unused G_GNUC_UNUSED)
    {
    #define IMPLEMENT(x) tp_svc_channel_interface_captcha_authentication_implement_##x (\
      klass, my_object_##x)
      IMPLEMENT (get_captchas);
      IMPLEMENT (get_captcha_data);
      IMPLEMENT (answer_captchas);
      IMPLEMENT (cancel_captcha);
    #undef IMPLEMENT
    }

### tp_svc_channel_interface_captcha_authentication_answer_captchas_impl ()

    void                (*tp_svc_channel_interface_captcha_authentication_answer_captchas_impl)
                                                            (TpSvcChannelInterfaceCaptchaAuthentication *self,
                                                             GHashTable *in_Answers,
                                                             DBusGMethodInvocation *context);

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

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

### tp_svc_channel_interface_captcha_authentication_cancel_captcha_impl ()

    void                (*tp_svc_channel_interface_captcha_authentication_cancel_captcha_impl)
                                                            (TpSvcChannelInterfaceCaptchaAuthentication *self,
                                                             guint in_Reason,
                                                             const gchar *in_Debug_Message,
                                                             DBusGMethodInvocation *context);

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

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

### tp_svc_channel_interface_captcha_authentication_get_captcha_data_impl ()

    void                (*tp_svc_channel_interface_captcha_authentication_get_captcha_data_impl)
                                                            (TpSvcChannelInterfaceCaptchaAuthentication *self,
                                                             guint in_ID,
                                                             const gchar *in_Mime_Type,
                                                             DBusGMethodInvocation *context);

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

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

### tp_svc_channel_interface_captcha_authentication_get_captchas_impl ()

    void                (*tp_svc_channel_interface_captcha_authentication_get_captchas_impl)
                                                            (TpSvcChannelInterfaceCaptchaAuthentication *self,
                                                             DBusGMethodInvocation *context);

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

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

### tp_svc_channel_interface_captcha_authentication_implement_answer_captchas ()

    void                tp_svc_channel_interface_captcha_authentication_implement_answer_captchas
                                                            (TpSvcChannelInterfaceCaptchaAuthenticationClass *klass,
                                                             tp_svc_channel_interface_captcha_authentication_answer_captchas_impl impl);

Register an implementation for the AnswerCaptchas 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 AnswerCaptchas D-Bus method

### tp_svc_channel_interface_captcha_authentication_implement_cancel_captcha ()

    void                tp_svc_channel_interface_captcha_authentication_implement_cancel_captcha
                                                            (TpSvcChannelInterfaceCaptchaAuthenticationClass *klass,
                                                             tp_svc_channel_interface_captcha_authentication_cancel_captcha_impl impl);

Register an implementation for the CancelCaptcha 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 CancelCaptcha D-Bus method

### tp_svc_channel_interface_captcha_authentication_implement_get_captcha_data ()

    void                tp_svc_channel_interface_captcha_authentication_implement_get_captcha_data
                                                            (TpSvcChannelInterfaceCaptchaAuthenticationClass *klass,
                                                             tp_svc_channel_interface_captcha_authentication_get_captcha_data_impl impl);

Register an implementation for the GetCaptchaData 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 GetCaptchaData D-Bus method

### tp_svc_channel_interface_captcha_authentication_implement_get_captchas ()

    void                tp_svc_channel_interface_captcha_authentication_implement_get_captchas
                                                            (TpSvcChannelInterfaceCaptchaAuthenticationClass *klass,
                                                             tp_svc_channel_interface_captcha_authentication_get_captchas_impl impl);

Register an implementation for the GetCaptchas 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 GetCaptchas D-Bus method

### tp_svc_channel_interface_captcha_authentication_return_from_answer_captchas ()

    void                tp_svc_channel_interface_captcha_authentication_return_from_answer_captchas
                                                            (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_captcha_authentication_return_from_cancel_captcha ()

    void                tp_svc_channel_interface_captcha_authentication_return_from_cancel_captcha
                                                            (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_captcha_authentication_return_from_get_captcha_data ()

    void                tp_svc_channel_interface_captcha_authentication_return_from_get_captcha_data
                                                            (DBusGMethodInvocation *context,
                                                             const GArray *out_Captcha_Data);

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_Captcha_Data` : | const GArray * (FIXME, generate documentation)

### tp_svc_channel_interface_captcha_authentication_return_from_get_captchas ()

    void                tp_svc_channel_interface_captcha_authentication_return_from_get_captchas
                                                            (DBusGMethodInvocation *context,
                                                             const GPtrArray *out_Captcha_Info,
                                                             guint out_Number_Required,
                                                             const gchar *out_Language);

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_Captcha_Info` : | const GPtrArray * (FIXME, generate documentation)
`out_Number_Required` : | guint (FIXME, generate documentation)
`out_Language` : | const gchar * (FIXME, generate documentation)

## Signal Details

### The `"new-challenge"` signal

    void                user_function                      (TpSvcChannelInterfaceSASLAuthentication *self,
                                                            GArray_guchar_                          *arg_Challenge_Data,
                                                            gpointer                                 user_data)               : Has Details

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

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

### The `"s-as-lstatus-changed"` signal

    void                user_function                      (TpSvcChannelInterfaceSASLAuthentication *self,
                                                            guint                                    arg_Status,
                                                            gchar                                   *arg_Reason,
                                                            gpointer                                 user_data)       : Has Details

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

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