/* isicallmediators.c generated by valac 0.14.2, the Vala compiler
 * generated from isicallmediators.vala, do not modify */

/*
 * Copyright (C) 2010-2011 Michael 'Mickey' Lauer <mlauer@vanille-media.de>
 *
 * This program is free software; you can redistribute it and/or
 * modify it under the terms of the GNU General Public License
 * as published by the Free Software Foundation; either version 2
 * of the License, or (at your option) any later version.

 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.

 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301  USA
 *
 */

#include <glib.h>
#include <glib-object.h>
#include <fsogsm.h>
#include <gio/gio.h>
#include <freesmartphone.h>
#include <stdlib.h>
#include <string.h>
#include <gisicomm.h>


#define NOKIA_ISI_TYPE_ISI_CALL_ACTIVATE (nokia_isi_isi_call_activate_get_type ())
#define NOKIA_ISI_ISI_CALL_ACTIVATE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), NOKIA_ISI_TYPE_ISI_CALL_ACTIVATE, NokiaIsiIsiCallActivate))
#define NOKIA_ISI_ISI_CALL_ACTIVATE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), NOKIA_ISI_TYPE_ISI_CALL_ACTIVATE, NokiaIsiIsiCallActivateClass))
#define NOKIA_ISI_IS_ISI_CALL_ACTIVATE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), NOKIA_ISI_TYPE_ISI_CALL_ACTIVATE))
#define NOKIA_ISI_IS_ISI_CALL_ACTIVATE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), NOKIA_ISI_TYPE_ISI_CALL_ACTIVATE))
#define NOKIA_ISI_ISI_CALL_ACTIVATE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), NOKIA_ISI_TYPE_ISI_CALL_ACTIVATE, NokiaIsiIsiCallActivateClass))

typedef struct _NokiaIsiIsiCallActivate NokiaIsiIsiCallActivate;
typedef struct _NokiaIsiIsiCallActivateClass NokiaIsiIsiCallActivateClass;
typedef struct _NokiaIsiIsiCallActivatePrivate NokiaIsiIsiCallActivatePrivate;
#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))
typedef struct _NokiaIsiIsiCallActivateRunData NokiaIsiIsiCallActivateRunData;

#define NOKIA_ISI_TYPE_ISI_CALL_HOLD_ACTIVE (nokia_isi_isi_call_hold_active_get_type ())
#define NOKIA_ISI_ISI_CALL_HOLD_ACTIVE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), NOKIA_ISI_TYPE_ISI_CALL_HOLD_ACTIVE, NokiaIsiIsiCallHoldActive))
#define NOKIA_ISI_ISI_CALL_HOLD_ACTIVE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), NOKIA_ISI_TYPE_ISI_CALL_HOLD_ACTIVE, NokiaIsiIsiCallHoldActiveClass))
#define NOKIA_ISI_IS_ISI_CALL_HOLD_ACTIVE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), NOKIA_ISI_TYPE_ISI_CALL_HOLD_ACTIVE))
#define NOKIA_ISI_IS_ISI_CALL_HOLD_ACTIVE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), NOKIA_ISI_TYPE_ISI_CALL_HOLD_ACTIVE))
#define NOKIA_ISI_ISI_CALL_HOLD_ACTIVE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), NOKIA_ISI_TYPE_ISI_CALL_HOLD_ACTIVE, NokiaIsiIsiCallHoldActiveClass))

typedef struct _NokiaIsiIsiCallHoldActive NokiaIsiIsiCallHoldActive;
typedef struct _NokiaIsiIsiCallHoldActiveClass NokiaIsiIsiCallHoldActiveClass;
typedef struct _NokiaIsiIsiCallHoldActivePrivate NokiaIsiIsiCallHoldActivePrivate;
typedef struct _NokiaIsiIsiCallHoldActiveRunData NokiaIsiIsiCallHoldActiveRunData;

#define NOKIA_ISI_TYPE_ISI_CALL_INITIATE (nokia_isi_isi_call_initiate_get_type ())
#define NOKIA_ISI_ISI_CALL_INITIATE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), NOKIA_ISI_TYPE_ISI_CALL_INITIATE, NokiaIsiIsiCallInitiate))
#define NOKIA_ISI_ISI_CALL_INITIATE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), NOKIA_ISI_TYPE_ISI_CALL_INITIATE, NokiaIsiIsiCallInitiateClass))
#define NOKIA_ISI_IS_ISI_CALL_INITIATE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), NOKIA_ISI_TYPE_ISI_CALL_INITIATE))
#define NOKIA_ISI_IS_ISI_CALL_INITIATE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), NOKIA_ISI_TYPE_ISI_CALL_INITIATE))
#define NOKIA_ISI_ISI_CALL_INITIATE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), NOKIA_ISI_TYPE_ISI_CALL_INITIATE, NokiaIsiIsiCallInitiateClass))

typedef struct _NokiaIsiIsiCallInitiate NokiaIsiIsiCallInitiate;
typedef struct _NokiaIsiIsiCallInitiateClass NokiaIsiIsiCallInitiateClass;
typedef struct _NokiaIsiIsiCallInitiatePrivate NokiaIsiIsiCallInitiatePrivate;
#define _g_free0(var) (var = (g_free (var), NULL))
typedef struct _NokiaIsiIsiCallInitiateRunData NokiaIsiIsiCallInitiateRunData;

#define NOKIA_ISI_TYPE_ISI_CALL_RELEASE (nokia_isi_isi_call_release_get_type ())
#define NOKIA_ISI_ISI_CALL_RELEASE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), NOKIA_ISI_TYPE_ISI_CALL_RELEASE, NokiaIsiIsiCallRelease))
#define NOKIA_ISI_ISI_CALL_RELEASE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), NOKIA_ISI_TYPE_ISI_CALL_RELEASE, NokiaIsiIsiCallReleaseClass))
#define NOKIA_ISI_IS_ISI_CALL_RELEASE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), NOKIA_ISI_TYPE_ISI_CALL_RELEASE))
#define NOKIA_ISI_IS_ISI_CALL_RELEASE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), NOKIA_ISI_TYPE_ISI_CALL_RELEASE))
#define NOKIA_ISI_ISI_CALL_RELEASE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), NOKIA_ISI_TYPE_ISI_CALL_RELEASE, NokiaIsiIsiCallReleaseClass))

typedef struct _NokiaIsiIsiCallRelease NokiaIsiIsiCallRelease;
typedef struct _NokiaIsiIsiCallReleaseClass NokiaIsiIsiCallReleaseClass;
typedef struct _NokiaIsiIsiCallReleasePrivate NokiaIsiIsiCallReleasePrivate;
typedef struct _NokiaIsiIsiCallReleaseRunData NokiaIsiIsiCallReleaseRunData;

#define NOKIA_ISI_TYPE_ISI_CALL_RELEASE_ALL (nokia_isi_isi_call_release_all_get_type ())
#define NOKIA_ISI_ISI_CALL_RELEASE_ALL(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), NOKIA_ISI_TYPE_ISI_CALL_RELEASE_ALL, NokiaIsiIsiCallReleaseAll))
#define NOKIA_ISI_ISI_CALL_RELEASE_ALL_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), NOKIA_ISI_TYPE_ISI_CALL_RELEASE_ALL, NokiaIsiIsiCallReleaseAllClass))
#define NOKIA_ISI_IS_ISI_CALL_RELEASE_ALL(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), NOKIA_ISI_TYPE_ISI_CALL_RELEASE_ALL))
#define NOKIA_ISI_IS_ISI_CALL_RELEASE_ALL_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), NOKIA_ISI_TYPE_ISI_CALL_RELEASE_ALL))
#define NOKIA_ISI_ISI_CALL_RELEASE_ALL_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), NOKIA_ISI_TYPE_ISI_CALL_RELEASE_ALL, NokiaIsiIsiCallReleaseAllClass))

typedef struct _NokiaIsiIsiCallReleaseAll NokiaIsiIsiCallReleaseAll;
typedef struct _NokiaIsiIsiCallReleaseAllClass NokiaIsiIsiCallReleaseAllClass;
typedef struct _NokiaIsiIsiCallReleaseAllPrivate NokiaIsiIsiCallReleaseAllPrivate;
typedef struct _NokiaIsiIsiCallReleaseAllRunData NokiaIsiIsiCallReleaseAllRunData;

#define NOKIA_ISI_TYPE_ISI_CALL_LIST_CALLS (nokia_isi_isi_call_list_calls_get_type ())
#define NOKIA_ISI_ISI_CALL_LIST_CALLS(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), NOKIA_ISI_TYPE_ISI_CALL_LIST_CALLS, NokiaIsiIsiCallListCalls))
#define NOKIA_ISI_ISI_CALL_LIST_CALLS_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), NOKIA_ISI_TYPE_ISI_CALL_LIST_CALLS, NokiaIsiIsiCallListCallsClass))
#define NOKIA_ISI_IS_ISI_CALL_LIST_CALLS(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), NOKIA_ISI_TYPE_ISI_CALL_LIST_CALLS))
#define NOKIA_ISI_IS_ISI_CALL_LIST_CALLS_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), NOKIA_ISI_TYPE_ISI_CALL_LIST_CALLS))
#define NOKIA_ISI_ISI_CALL_LIST_CALLS_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), NOKIA_ISI_TYPE_ISI_CALL_LIST_CALLS, NokiaIsiIsiCallListCallsClass))

typedef struct _NokiaIsiIsiCallListCalls NokiaIsiIsiCallListCalls;
typedef struct _NokiaIsiIsiCallListCallsClass NokiaIsiIsiCallListCallsClass;
typedef struct _NokiaIsiIsiCallListCallsPrivate NokiaIsiIsiCallListCallsPrivate;

#define FSO_GSM_TYPE_ISI_CALL_HANDLER (fso_gsm_isi_call_handler_get_type ())
#define FSO_GSM_ISI_CALL_HANDLER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FSO_GSM_TYPE_ISI_CALL_HANDLER, FsoGsmIsiCallHandler))
#define FSO_GSM_ISI_CALL_HANDLER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), FSO_GSM_TYPE_ISI_CALL_HANDLER, FsoGsmIsiCallHandlerClass))
#define FSO_GSM_IS_ISI_CALL_HANDLER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FSO_GSM_TYPE_ISI_CALL_HANDLER))
#define FSO_GSM_IS_ISI_CALL_HANDLER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FSO_GSM_TYPE_ISI_CALL_HANDLER))
#define FSO_GSM_ISI_CALL_HANDLER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), FSO_GSM_TYPE_ISI_CALL_HANDLER, FsoGsmIsiCallHandlerClass))

typedef struct _FsoGsmIsiCallHandler FsoGsmIsiCallHandler;
typedef struct _FsoGsmIsiCallHandlerClass FsoGsmIsiCallHandlerClass;
typedef struct _NokiaIsiIsiCallListCallsRunData NokiaIsiIsiCallListCallsRunData;

#define NOKIA_ISI_TYPE_ISI_CALL_SEND_DTMF (nokia_isi_isi_call_send_dtmf_get_type ())
#define NOKIA_ISI_ISI_CALL_SEND_DTMF(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), NOKIA_ISI_TYPE_ISI_CALL_SEND_DTMF, NokiaIsiIsiCallSendDtmf))
#define NOKIA_ISI_ISI_CALL_SEND_DTMF_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), NOKIA_ISI_TYPE_ISI_CALL_SEND_DTMF, NokiaIsiIsiCallSendDtmfClass))
#define NOKIA_ISI_IS_ISI_CALL_SEND_DTMF(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), NOKIA_ISI_TYPE_ISI_CALL_SEND_DTMF))
#define NOKIA_ISI_IS_ISI_CALL_SEND_DTMF_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), NOKIA_ISI_TYPE_ISI_CALL_SEND_DTMF))
#define NOKIA_ISI_ISI_CALL_SEND_DTMF_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), NOKIA_ISI_TYPE_ISI_CALL_SEND_DTMF, NokiaIsiIsiCallSendDtmfClass))

typedef struct _NokiaIsiIsiCallSendDtmf NokiaIsiIsiCallSendDtmf;
typedef struct _NokiaIsiIsiCallSendDtmfClass NokiaIsiIsiCallSendDtmfClass;
typedef struct _NokiaIsiIsiCallSendDtmfPrivate NokiaIsiIsiCallSendDtmfPrivate;
typedef struct _Block4Data Block4Data;
typedef struct _NokiaIsiIsiCallSendDtmfRunData NokiaIsiIsiCallSendDtmfRunData;

struct _NokiaIsiIsiCallActivate {
	FsoGsmCallActivate parent_instance;
	NokiaIsiIsiCallActivatePrivate * priv;
};

struct _NokiaIsiIsiCallActivateClass {
	FsoGsmCallActivateClass parent_class;
};

struct _NokiaIsiIsiCallActivateRunData {
	int _state_;
	GObject* _source_object_;
	GAsyncResult* _res_;
	GSimpleAsyncResult* _async_result;
	NokiaIsiIsiCallActivate* self;
	gint id;
	FsoGsmModem* _tmp0_;
	FsoGsmCallHandler* _tmp1_;
	FsoGsmCallHandler* _tmp2_;
	gint _tmp3_;
	GError * _inner_error_;
};

struct _NokiaIsiIsiCallHoldActive {
	FsoGsmCallHoldActive parent_instance;
	NokiaIsiIsiCallHoldActivePrivate * priv;
};

struct _NokiaIsiIsiCallHoldActiveClass {
	FsoGsmCallHoldActiveClass parent_class;
};

struct _NokiaIsiIsiCallHoldActiveRunData {
	int _state_;
	GObject* _source_object_;
	GAsyncResult* _res_;
	GSimpleAsyncResult* _async_result;
	NokiaIsiIsiCallHoldActive* self;
	FsoGsmModem* _tmp0_;
	FsoGsmCallHandler* _tmp1_;
	FsoGsmCallHandler* _tmp2_;
	GError * _inner_error_;
};

struct _NokiaIsiIsiCallInitiate {
	FsoGsmCallInitiate parent_instance;
	NokiaIsiIsiCallInitiatePrivate * priv;
};

struct _NokiaIsiIsiCallInitiateClass {
	FsoGsmCallInitiateClass parent_class;
};

struct _NokiaIsiIsiCallInitiateRunData {
	int _state_;
	GObject* _source_object_;
	GAsyncResult* _res_;
	GSimpleAsyncResult* _async_result;
	NokiaIsiIsiCallInitiate* self;
	gchar* number;
	gchar* ctype;
	const gchar* _tmp0_;
	FsoGsmModem* _tmp1_;
	FsoGsmCallHandler* _tmp2_;
	FsoGsmCallHandler* _tmp3_;
	const gchar* _tmp4_;
	const gchar* _tmp5_;
	gint _tmp6_;
	gint _tmp7_;
	GError * _inner_error_;
};

struct _NokiaIsiIsiCallRelease {
	FsoGsmCallRelease parent_instance;
	NokiaIsiIsiCallReleasePrivate * priv;
};

struct _NokiaIsiIsiCallReleaseClass {
	FsoGsmCallReleaseClass parent_class;
};

struct _NokiaIsiIsiCallReleaseRunData {
	int _state_;
	GObject* _source_object_;
	GAsyncResult* _res_;
	GSimpleAsyncResult* _async_result;
	NokiaIsiIsiCallRelease* self;
	gint id;
	FsoGsmModem* _tmp0_;
	FsoGsmCallHandler* _tmp1_;
	FsoGsmCallHandler* _tmp2_;
	gint _tmp3_;
	GError * _inner_error_;
};

struct _NokiaIsiIsiCallReleaseAll {
	FsoGsmCallReleaseAll parent_instance;
	NokiaIsiIsiCallReleaseAllPrivate * priv;
};

struct _NokiaIsiIsiCallReleaseAllClass {
	FsoGsmCallReleaseAllClass parent_class;
};

struct _NokiaIsiIsiCallReleaseAllRunData {
	int _state_;
	GObject* _source_object_;
	GAsyncResult* _res_;
	GSimpleAsyncResult* _async_result;
	NokiaIsiIsiCallReleaseAll* self;
	FsoGsmModem* _tmp0_;
	FsoGsmCallHandler* _tmp1_;
	FsoGsmCallHandler* _tmp2_;
	GError * _inner_error_;
};

struct _NokiaIsiIsiCallListCalls {
	FsoGsmCallListCalls parent_instance;
	NokiaIsiIsiCallListCallsPrivate * priv;
};

struct _NokiaIsiIsiCallListCallsClass {
	FsoGsmCallListCallsClass parent_class;
};

struct _NokiaIsiIsiCallListCallsRunData {
	int _state_;
	GObject* _source_object_;
	GAsyncResult* _res_;
	GSimpleAsyncResult* _async_result;
	NokiaIsiIsiCallListCalls* self;
	FsoGsmModem* _tmp0_;
	FsoGsmCallHandler* _tmp1_;
	FsoGsmCallHandler* _tmp2_;
	FsoGsmIsiCallHandler* _tmp3_;
	FsoGsmIsiCallHandler* callhandler;
	gint _tmp4_;
	FreeSmartphoneGSMCallDetail* _tmp5_;
	FreeSmartphoneGSMCallDetail* _tmp6_;
	gint _tmp6__length1;
	gint __tmp6__size_;
	FreeSmartphoneGSMCallDetail* _tmp7_;
	gint _tmp7__length1;
	GError * _inner_error_;
};

struct _NokiaIsiIsiCallSendDtmf {
	FsoGsmCallSendDtmf parent_instance;
	NokiaIsiIsiCallSendDtmfPrivate * priv;
};

struct _NokiaIsiIsiCallSendDtmfClass {
	FsoGsmCallSendDtmfClass parent_class;
};

struct _Block4Data {
	int _ref_count_;
	NokiaIsiIsiCallSendDtmf * self;
	gpointer _async_data_;
};

struct _NokiaIsiIsiCallSendDtmfRunData {
	int _state_;
	GObject* _source_object_;
	GAsyncResult* _res_;
	GSimpleAsyncResult* _async_result;
	NokiaIsiIsiCallSendDtmf* self;
	gchar* tones;
	Block4Data* _data4_;
	GIsiCommModemAccess* _tmp0_;
	GIsiCommCall* _tmp1_;
	const gchar* _tmp2_;
};


static gpointer nokia_isi_isi_call_activate_parent_class = NULL;
static GType nokia_isi_isi_call_activate_type_id = 0;
static gpointer nokia_isi_isi_call_hold_active_parent_class = NULL;
static GType nokia_isi_isi_call_hold_active_type_id = 0;
static gpointer nokia_isi_isi_call_initiate_parent_class = NULL;
static GType nokia_isi_isi_call_initiate_type_id = 0;
static gpointer nokia_isi_isi_call_release_parent_class = NULL;
static GType nokia_isi_isi_call_release_type_id = 0;
static gpointer nokia_isi_isi_call_release_all_parent_class = NULL;
static GType nokia_isi_isi_call_release_all_type_id = 0;
static gpointer nokia_isi_isi_call_list_calls_parent_class = NULL;
static GType nokia_isi_isi_call_list_calls_type_id = 0;
static gpointer nokia_isi_isi_call_send_dtmf_parent_class = NULL;
extern GIsiCommModemAccess* nokia_isi_isimodem;
static GType nokia_isi_isi_call_send_dtmf_type_id = 0;

GType nokia_isi_isi_call_activate_get_type (void) G_GNUC_CONST;
GType nokia_isi_isi_call_activate_register_type (GTypeModule * module);
enum  {
	NOKIA_ISI_ISI_CALL_ACTIVATE_DUMMY_PROPERTY
};
static void nokia_isi_isi_call_activate_real_run_data_free (gpointer _data);
static void nokia_isi_isi_call_activate_real_run (FsoGsmCallActivate* base, gint id, GAsyncReadyCallback _callback_, gpointer _user_data_);
static gboolean nokia_isi_isi_call_activate_real_run_co (NokiaIsiIsiCallActivateRunData* _data_);
static void nokia_isi_isi_call_activate_run_ready (GObject* source_object, GAsyncResult* _res_, gpointer _user_data_);
NokiaIsiIsiCallActivate* nokia_isi_isi_call_activate_new (void);
NokiaIsiIsiCallActivate* nokia_isi_isi_call_activate_construct (GType object_type);
GType nokia_isi_isi_call_hold_active_get_type (void) G_GNUC_CONST;
GType nokia_isi_isi_call_hold_active_register_type (GTypeModule * module);
enum  {
	NOKIA_ISI_ISI_CALL_HOLD_ACTIVE_DUMMY_PROPERTY
};
static void nokia_isi_isi_call_hold_active_real_run_data_free (gpointer _data);
static void nokia_isi_isi_call_hold_active_real_run (FsoGsmCallHoldActive* base, GAsyncReadyCallback _callback_, gpointer _user_data_);
static gboolean nokia_isi_isi_call_hold_active_real_run_co (NokiaIsiIsiCallHoldActiveRunData* _data_);
static void nokia_isi_isi_call_hold_active_run_ready (GObject* source_object, GAsyncResult* _res_, gpointer _user_data_);
NokiaIsiIsiCallHoldActive* nokia_isi_isi_call_hold_active_new (void);
NokiaIsiIsiCallHoldActive* nokia_isi_isi_call_hold_active_construct (GType object_type);
GType nokia_isi_isi_call_initiate_get_type (void) G_GNUC_CONST;
GType nokia_isi_isi_call_initiate_register_type (GTypeModule * module);
enum  {
	NOKIA_ISI_ISI_CALL_INITIATE_DUMMY_PROPERTY
};
static void nokia_isi_isi_call_initiate_real_run_data_free (gpointer _data);
static void nokia_isi_isi_call_initiate_real_run (FsoGsmCallInitiate* base, const gchar* number, const gchar* ctype, GAsyncReadyCallback _callback_, gpointer _user_data_);
static gboolean nokia_isi_isi_call_initiate_real_run_co (NokiaIsiIsiCallInitiateRunData* _data_);
static void nokia_isi_isi_call_initiate_run_ready (GObject* source_object, GAsyncResult* _res_, gpointer _user_data_);
NokiaIsiIsiCallInitiate* nokia_isi_isi_call_initiate_new (void);
NokiaIsiIsiCallInitiate* nokia_isi_isi_call_initiate_construct (GType object_type);
GType nokia_isi_isi_call_release_get_type (void) G_GNUC_CONST;
GType nokia_isi_isi_call_release_register_type (GTypeModule * module);
enum  {
	NOKIA_ISI_ISI_CALL_RELEASE_DUMMY_PROPERTY
};
static void nokia_isi_isi_call_release_real_run_data_free (gpointer _data);
static void nokia_isi_isi_call_release_real_run (FsoGsmCallRelease* base, gint id, GAsyncReadyCallback _callback_, gpointer _user_data_);
static gboolean nokia_isi_isi_call_release_real_run_co (NokiaIsiIsiCallReleaseRunData* _data_);
static void nokia_isi_isi_call_release_run_ready (GObject* source_object, GAsyncResult* _res_, gpointer _user_data_);
NokiaIsiIsiCallRelease* nokia_isi_isi_call_release_new (void);
NokiaIsiIsiCallRelease* nokia_isi_isi_call_release_construct (GType object_type);
GType nokia_isi_isi_call_release_all_get_type (void) G_GNUC_CONST;
GType nokia_isi_isi_call_release_all_register_type (GTypeModule * module);
enum  {
	NOKIA_ISI_ISI_CALL_RELEASE_ALL_DUMMY_PROPERTY
};
static void nokia_isi_isi_call_release_all_real_run_data_free (gpointer _data);
static void nokia_isi_isi_call_release_all_real_run (FsoGsmCallReleaseAll* base, GAsyncReadyCallback _callback_, gpointer _user_data_);
static gboolean nokia_isi_isi_call_release_all_real_run_co (NokiaIsiIsiCallReleaseAllRunData* _data_);
static void nokia_isi_isi_call_release_all_run_ready (GObject* source_object, GAsyncResult* _res_, gpointer _user_data_);
NokiaIsiIsiCallReleaseAll* nokia_isi_isi_call_release_all_new (void);
NokiaIsiIsiCallReleaseAll* nokia_isi_isi_call_release_all_construct (GType object_type);
GType nokia_isi_isi_call_list_calls_get_type (void) G_GNUC_CONST;
GType nokia_isi_isi_call_list_calls_register_type (GTypeModule * module);
enum  {
	NOKIA_ISI_ISI_CALL_LIST_CALLS_DUMMY_PROPERTY
};
static void nokia_isi_isi_call_list_calls_real_run_data_free (gpointer _data);
static void nokia_isi_isi_call_list_calls_real_run (FsoGsmCallListCalls* base, GAsyncReadyCallback _callback_, gpointer _user_data_);
static gboolean nokia_isi_isi_call_list_calls_real_run_co (NokiaIsiIsiCallListCallsRunData* _data_);
GType fso_gsm_isi_call_handler_get_type (void) G_GNUC_CONST;
GType fso_gsm_isi_call_handler_register_type (GTypeModule * module);
void fso_gsm_isi_call_handler_listCalls (FsoGsmIsiCallHandler* self, GAsyncReadyCallback _callback_, gpointer _user_data_);
FreeSmartphoneGSMCallDetail* fso_gsm_isi_call_handler_listCalls_finish (FsoGsmIsiCallHandler* self, GAsyncResult* _res_, int* result_length1, GError** error);
static void nokia_isi_isi_call_list_calls_run_ready (GObject* source_object, GAsyncResult* _res_, gpointer _user_data_);
static void _vala_FreeSmartphoneGSMCallDetail_array_free (FreeSmartphoneGSMCallDetail* array, gint array_length);
NokiaIsiIsiCallListCalls* nokia_isi_isi_call_list_calls_new (void);
NokiaIsiIsiCallListCalls* nokia_isi_isi_call_list_calls_construct (GType object_type);
GType nokia_isi_isi_call_send_dtmf_get_type (void) G_GNUC_CONST;
GType nokia_isi_isi_call_send_dtmf_register_type (GTypeModule * module);
enum  {
	NOKIA_ISI_ISI_CALL_SEND_DTMF_DUMMY_PROPERTY
};
static void nokia_isi_isi_call_send_dtmf_real_run_data_free (gpointer _data);
static void nokia_isi_isi_call_send_dtmf_real_run (FsoGsmCallSendDtmf* base, const gchar* tones, GAsyncReadyCallback _callback_, gpointer _user_data_);
static gboolean nokia_isi_isi_call_send_dtmf_real_run_co (NokiaIsiIsiCallSendDtmfRunData* _data_);
static Block4Data* block4_data_ref (Block4Data* _data4_);
static void block4_data_unref (Block4Data* _data4_);
static void __lambda22_ (Block4Data* _data4_, GIsiCommErrorCode _error_);
static void ___lambda22__gisi_comm_void_result_func (GIsiCommErrorCode _error_, gpointer self);
NokiaIsiIsiCallSendDtmf* nokia_isi_isi_call_send_dtmf_new (void);
NokiaIsiIsiCallSendDtmf* nokia_isi_isi_call_send_dtmf_construct (GType object_type);


static void nokia_isi_isi_call_activate_real_run_data_free (gpointer _data) {
	NokiaIsiIsiCallActivateRunData* _data_;
	_data_ = _data;
	_g_object_unref0 (_data_->self);
	g_slice_free (NokiaIsiIsiCallActivateRunData, _data_);
}


static gpointer _g_object_ref0 (gpointer self) {
	return self ? g_object_ref (self) : NULL;
}


static void nokia_isi_isi_call_activate_real_run (FsoGsmCallActivate* base, gint id, GAsyncReadyCallback _callback_, gpointer _user_data_) {
	NokiaIsiIsiCallActivate * self;
	NokiaIsiIsiCallActivateRunData* _data_;
	NokiaIsiIsiCallActivate* _tmp0_;
	gint _tmp1_;
	self = (NokiaIsiIsiCallActivate*) base;
	_data_ = g_slice_new0 (NokiaIsiIsiCallActivateRunData);
	_data_->_async_result = g_simple_async_result_new (G_OBJECT (self), _callback_, _user_data_, nokia_isi_isi_call_activate_real_run);
	g_simple_async_result_set_op_res_gpointer (_data_->_async_result, _data_, nokia_isi_isi_call_activate_real_run_data_free);
	_tmp0_ = _g_object_ref0 (self);
	_data_->self = _tmp0_;
	_tmp1_ = id;
	_data_->id = _tmp1_;
	nokia_isi_isi_call_activate_real_run_co (_data_);
}


static void nokia_isi_isi_call_activate_real_run_finish (FsoGsmCallActivate* base, GAsyncResult* _res_, GError** error) {
	NokiaIsiIsiCallActivateRunData* _data_;
	if (g_simple_async_result_propagate_error (G_SIMPLE_ASYNC_RESULT (_res_), error)) {
		return;
	}
	_data_ = g_simple_async_result_get_op_res_gpointer (G_SIMPLE_ASYNC_RESULT (_res_));
}


static void nokia_isi_isi_call_activate_run_ready (GObject* source_object, GAsyncResult* _res_, gpointer _user_data_) {
	NokiaIsiIsiCallActivateRunData* _data_;
	_data_ = _user_data_;
	_data_->_source_object_ = source_object;
	_data_->_res_ = _res_;
	nokia_isi_isi_call_activate_real_run_co (_data_);
}


static gboolean nokia_isi_isi_call_activate_real_run_co (NokiaIsiIsiCallActivateRunData* _data_) {
	switch (_data_->_state_) {
		case 0:
		goto _state_0;
		case 1:
		goto _state_1;
		default:
		g_assert_not_reached ();
	}
	_state_0:
	_data_->_tmp0_ = fso_gsm_theModem;
	_data_->_tmp1_ = fso_gsm_modem_get_callhandler (_data_->_tmp0_);
	_data_->_tmp2_ = _data_->_tmp1_;
	_data_->_tmp3_ = _data_->id;
	_data_->_state_ = 1;
	fso_gsm_call_handler_activate (_data_->_tmp2_, _data_->_tmp3_, nokia_isi_isi_call_activate_run_ready, _data_);
	return FALSE;
	_state_1:
	fso_gsm_call_handler_activate_finish (_data_->_tmp2_, _data_->_res_, &_data_->_inner_error_);
	if (_data_->_inner_error_ != NULL) {
		if ((_data_->_inner_error_->domain == FREE_SMARTPHONE_GSM_ERROR) || (_data_->_inner_error_->domain == FREE_SMARTPHONE_ERROR)) {
			g_simple_async_result_set_from_error (_data_->_async_result, _data_->_inner_error_);
			g_error_free (_data_->_inner_error_);
			if (_data_->_state_ == 0) {
				g_simple_async_result_complete_in_idle (_data_->_async_result);
			} else {
				g_simple_async_result_complete (_data_->_async_result);
			}
			g_object_unref (_data_->_async_result);
			return FALSE;
		} else {
			g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _data_->_inner_error_->message, g_quark_to_string (_data_->_inner_error_->domain), _data_->_inner_error_->code);
			g_clear_error (&_data_->_inner_error_);
			return FALSE;
		}
	}
	if (_data_->_state_ == 0) {
		g_simple_async_result_complete_in_idle (_data_->_async_result);
	} else {
		g_simple_async_result_complete (_data_->_async_result);
	}
	g_object_unref (_data_->_async_result);
	return FALSE;
}


NokiaIsiIsiCallActivate* nokia_isi_isi_call_activate_construct (GType object_type) {
	NokiaIsiIsiCallActivate * self = NULL;
	self = (NokiaIsiIsiCallActivate*) fso_gsm_call_activate_construct (object_type);
	return self;
}


NokiaIsiIsiCallActivate* nokia_isi_isi_call_activate_new (void) {
	return nokia_isi_isi_call_activate_construct (NOKIA_ISI_TYPE_ISI_CALL_ACTIVATE);
}


static void nokia_isi_isi_call_activate_class_init (NokiaIsiIsiCallActivateClass * klass) {
	nokia_isi_isi_call_activate_parent_class = g_type_class_peek_parent (klass);
	FSO_GSM_CALL_ACTIVATE_CLASS (klass)->run = nokia_isi_isi_call_activate_real_run;
	FSO_GSM_CALL_ACTIVATE_CLASS (klass)->run_finish = nokia_isi_isi_call_activate_real_run_finish;
}


static void nokia_isi_isi_call_activate_instance_init (NokiaIsiIsiCallActivate * self) {
}


GType nokia_isi_isi_call_activate_get_type (void) {
	return nokia_isi_isi_call_activate_type_id;
}


GType nokia_isi_isi_call_activate_register_type (GTypeModule * module) {
	static const GTypeInfo g_define_type_info = { sizeof (NokiaIsiIsiCallActivateClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) nokia_isi_isi_call_activate_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (NokiaIsiIsiCallActivate), 0, (GInstanceInitFunc) nokia_isi_isi_call_activate_instance_init, NULL };
	nokia_isi_isi_call_activate_type_id = g_type_module_register_type (module, FSO_GSM_TYPE_CALL_ACTIVATE, "NokiaIsiIsiCallActivate", &g_define_type_info, 0);
	return nokia_isi_isi_call_activate_type_id;
}


static void nokia_isi_isi_call_hold_active_real_run_data_free (gpointer _data) {
	NokiaIsiIsiCallHoldActiveRunData* _data_;
	_data_ = _data;
	_g_object_unref0 (_data_->self);
	g_slice_free (NokiaIsiIsiCallHoldActiveRunData, _data_);
}


static void nokia_isi_isi_call_hold_active_real_run (FsoGsmCallHoldActive* base, GAsyncReadyCallback _callback_, gpointer _user_data_) {
	NokiaIsiIsiCallHoldActive * self;
	NokiaIsiIsiCallHoldActiveRunData* _data_;
	NokiaIsiIsiCallHoldActive* _tmp0_;
	self = (NokiaIsiIsiCallHoldActive*) base;
	_data_ = g_slice_new0 (NokiaIsiIsiCallHoldActiveRunData);
	_data_->_async_result = g_simple_async_result_new (G_OBJECT (self), _callback_, _user_data_, nokia_isi_isi_call_hold_active_real_run);
	g_simple_async_result_set_op_res_gpointer (_data_->_async_result, _data_, nokia_isi_isi_call_hold_active_real_run_data_free);
	_tmp0_ = _g_object_ref0 (self);
	_data_->self = _tmp0_;
	nokia_isi_isi_call_hold_active_real_run_co (_data_);
}


static void nokia_isi_isi_call_hold_active_real_run_finish (FsoGsmCallHoldActive* base, GAsyncResult* _res_, GError** error) {
	NokiaIsiIsiCallHoldActiveRunData* _data_;
	if (g_simple_async_result_propagate_error (G_SIMPLE_ASYNC_RESULT (_res_), error)) {
		return;
	}
	_data_ = g_simple_async_result_get_op_res_gpointer (G_SIMPLE_ASYNC_RESULT (_res_));
}


static void nokia_isi_isi_call_hold_active_run_ready (GObject* source_object, GAsyncResult* _res_, gpointer _user_data_) {
	NokiaIsiIsiCallHoldActiveRunData* _data_;
	_data_ = _user_data_;
	_data_->_source_object_ = source_object;
	_data_->_res_ = _res_;
	nokia_isi_isi_call_hold_active_real_run_co (_data_);
}


static gboolean nokia_isi_isi_call_hold_active_real_run_co (NokiaIsiIsiCallHoldActiveRunData* _data_) {
	switch (_data_->_state_) {
		case 0:
		goto _state_0;
		case 1:
		goto _state_1;
		default:
		g_assert_not_reached ();
	}
	_state_0:
	_data_->_tmp0_ = fso_gsm_theModem;
	_data_->_tmp1_ = fso_gsm_modem_get_callhandler (_data_->_tmp0_);
	_data_->_tmp2_ = _data_->_tmp1_;
	_data_->_state_ = 1;
	fso_gsm_call_handler_hold (_data_->_tmp2_, nokia_isi_isi_call_hold_active_run_ready, _data_);
	return FALSE;
	_state_1:
	fso_gsm_call_handler_hold_finish (_data_->_tmp2_, _data_->_res_, &_data_->_inner_error_);
	if (_data_->_inner_error_ != NULL) {
		if ((_data_->_inner_error_->domain == FREE_SMARTPHONE_GSM_ERROR) || (_data_->_inner_error_->domain == FREE_SMARTPHONE_ERROR)) {
			g_simple_async_result_set_from_error (_data_->_async_result, _data_->_inner_error_);
			g_error_free (_data_->_inner_error_);
			if (_data_->_state_ == 0) {
				g_simple_async_result_complete_in_idle (_data_->_async_result);
			} else {
				g_simple_async_result_complete (_data_->_async_result);
			}
			g_object_unref (_data_->_async_result);
			return FALSE;
		} else {
			g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _data_->_inner_error_->message, g_quark_to_string (_data_->_inner_error_->domain), _data_->_inner_error_->code);
			g_clear_error (&_data_->_inner_error_);
			return FALSE;
		}
	}
	if (_data_->_state_ == 0) {
		g_simple_async_result_complete_in_idle (_data_->_async_result);
	} else {
		g_simple_async_result_complete (_data_->_async_result);
	}
	g_object_unref (_data_->_async_result);
	return FALSE;
}


NokiaIsiIsiCallHoldActive* nokia_isi_isi_call_hold_active_construct (GType object_type) {
	NokiaIsiIsiCallHoldActive * self = NULL;
	self = (NokiaIsiIsiCallHoldActive*) fso_gsm_call_hold_active_construct (object_type);
	return self;
}


NokiaIsiIsiCallHoldActive* nokia_isi_isi_call_hold_active_new (void) {
	return nokia_isi_isi_call_hold_active_construct (NOKIA_ISI_TYPE_ISI_CALL_HOLD_ACTIVE);
}


static void nokia_isi_isi_call_hold_active_class_init (NokiaIsiIsiCallHoldActiveClass * klass) {
	nokia_isi_isi_call_hold_active_parent_class = g_type_class_peek_parent (klass);
	FSO_GSM_CALL_HOLD_ACTIVE_CLASS (klass)->run = nokia_isi_isi_call_hold_active_real_run;
	FSO_GSM_CALL_HOLD_ACTIVE_CLASS (klass)->run_finish = nokia_isi_isi_call_hold_active_real_run_finish;
}


static void nokia_isi_isi_call_hold_active_instance_init (NokiaIsiIsiCallHoldActive * self) {
}


GType nokia_isi_isi_call_hold_active_get_type (void) {
	return nokia_isi_isi_call_hold_active_type_id;
}


GType nokia_isi_isi_call_hold_active_register_type (GTypeModule * module) {
	static const GTypeInfo g_define_type_info = { sizeof (NokiaIsiIsiCallHoldActiveClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) nokia_isi_isi_call_hold_active_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (NokiaIsiIsiCallHoldActive), 0, (GInstanceInitFunc) nokia_isi_isi_call_hold_active_instance_init, NULL };
	nokia_isi_isi_call_hold_active_type_id = g_type_module_register_type (module, FSO_GSM_TYPE_CALL_HOLD_ACTIVE, "NokiaIsiIsiCallHoldActive", &g_define_type_info, 0);
	return nokia_isi_isi_call_hold_active_type_id;
}


static void nokia_isi_isi_call_initiate_real_run_data_free (gpointer _data) {
	NokiaIsiIsiCallInitiateRunData* _data_;
	_data_ = _data;
	_g_free0 (_data_->number);
	_g_free0 (_data_->ctype);
	_g_object_unref0 (_data_->self);
	g_slice_free (NokiaIsiIsiCallInitiateRunData, _data_);
}


static void nokia_isi_isi_call_initiate_real_run (FsoGsmCallInitiate* base, const gchar* number, const gchar* ctype, GAsyncReadyCallback _callback_, gpointer _user_data_) {
	NokiaIsiIsiCallInitiate * self;
	NokiaIsiIsiCallInitiateRunData* _data_;
	NokiaIsiIsiCallInitiate* _tmp0_;
	const gchar* _tmp1_;
	gchar* _tmp2_;
	const gchar* _tmp3_;
	gchar* _tmp4_;
	self = (NokiaIsiIsiCallInitiate*) base;
	_data_ = g_slice_new0 (NokiaIsiIsiCallInitiateRunData);
	_data_->_async_result = g_simple_async_result_new (G_OBJECT (self), _callback_, _user_data_, nokia_isi_isi_call_initiate_real_run);
	g_simple_async_result_set_op_res_gpointer (_data_->_async_result, _data_, nokia_isi_isi_call_initiate_real_run_data_free);
	_tmp0_ = _g_object_ref0 (self);
	_data_->self = _tmp0_;
	_tmp1_ = number;
	_tmp2_ = g_strdup (_tmp1_);
	_data_->number = _tmp2_;
	_tmp3_ = ctype;
	_tmp4_ = g_strdup (_tmp3_);
	_data_->ctype = _tmp4_;
	nokia_isi_isi_call_initiate_real_run_co (_data_);
}


static void nokia_isi_isi_call_initiate_real_run_finish (FsoGsmCallInitiate* base, GAsyncResult* _res_, GError** error) {
	NokiaIsiIsiCallInitiateRunData* _data_;
	if (g_simple_async_result_propagate_error (G_SIMPLE_ASYNC_RESULT (_res_), error)) {
		return;
	}
	_data_ = g_simple_async_result_get_op_res_gpointer (G_SIMPLE_ASYNC_RESULT (_res_));
}


static void nokia_isi_isi_call_initiate_run_ready (GObject* source_object, GAsyncResult* _res_, gpointer _user_data_) {
	NokiaIsiIsiCallInitiateRunData* _data_;
	_data_ = _user_data_;
	_data_->_source_object_ = source_object;
	_data_->_res_ = _res_;
	nokia_isi_isi_call_initiate_real_run_co (_data_);
}


static gboolean nokia_isi_isi_call_initiate_real_run_co (NokiaIsiIsiCallInitiateRunData* _data_) {
	switch (_data_->_state_) {
		case 0:
		goto _state_0;
		case 1:
		goto _state_1;
		default:
		g_assert_not_reached ();
	}
	_state_0:
	_data_->_tmp0_ = _data_->number;
	fso_gsm_validatePhoneNumber (_data_->_tmp0_, &_data_->_inner_error_);
	if (_data_->_inner_error_ != NULL) {
		if ((_data_->_inner_error_->domain == FREE_SMARTPHONE_GSM_ERROR) || (_data_->_inner_error_->domain == FREE_SMARTPHONE_ERROR)) {
			g_simple_async_result_set_from_error (_data_->_async_result, _data_->_inner_error_);
			g_error_free (_data_->_inner_error_);
			if (_data_->_state_ == 0) {
				g_simple_async_result_complete_in_idle (_data_->_async_result);
			} else {
				g_simple_async_result_complete (_data_->_async_result);
			}
			g_object_unref (_data_->_async_result);
			return FALSE;
		} else {
			g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _data_->_inner_error_->message, g_quark_to_string (_data_->_inner_error_->domain), _data_->_inner_error_->code);
			g_clear_error (&_data_->_inner_error_);
			return FALSE;
		}
	}
	_data_->_tmp1_ = fso_gsm_theModem;
	_data_->_tmp2_ = fso_gsm_modem_get_callhandler (_data_->_tmp1_);
	_data_->_tmp3_ = _data_->_tmp2_;
	_data_->_tmp4_ = _data_->number;
	_data_->_tmp5_ = _data_->ctype;
	_data_->_state_ = 1;
	fso_gsm_call_handler_initiate (_data_->_tmp3_, _data_->_tmp4_, _data_->_tmp5_, nokia_isi_isi_call_initiate_run_ready, _data_);
	return FALSE;
	_state_1:
	_data_->_tmp6_ = 0;
	_data_->_tmp6_ = fso_gsm_call_handler_initiate_finish (_data_->_tmp3_, _data_->_res_, &_data_->_inner_error_);
	_data_->_tmp7_ = _data_->_tmp6_;
	if (_data_->_inner_error_ != NULL) {
		if ((_data_->_inner_error_->domain == FREE_SMARTPHONE_GSM_ERROR) || (_data_->_inner_error_->domain == FREE_SMARTPHONE_ERROR)) {
			g_simple_async_result_set_from_error (_data_->_async_result, _data_->_inner_error_);
			g_error_free (_data_->_inner_error_);
			if (_data_->_state_ == 0) {
				g_simple_async_result_complete_in_idle (_data_->_async_result);
			} else {
				g_simple_async_result_complete (_data_->_async_result);
			}
			g_object_unref (_data_->_async_result);
			return FALSE;
		} else {
			g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _data_->_inner_error_->message, g_quark_to_string (_data_->_inner_error_->domain), _data_->_inner_error_->code);
			g_clear_error (&_data_->_inner_error_);
			return FALSE;
		}
	}
	fso_gsm_call_initiate_set_id ((FsoGsmCallInitiate*) _data_->self, _data_->_tmp7_);
	if (_data_->_state_ == 0) {
		g_simple_async_result_complete_in_idle (_data_->_async_result);
	} else {
		g_simple_async_result_complete (_data_->_async_result);
	}
	g_object_unref (_data_->_async_result);
	return FALSE;
}


NokiaIsiIsiCallInitiate* nokia_isi_isi_call_initiate_construct (GType object_type) {
	NokiaIsiIsiCallInitiate * self = NULL;
	self = (NokiaIsiIsiCallInitiate*) fso_gsm_call_initiate_construct (object_type);
	return self;
}


NokiaIsiIsiCallInitiate* nokia_isi_isi_call_initiate_new (void) {
	return nokia_isi_isi_call_initiate_construct (NOKIA_ISI_TYPE_ISI_CALL_INITIATE);
}


static void nokia_isi_isi_call_initiate_class_init (NokiaIsiIsiCallInitiateClass * klass) {
	nokia_isi_isi_call_initiate_parent_class = g_type_class_peek_parent (klass);
	FSO_GSM_CALL_INITIATE_CLASS (klass)->run = nokia_isi_isi_call_initiate_real_run;
	FSO_GSM_CALL_INITIATE_CLASS (klass)->run_finish = nokia_isi_isi_call_initiate_real_run_finish;
}


static void nokia_isi_isi_call_initiate_instance_init (NokiaIsiIsiCallInitiate * self) {
}


GType nokia_isi_isi_call_initiate_get_type (void) {
	return nokia_isi_isi_call_initiate_type_id;
}


GType nokia_isi_isi_call_initiate_register_type (GTypeModule * module) {
	static const GTypeInfo g_define_type_info = { sizeof (NokiaIsiIsiCallInitiateClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) nokia_isi_isi_call_initiate_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (NokiaIsiIsiCallInitiate), 0, (GInstanceInitFunc) nokia_isi_isi_call_initiate_instance_init, NULL };
	nokia_isi_isi_call_initiate_type_id = g_type_module_register_type (module, FSO_GSM_TYPE_CALL_INITIATE, "NokiaIsiIsiCallInitiate", &g_define_type_info, 0);
	return nokia_isi_isi_call_initiate_type_id;
}


static void nokia_isi_isi_call_release_real_run_data_free (gpointer _data) {
	NokiaIsiIsiCallReleaseRunData* _data_;
	_data_ = _data;
	_g_object_unref0 (_data_->self);
	g_slice_free (NokiaIsiIsiCallReleaseRunData, _data_);
}


static void nokia_isi_isi_call_release_real_run (FsoGsmCallRelease* base, gint id, GAsyncReadyCallback _callback_, gpointer _user_data_) {
	NokiaIsiIsiCallRelease * self;
	NokiaIsiIsiCallReleaseRunData* _data_;
	NokiaIsiIsiCallRelease* _tmp0_;
	gint _tmp1_;
	self = (NokiaIsiIsiCallRelease*) base;
	_data_ = g_slice_new0 (NokiaIsiIsiCallReleaseRunData);
	_data_->_async_result = g_simple_async_result_new (G_OBJECT (self), _callback_, _user_data_, nokia_isi_isi_call_release_real_run);
	g_simple_async_result_set_op_res_gpointer (_data_->_async_result, _data_, nokia_isi_isi_call_release_real_run_data_free);
	_tmp0_ = _g_object_ref0 (self);
	_data_->self = _tmp0_;
	_tmp1_ = id;
	_data_->id = _tmp1_;
	nokia_isi_isi_call_release_real_run_co (_data_);
}


static void nokia_isi_isi_call_release_real_run_finish (FsoGsmCallRelease* base, GAsyncResult* _res_, GError** error) {
	NokiaIsiIsiCallReleaseRunData* _data_;
	if (g_simple_async_result_propagate_error (G_SIMPLE_ASYNC_RESULT (_res_), error)) {
		return;
	}
	_data_ = g_simple_async_result_get_op_res_gpointer (G_SIMPLE_ASYNC_RESULT (_res_));
}


static void nokia_isi_isi_call_release_run_ready (GObject* source_object, GAsyncResult* _res_, gpointer _user_data_) {
	NokiaIsiIsiCallReleaseRunData* _data_;
	_data_ = _user_data_;
	_data_->_source_object_ = source_object;
	_data_->_res_ = _res_;
	nokia_isi_isi_call_release_real_run_co (_data_);
}


static gboolean nokia_isi_isi_call_release_real_run_co (NokiaIsiIsiCallReleaseRunData* _data_) {
	switch (_data_->_state_) {
		case 0:
		goto _state_0;
		case 1:
		goto _state_1;
		default:
		g_assert_not_reached ();
	}
	_state_0:
	_data_->_tmp0_ = fso_gsm_theModem;
	_data_->_tmp1_ = fso_gsm_modem_get_callhandler (_data_->_tmp0_);
	_data_->_tmp2_ = _data_->_tmp1_;
	_data_->_tmp3_ = _data_->id;
	_data_->_state_ = 1;
	fso_gsm_call_handler_release (_data_->_tmp2_, _data_->_tmp3_, nokia_isi_isi_call_release_run_ready, _data_);
	return FALSE;
	_state_1:
	fso_gsm_call_handler_release_finish (_data_->_tmp2_, _data_->_res_, &_data_->_inner_error_);
	if (_data_->_inner_error_ != NULL) {
		if ((_data_->_inner_error_->domain == FREE_SMARTPHONE_GSM_ERROR) || (_data_->_inner_error_->domain == FREE_SMARTPHONE_ERROR)) {
			g_simple_async_result_set_from_error (_data_->_async_result, _data_->_inner_error_);
			g_error_free (_data_->_inner_error_);
			if (_data_->_state_ == 0) {
				g_simple_async_result_complete_in_idle (_data_->_async_result);
			} else {
				g_simple_async_result_complete (_data_->_async_result);
			}
			g_object_unref (_data_->_async_result);
			return FALSE;
		} else {
			g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _data_->_inner_error_->message, g_quark_to_string (_data_->_inner_error_->domain), _data_->_inner_error_->code);
			g_clear_error (&_data_->_inner_error_);
			return FALSE;
		}
	}
	if (_data_->_state_ == 0) {
		g_simple_async_result_complete_in_idle (_data_->_async_result);
	} else {
		g_simple_async_result_complete (_data_->_async_result);
	}
	g_object_unref (_data_->_async_result);
	return FALSE;
}


NokiaIsiIsiCallRelease* nokia_isi_isi_call_release_construct (GType object_type) {
	NokiaIsiIsiCallRelease * self = NULL;
	self = (NokiaIsiIsiCallRelease*) fso_gsm_call_release_construct (object_type);
	return self;
}


NokiaIsiIsiCallRelease* nokia_isi_isi_call_release_new (void) {
	return nokia_isi_isi_call_release_construct (NOKIA_ISI_TYPE_ISI_CALL_RELEASE);
}


static void nokia_isi_isi_call_release_class_init (NokiaIsiIsiCallReleaseClass * klass) {
	nokia_isi_isi_call_release_parent_class = g_type_class_peek_parent (klass);
	FSO_GSM_CALL_RELEASE_CLASS (klass)->run = nokia_isi_isi_call_release_real_run;
	FSO_GSM_CALL_RELEASE_CLASS (klass)->run_finish = nokia_isi_isi_call_release_real_run_finish;
}


static void nokia_isi_isi_call_release_instance_init (NokiaIsiIsiCallRelease * self) {
}


GType nokia_isi_isi_call_release_get_type (void) {
	return nokia_isi_isi_call_release_type_id;
}


GType nokia_isi_isi_call_release_register_type (GTypeModule * module) {
	static const GTypeInfo g_define_type_info = { sizeof (NokiaIsiIsiCallReleaseClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) nokia_isi_isi_call_release_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (NokiaIsiIsiCallRelease), 0, (GInstanceInitFunc) nokia_isi_isi_call_release_instance_init, NULL };
	nokia_isi_isi_call_release_type_id = g_type_module_register_type (module, FSO_GSM_TYPE_CALL_RELEASE, "NokiaIsiIsiCallRelease", &g_define_type_info, 0);
	return nokia_isi_isi_call_release_type_id;
}


static void nokia_isi_isi_call_release_all_real_run_data_free (gpointer _data) {
	NokiaIsiIsiCallReleaseAllRunData* _data_;
	_data_ = _data;
	_g_object_unref0 (_data_->self);
	g_slice_free (NokiaIsiIsiCallReleaseAllRunData, _data_);
}


static void nokia_isi_isi_call_release_all_real_run (FsoGsmCallReleaseAll* base, GAsyncReadyCallback _callback_, gpointer _user_data_) {
	NokiaIsiIsiCallReleaseAll * self;
	NokiaIsiIsiCallReleaseAllRunData* _data_;
	NokiaIsiIsiCallReleaseAll* _tmp0_;
	self = (NokiaIsiIsiCallReleaseAll*) base;
	_data_ = g_slice_new0 (NokiaIsiIsiCallReleaseAllRunData);
	_data_->_async_result = g_simple_async_result_new (G_OBJECT (self), _callback_, _user_data_, nokia_isi_isi_call_release_all_real_run);
	g_simple_async_result_set_op_res_gpointer (_data_->_async_result, _data_, nokia_isi_isi_call_release_all_real_run_data_free);
	_tmp0_ = _g_object_ref0 (self);
	_data_->self = _tmp0_;
	nokia_isi_isi_call_release_all_real_run_co (_data_);
}


static void nokia_isi_isi_call_release_all_real_run_finish (FsoGsmCallReleaseAll* base, GAsyncResult* _res_, GError** error) {
	NokiaIsiIsiCallReleaseAllRunData* _data_;
	if (g_simple_async_result_propagate_error (G_SIMPLE_ASYNC_RESULT (_res_), error)) {
		return;
	}
	_data_ = g_simple_async_result_get_op_res_gpointer (G_SIMPLE_ASYNC_RESULT (_res_));
}


static void nokia_isi_isi_call_release_all_run_ready (GObject* source_object, GAsyncResult* _res_, gpointer _user_data_) {
	NokiaIsiIsiCallReleaseAllRunData* _data_;
	_data_ = _user_data_;
	_data_->_source_object_ = source_object;
	_data_->_res_ = _res_;
	nokia_isi_isi_call_release_all_real_run_co (_data_);
}


static gboolean nokia_isi_isi_call_release_all_real_run_co (NokiaIsiIsiCallReleaseAllRunData* _data_) {
	switch (_data_->_state_) {
		case 0:
		goto _state_0;
		case 1:
		goto _state_1;
		default:
		g_assert_not_reached ();
	}
	_state_0:
	_data_->_tmp0_ = fso_gsm_theModem;
	_data_->_tmp1_ = fso_gsm_modem_get_callhandler (_data_->_tmp0_);
	_data_->_tmp2_ = _data_->_tmp1_;
	_data_->_state_ = 1;
	fso_gsm_call_handler_releaseAll (_data_->_tmp2_, nokia_isi_isi_call_release_all_run_ready, _data_);
	return FALSE;
	_state_1:
	fso_gsm_call_handler_releaseAll_finish (_data_->_tmp2_, _data_->_res_, &_data_->_inner_error_);
	if (_data_->_inner_error_ != NULL) {
		if ((_data_->_inner_error_->domain == FREE_SMARTPHONE_GSM_ERROR) || (_data_->_inner_error_->domain == FREE_SMARTPHONE_ERROR)) {
			g_simple_async_result_set_from_error (_data_->_async_result, _data_->_inner_error_);
			g_error_free (_data_->_inner_error_);
			if (_data_->_state_ == 0) {
				g_simple_async_result_complete_in_idle (_data_->_async_result);
			} else {
				g_simple_async_result_complete (_data_->_async_result);
			}
			g_object_unref (_data_->_async_result);
			return FALSE;
		} else {
			g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _data_->_inner_error_->message, g_quark_to_string (_data_->_inner_error_->domain), _data_->_inner_error_->code);
			g_clear_error (&_data_->_inner_error_);
			return FALSE;
		}
	}
	if (_data_->_state_ == 0) {
		g_simple_async_result_complete_in_idle (_data_->_async_result);
	} else {
		g_simple_async_result_complete (_data_->_async_result);
	}
	g_object_unref (_data_->_async_result);
	return FALSE;
}


NokiaIsiIsiCallReleaseAll* nokia_isi_isi_call_release_all_construct (GType object_type) {
	NokiaIsiIsiCallReleaseAll * self = NULL;
	self = (NokiaIsiIsiCallReleaseAll*) fso_gsm_call_release_all_construct (object_type);
	return self;
}


NokiaIsiIsiCallReleaseAll* nokia_isi_isi_call_release_all_new (void) {
	return nokia_isi_isi_call_release_all_construct (NOKIA_ISI_TYPE_ISI_CALL_RELEASE_ALL);
}


static void nokia_isi_isi_call_release_all_class_init (NokiaIsiIsiCallReleaseAllClass * klass) {
	nokia_isi_isi_call_release_all_parent_class = g_type_class_peek_parent (klass);
	FSO_GSM_CALL_RELEASE_ALL_CLASS (klass)->run = nokia_isi_isi_call_release_all_real_run;
	FSO_GSM_CALL_RELEASE_ALL_CLASS (klass)->run_finish = nokia_isi_isi_call_release_all_real_run_finish;
}


static void nokia_isi_isi_call_release_all_instance_init (NokiaIsiIsiCallReleaseAll * self) {
}


GType nokia_isi_isi_call_release_all_get_type (void) {
	return nokia_isi_isi_call_release_all_type_id;
}


GType nokia_isi_isi_call_release_all_register_type (GTypeModule * module) {
	static const GTypeInfo g_define_type_info = { sizeof (NokiaIsiIsiCallReleaseAllClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) nokia_isi_isi_call_release_all_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (NokiaIsiIsiCallReleaseAll), 0, (GInstanceInitFunc) nokia_isi_isi_call_release_all_instance_init, NULL };
	nokia_isi_isi_call_release_all_type_id = g_type_module_register_type (module, FSO_GSM_TYPE_CALL_RELEASE_ALL, "NokiaIsiIsiCallReleaseAll", &g_define_type_info, 0);
	return nokia_isi_isi_call_release_all_type_id;
}


static void nokia_isi_isi_call_list_calls_real_run_data_free (gpointer _data) {
	NokiaIsiIsiCallListCallsRunData* _data_;
	_data_ = _data;
	_g_object_unref0 (_data_->self);
	g_slice_free (NokiaIsiIsiCallListCallsRunData, _data_);
}


static void nokia_isi_isi_call_list_calls_real_run (FsoGsmCallListCalls* base, GAsyncReadyCallback _callback_, gpointer _user_data_) {
	NokiaIsiIsiCallListCalls * self;
	NokiaIsiIsiCallListCallsRunData* _data_;
	NokiaIsiIsiCallListCalls* _tmp0_;
	self = (NokiaIsiIsiCallListCalls*) base;
	_data_ = g_slice_new0 (NokiaIsiIsiCallListCallsRunData);
	_data_->_async_result = g_simple_async_result_new (G_OBJECT (self), _callback_, _user_data_, nokia_isi_isi_call_list_calls_real_run);
	g_simple_async_result_set_op_res_gpointer (_data_->_async_result, _data_, nokia_isi_isi_call_list_calls_real_run_data_free);
	_tmp0_ = _g_object_ref0 (self);
	_data_->self = _tmp0_;
	nokia_isi_isi_call_list_calls_real_run_co (_data_);
}


static void nokia_isi_isi_call_list_calls_real_run_finish (FsoGsmCallListCalls* base, GAsyncResult* _res_, GError** error) {
	NokiaIsiIsiCallListCallsRunData* _data_;
	if (g_simple_async_result_propagate_error (G_SIMPLE_ASYNC_RESULT (_res_), error)) {
		return;
	}
	_data_ = g_simple_async_result_get_op_res_gpointer (G_SIMPLE_ASYNC_RESULT (_res_));
}


static void nokia_isi_isi_call_list_calls_run_ready (GObject* source_object, GAsyncResult* _res_, gpointer _user_data_) {
	NokiaIsiIsiCallListCallsRunData* _data_;
	_data_ = _user_data_;
	_data_->_source_object_ = source_object;
	_data_->_res_ = _res_;
	nokia_isi_isi_call_list_calls_real_run_co (_data_);
}


static void _vala_FreeSmartphoneGSMCallDetail_array_free (FreeSmartphoneGSMCallDetail* array, gint array_length) {
	if (array != NULL) {
		int i;
		for (i = 0; i < array_length; i = i + 1) {
			free_smartphone_gsm_call_detail_destroy (&array[i]);
		}
	}
	g_free (array);
}


static gboolean nokia_isi_isi_call_list_calls_real_run_co (NokiaIsiIsiCallListCallsRunData* _data_) {
	switch (_data_->_state_) {
		case 0:
		goto _state_0;
		case 1:
		goto _state_1;
		default:
		g_assert_not_reached ();
	}
	_state_0:
	_data_->_tmp0_ = fso_gsm_theModem;
	_data_->_tmp1_ = fso_gsm_modem_get_callhandler (_data_->_tmp0_);
	_data_->_tmp2_ = _data_->_tmp1_;
	_data_->_tmp3_ = _g_object_ref0 (FSO_GSM_IS_ISI_CALL_HANDLER (_data_->_tmp2_) ? ((FsoGsmIsiCallHandler*) _data_->_tmp2_) : NULL);
	_data_->callhandler = _data_->_tmp3_;
	_data_->_tmp4_ = 0;
	_data_->_state_ = 1;
	fso_gsm_isi_call_handler_listCalls (_data_->callhandler, nokia_isi_isi_call_list_calls_run_ready, _data_);
	return FALSE;
	_state_1:
	_data_->_tmp5_ = NULL;
	_data_->_tmp5_ = fso_gsm_isi_call_handler_listCalls_finish (_data_->callhandler, _data_->_res_, &_data_->_tmp4_, &_data_->_inner_error_);
	_data_->_tmp6_ = _data_->_tmp5_;
	_data_->_tmp6__length1 = _data_->_tmp4_;
	_data_->__tmp6__size_ = _data_->_tmp6__length1;
	if (_data_->_inner_error_ != NULL) {
		if ((_data_->_inner_error_->domain == FREE_SMARTPHONE_GSM_ERROR) || (_data_->_inner_error_->domain == FREE_SMARTPHONE_ERROR)) {
			g_simple_async_result_set_from_error (_data_->_async_result, _data_->_inner_error_);
			g_error_free (_data_->_inner_error_);
			_g_object_unref0 (_data_->callhandler);
			if (_data_->_state_ == 0) {
				g_simple_async_result_complete_in_idle (_data_->_async_result);
			} else {
				g_simple_async_result_complete (_data_->_async_result);
			}
			g_object_unref (_data_->_async_result);
			return FALSE;
		} else {
			_g_object_unref0 (_data_->callhandler);
			g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _data_->_inner_error_->message, g_quark_to_string (_data_->_inner_error_->domain), _data_->_inner_error_->code);
			g_clear_error (&_data_->_inner_error_);
			return FALSE;
		}
	}
	_data_->_tmp7_ = _data_->_tmp6_;
	_data_->_tmp7__length1 = _data_->_tmp6__length1;
	fso_gsm_call_list_calls_set_calls ((FsoGsmCallListCalls*) _data_->self, _data_->_tmp7_, _data_->_tmp6__length1);
	_data_->_tmp7_ = (_vala_FreeSmartphoneGSMCallDetail_array_free (_data_->_tmp7_, _data_->_tmp7__length1), NULL);
	_g_object_unref0 (_data_->callhandler);
	if (_data_->_state_ == 0) {
		g_simple_async_result_complete_in_idle (_data_->_async_result);
	} else {
		g_simple_async_result_complete (_data_->_async_result);
	}
	g_object_unref (_data_->_async_result);
	return FALSE;
}


NokiaIsiIsiCallListCalls* nokia_isi_isi_call_list_calls_construct (GType object_type) {
	NokiaIsiIsiCallListCalls * self = NULL;
	self = (NokiaIsiIsiCallListCalls*) fso_gsm_call_list_calls_construct (object_type);
	return self;
}


NokiaIsiIsiCallListCalls* nokia_isi_isi_call_list_calls_new (void) {
	return nokia_isi_isi_call_list_calls_construct (NOKIA_ISI_TYPE_ISI_CALL_LIST_CALLS);
}


static void nokia_isi_isi_call_list_calls_class_init (NokiaIsiIsiCallListCallsClass * klass) {
	nokia_isi_isi_call_list_calls_parent_class = g_type_class_peek_parent (klass);
	FSO_GSM_CALL_LIST_CALLS_CLASS (klass)->run = nokia_isi_isi_call_list_calls_real_run;
	FSO_GSM_CALL_LIST_CALLS_CLASS (klass)->run_finish = nokia_isi_isi_call_list_calls_real_run_finish;
}


static void nokia_isi_isi_call_list_calls_instance_init (NokiaIsiIsiCallListCalls * self) {
}


GType nokia_isi_isi_call_list_calls_get_type (void) {
	return nokia_isi_isi_call_list_calls_type_id;
}


GType nokia_isi_isi_call_list_calls_register_type (GTypeModule * module) {
	static const GTypeInfo g_define_type_info = { sizeof (NokiaIsiIsiCallListCallsClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) nokia_isi_isi_call_list_calls_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (NokiaIsiIsiCallListCalls), 0, (GInstanceInitFunc) nokia_isi_isi_call_list_calls_instance_init, NULL };
	nokia_isi_isi_call_list_calls_type_id = g_type_module_register_type (module, FSO_GSM_TYPE_CALL_LIST_CALLS, "NokiaIsiIsiCallListCalls", &g_define_type_info, 0);
	return nokia_isi_isi_call_list_calls_type_id;
}


static void nokia_isi_isi_call_send_dtmf_real_run_data_free (gpointer _data) {
	NokiaIsiIsiCallSendDtmfRunData* _data_;
	_data_ = _data;
	_g_free0 (_data_->tones);
	_g_object_unref0 (_data_->self);
	g_slice_free (NokiaIsiIsiCallSendDtmfRunData, _data_);
}


static void nokia_isi_isi_call_send_dtmf_real_run (FsoGsmCallSendDtmf* base, const gchar* tones, GAsyncReadyCallback _callback_, gpointer _user_data_) {
	NokiaIsiIsiCallSendDtmf * self;
	NokiaIsiIsiCallSendDtmfRunData* _data_;
	NokiaIsiIsiCallSendDtmf* _tmp0_;
	const gchar* _tmp1_;
	gchar* _tmp2_;
	self = (NokiaIsiIsiCallSendDtmf*) base;
	_data_ = g_slice_new0 (NokiaIsiIsiCallSendDtmfRunData);
	_data_->_async_result = g_simple_async_result_new (G_OBJECT (self), _callback_, _user_data_, nokia_isi_isi_call_send_dtmf_real_run);
	g_simple_async_result_set_op_res_gpointer (_data_->_async_result, _data_, nokia_isi_isi_call_send_dtmf_real_run_data_free);
	_tmp0_ = _g_object_ref0 (self);
	_data_->self = _tmp0_;
	_tmp1_ = tones;
	_tmp2_ = g_strdup (_tmp1_);
	_data_->tones = _tmp2_;
	nokia_isi_isi_call_send_dtmf_real_run_co (_data_);
}


static void nokia_isi_isi_call_send_dtmf_real_run_finish (FsoGsmCallSendDtmf* base, GAsyncResult* _res_, GError** error) {
	NokiaIsiIsiCallSendDtmfRunData* _data_;
	if (g_simple_async_result_propagate_error (G_SIMPLE_ASYNC_RESULT (_res_), error)) {
		return;
	}
	_data_ = g_simple_async_result_get_op_res_gpointer (G_SIMPLE_ASYNC_RESULT (_res_));
}


static Block4Data* block4_data_ref (Block4Data* _data4_) {
	g_atomic_int_inc (&_data4_->_ref_count_);
	return _data4_;
}


static void block4_data_unref (Block4Data* _data4_) {
	if (g_atomic_int_dec_and_test (&_data4_->_ref_count_)) {
		_g_object_unref0 (_data4_->self);
		g_slice_free (Block4Data, _data4_);
	}
}


static void __lambda22_ (Block4Data* _data4_, GIsiCommErrorCode _error_) {
	NokiaIsiIsiCallSendDtmf * self;
	GIsiCommErrorCode _tmp0_;
	GError * _inner_error_ = NULL;
	self = _data4_->self;
	_tmp0_ = _error_;
	if (_tmp0_ == GISI_COMM_ERROR_CODE_OK) {
		nokia_isi_isi_call_send_dtmf_real_run_co (_data4_->_async_data_);
	} else {
		GError* _tmp1_;
		_tmp1_ = g_error_new_literal (FREE_SMARTPHONE_GSM_ERROR, FREE_SMARTPHONE_GSM_ERROR_DEVICE_FAILED, "Unknown ISI Error");
		_inner_error_ = _tmp1_;
		g_critical ("file %s: line %d: uncaught error: %s (%s, %d)", __FILE__, __LINE__, _inner_error_->message, g_quark_to_string (_inner_error_->domain), _inner_error_->code);
		g_clear_error (&_inner_error_);
		return;
	}
}


static void ___lambda22__gisi_comm_void_result_func (GIsiCommErrorCode _error_, gpointer self) {
	__lambda22_ (self, _error_);
}


static gboolean nokia_isi_isi_call_send_dtmf_real_run_co (NokiaIsiIsiCallSendDtmfRunData* _data_) {
	switch (_data_->_state_) {
		case 0:
		goto _state_0;
		case 1:
		goto _state_1;
		default:
		g_assert_not_reached ();
	}
	_state_0:
	_data_->_data4_ = g_slice_new0 (Block4Data);
	_data_->_data4_->_ref_count_ = 1;
	_data_->_data4_->self = g_object_ref (_data_->self);
	_data_->_data4_->_async_data_ = _data_;
	_data_->_tmp0_ = nokia_isi_isimodem;
	_data_->_tmp1_ = _data_->_tmp0_->call;
	_data_->_tmp2_ = _data_->tones;
	gisi_comm_call_sendTonesOnVoiceCall (_data_->_tmp1_, (guint8) 1, _data_->_tmp2_, ___lambda22__gisi_comm_void_result_func, _data_->_data4_);
	_data_->_state_ = 1;
	return FALSE;
	_state_1:
	;
	block4_data_unref (_data_->_data4_);
	_data_->_data4_ = NULL;
	if (_data_->_state_ == 0) {
		g_simple_async_result_complete_in_idle (_data_->_async_result);
	} else {
		g_simple_async_result_complete (_data_->_async_result);
	}
	g_object_unref (_data_->_async_result);
	return FALSE;
}


NokiaIsiIsiCallSendDtmf* nokia_isi_isi_call_send_dtmf_construct (GType object_type) {
	NokiaIsiIsiCallSendDtmf * self = NULL;
	self = (NokiaIsiIsiCallSendDtmf*) fso_gsm_call_send_dtmf_construct (object_type);
	return self;
}


NokiaIsiIsiCallSendDtmf* nokia_isi_isi_call_send_dtmf_new (void) {
	return nokia_isi_isi_call_send_dtmf_construct (NOKIA_ISI_TYPE_ISI_CALL_SEND_DTMF);
}


static void nokia_isi_isi_call_send_dtmf_class_init (NokiaIsiIsiCallSendDtmfClass * klass) {
	nokia_isi_isi_call_send_dtmf_parent_class = g_type_class_peek_parent (klass);
	FSO_GSM_CALL_SEND_DTMF_CLASS (klass)->run = nokia_isi_isi_call_send_dtmf_real_run;
	FSO_GSM_CALL_SEND_DTMF_CLASS (klass)->run_finish = nokia_isi_isi_call_send_dtmf_real_run_finish;
}


static void nokia_isi_isi_call_send_dtmf_instance_init (NokiaIsiIsiCallSendDtmf * self) {
}


GType nokia_isi_isi_call_send_dtmf_get_type (void) {
	return nokia_isi_isi_call_send_dtmf_type_id;
}


GType nokia_isi_isi_call_send_dtmf_register_type (GTypeModule * module) {
	static const GTypeInfo g_define_type_info = { sizeof (NokiaIsiIsiCallSendDtmfClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) nokia_isi_isi_call_send_dtmf_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (NokiaIsiIsiCallSendDtmf), 0, (GInstanceInitFunc) nokia_isi_isi_call_send_dtmf_instance_init, NULL };
	nokia_isi_isi_call_send_dtmf_type_id = g_type_module_register_type (module, FSO_GSM_TYPE_CALL_SEND_DTMF, "NokiaIsiIsiCallSendDtmf", &g_define_type_info, 0);
	return nokia_isi_isi_call_send_dtmf_type_id;
}



