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

/*
 * Copyright (C) 2009-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 <gio/gio.h>
#include <freesmartphone.h>
#include <fsobasics.h>
#include <stdlib.h>
#include <string.h>
#include <fsotransport.h>
#include <gee.h>
#include <smsutil.h>
#include <conversions.h>


#define FSO_GSM_TYPE_MEDIATOR (fso_gsm_mediator_get_type ())
#define FSO_GSM_MEDIATOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FSO_GSM_TYPE_MEDIATOR, FsoGsmMediator))
#define FSO_GSM_IS_MEDIATOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FSO_GSM_TYPE_MEDIATOR))
#define FSO_GSM_MEDIATOR_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), FSO_GSM_TYPE_MEDIATOR, FsoGsmMediatorIface))

typedef struct _FsoGsmMediator FsoGsmMediator;
typedef struct _FsoGsmMediatorIface FsoGsmMediatorIface;

#define FSO_GSM_TYPE_ABSTRACT_MEDIATOR (fso_gsm_abstract_mediator_get_type ())
#define FSO_GSM_ABSTRACT_MEDIATOR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FSO_GSM_TYPE_ABSTRACT_MEDIATOR, FsoGsmAbstractMediator))
#define FSO_GSM_ABSTRACT_MEDIATOR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), FSO_GSM_TYPE_ABSTRACT_MEDIATOR, FsoGsmAbstractMediatorClass))
#define FSO_GSM_IS_ABSTRACT_MEDIATOR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FSO_GSM_TYPE_ABSTRACT_MEDIATOR))
#define FSO_GSM_IS_ABSTRACT_MEDIATOR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FSO_GSM_TYPE_ABSTRACT_MEDIATOR))
#define FSO_GSM_ABSTRACT_MEDIATOR_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), FSO_GSM_TYPE_ABSTRACT_MEDIATOR, FsoGsmAbstractMediatorClass))

typedef struct _FsoGsmAbstractMediator FsoGsmAbstractMediator;
typedef struct _FsoGsmAbstractMediatorClass FsoGsmAbstractMediatorClass;
typedef struct _FsoGsmAbstractMediatorPrivate FsoGsmAbstractMediatorPrivate;

#define FSO_GSM_TYPE_NETWORK_GET_SIGNAL_STRENGTH (fso_gsm_network_get_signal_strength_get_type ())
#define FSO_GSM_NETWORK_GET_SIGNAL_STRENGTH(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FSO_GSM_TYPE_NETWORK_GET_SIGNAL_STRENGTH, FsoGsmNetworkGetSignalStrength))
#define FSO_GSM_NETWORK_GET_SIGNAL_STRENGTH_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), FSO_GSM_TYPE_NETWORK_GET_SIGNAL_STRENGTH, FsoGsmNetworkGetSignalStrengthClass))
#define FSO_GSM_IS_NETWORK_GET_SIGNAL_STRENGTH(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FSO_GSM_TYPE_NETWORK_GET_SIGNAL_STRENGTH))
#define FSO_GSM_IS_NETWORK_GET_SIGNAL_STRENGTH_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FSO_GSM_TYPE_NETWORK_GET_SIGNAL_STRENGTH))
#define FSO_GSM_NETWORK_GET_SIGNAL_STRENGTH_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), FSO_GSM_TYPE_NETWORK_GET_SIGNAL_STRENGTH, FsoGsmNetworkGetSignalStrengthClass))

typedef struct _FsoGsmNetworkGetSignalStrength FsoGsmNetworkGetSignalStrength;
typedef struct _FsoGsmNetworkGetSignalStrengthClass FsoGsmNetworkGetSignalStrengthClass;
typedef struct _FsoGsmNetworkGetSignalStrengthPrivate FsoGsmNetworkGetSignalStrengthPrivate;

#define FSO_GSM_TYPE_AT_NETWORK_GET_SIGNAL_STRENGTH (fso_gsm_at_network_get_signal_strength_get_type ())
#define FSO_GSM_AT_NETWORK_GET_SIGNAL_STRENGTH(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FSO_GSM_TYPE_AT_NETWORK_GET_SIGNAL_STRENGTH, FsoGsmAtNetworkGetSignalStrength))
#define FSO_GSM_AT_NETWORK_GET_SIGNAL_STRENGTH_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), FSO_GSM_TYPE_AT_NETWORK_GET_SIGNAL_STRENGTH, FsoGsmAtNetworkGetSignalStrengthClass))
#define FSO_GSM_IS_AT_NETWORK_GET_SIGNAL_STRENGTH(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FSO_GSM_TYPE_AT_NETWORK_GET_SIGNAL_STRENGTH))
#define FSO_GSM_IS_AT_NETWORK_GET_SIGNAL_STRENGTH_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FSO_GSM_TYPE_AT_NETWORK_GET_SIGNAL_STRENGTH))
#define FSO_GSM_AT_NETWORK_GET_SIGNAL_STRENGTH_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), FSO_GSM_TYPE_AT_NETWORK_GET_SIGNAL_STRENGTH, FsoGsmAtNetworkGetSignalStrengthClass))

typedef struct _FsoGsmAtNetworkGetSignalStrength FsoGsmAtNetworkGetSignalStrength;
typedef struct _FsoGsmAtNetworkGetSignalStrengthClass FsoGsmAtNetworkGetSignalStrengthClass;
typedef struct _FsoGsmAtNetworkGetSignalStrengthPrivate FsoGsmAtNetworkGetSignalStrengthPrivate;
#define _g_object_unref0(var) ((var == NULL) ? NULL : (var = (g_object_unref (var), NULL)))

#define FSO_GSM_TYPE_MODEM (fso_gsm_modem_get_type ())
#define FSO_GSM_MODEM(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FSO_GSM_TYPE_MODEM, FsoGsmModem))
#define FSO_GSM_IS_MODEM(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FSO_GSM_TYPE_MODEM))
#define FSO_GSM_MODEM_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), FSO_GSM_TYPE_MODEM, FsoGsmModemIface))

typedef struct _FsoGsmModem FsoGsmModem;
typedef struct _FsoGsmModemIface FsoGsmModemIface;

#define FSO_GSM_TYPE_CHANNEL (fso_gsm_channel_get_type ())
#define FSO_GSM_CHANNEL(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FSO_GSM_TYPE_CHANNEL, FsoGsmChannel))
#define FSO_GSM_IS_CHANNEL(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FSO_GSM_TYPE_CHANNEL))
#define FSO_GSM_CHANNEL_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), FSO_GSM_TYPE_CHANNEL, FsoGsmChannelIface))

typedef struct _FsoGsmChannel FsoGsmChannel;
typedef struct _FsoGsmChannelIface FsoGsmChannelIface;

#define FSO_GSM_MODEM_TYPE_STATUS (fso_gsm_modem_status_get_type ())

#define FSO_GSM_MODEM_TYPE_NETWORK_STATUS (fso_gsm_modem_network_status_get_type ())

#define FSO_GSM_TYPE_AT_COMMAND_SEQUENCE (fso_gsm_at_command_sequence_get_type ())
#define FSO_GSM_AT_COMMAND_SEQUENCE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FSO_GSM_TYPE_AT_COMMAND_SEQUENCE, FsoGsmAtCommandSequence))
#define FSO_GSM_AT_COMMAND_SEQUENCE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), FSO_GSM_TYPE_AT_COMMAND_SEQUENCE, FsoGsmAtCommandSequenceClass))
#define FSO_GSM_IS_AT_COMMAND_SEQUENCE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FSO_GSM_TYPE_AT_COMMAND_SEQUENCE))
#define FSO_GSM_IS_AT_COMMAND_SEQUENCE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FSO_GSM_TYPE_AT_COMMAND_SEQUENCE))
#define FSO_GSM_AT_COMMAND_SEQUENCE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), FSO_GSM_TYPE_AT_COMMAND_SEQUENCE, FsoGsmAtCommandSequenceClass))

typedef struct _FsoGsmAtCommandSequence FsoGsmAtCommandSequence;
typedef struct _FsoGsmAtCommandSequenceClass FsoGsmAtCommandSequenceClass;

#define FSO_GSM_TYPE_AT_COMMAND_QUEUE_COMMAND (fso_gsm_at_command_queue_command_get_type ())
#define FSO_GSM_AT_COMMAND_QUEUE_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FSO_GSM_TYPE_AT_COMMAND_QUEUE_COMMAND, FsoGsmAtCommandQueueCommand))
#define FSO_GSM_IS_AT_COMMAND_QUEUE_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FSO_GSM_TYPE_AT_COMMAND_QUEUE_COMMAND))
#define FSO_GSM_AT_COMMAND_QUEUE_COMMAND_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), FSO_GSM_TYPE_AT_COMMAND_QUEUE_COMMAND, FsoGsmAtCommandQueueCommandIface))

typedef struct _FsoGsmAtCommandQueueCommand FsoGsmAtCommandQueueCommand;
typedef struct _FsoGsmAtCommandQueueCommandIface FsoGsmAtCommandQueueCommandIface;

#define FSO_GSM_TYPE_AT_COMMAND (fso_gsm_at_command_get_type ())
#define FSO_GSM_AT_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FSO_GSM_TYPE_AT_COMMAND, FsoGsmAtCommand))
#define FSO_GSM_IS_AT_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FSO_GSM_TYPE_AT_COMMAND))
#define FSO_GSM_AT_COMMAND_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), FSO_GSM_TYPE_AT_COMMAND, FsoGsmAtCommandIface))

typedef struct _FsoGsmAtCommand FsoGsmAtCommand;
typedef struct _FsoGsmAtCommandIface FsoGsmAtCommandIface;

#define FSO_GSM_CONSTANTS_TYPE_AT_RESPONSE (fso_gsm_constants_at_response_get_type ())

#define FSO_GSM_MODEM_TYPE_DATA (fso_gsm_modem_data_get_type ())
#define FSO_GSM_MODEM_DATA(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FSO_GSM_MODEM_TYPE_DATA, FsoGsmModemData))
#define FSO_GSM_MODEM_DATA_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), FSO_GSM_MODEM_TYPE_DATA, FsoGsmModemDataClass))
#define FSO_GSM_MODEM_IS_DATA(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FSO_GSM_MODEM_TYPE_DATA))
#define FSO_GSM_MODEM_IS_DATA_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FSO_GSM_MODEM_TYPE_DATA))
#define FSO_GSM_MODEM_DATA_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), FSO_GSM_MODEM_TYPE_DATA, FsoGsmModemDataClass))

typedef struct _FsoGsmModemData FsoGsmModemData;
typedef struct _FsoGsmModemDataClass FsoGsmModemDataClass;

#define FSO_GSM_TYPE_CALL_HANDLER (fso_gsm_call_handler_get_type ())
#define FSO_GSM_CALL_HANDLER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FSO_GSM_TYPE_CALL_HANDLER, FsoGsmCallHandler))
#define FSO_GSM_IS_CALL_HANDLER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FSO_GSM_TYPE_CALL_HANDLER))
#define FSO_GSM_CALL_HANDLER_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), FSO_GSM_TYPE_CALL_HANDLER, FsoGsmCallHandlerIface))

typedef struct _FsoGsmCallHandler FsoGsmCallHandler;
typedef struct _FsoGsmCallHandlerIface FsoGsmCallHandlerIface;

#define FSO_GSM_TYPE_CALL_INFO (fso_gsm_call_info_get_type ())
#define FSO_GSM_CALL_INFO(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FSO_GSM_TYPE_CALL_INFO, FsoGsmCallInfo))
#define FSO_GSM_CALL_INFO_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), FSO_GSM_TYPE_CALL_INFO, FsoGsmCallInfoClass))
#define FSO_GSM_IS_CALL_INFO(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FSO_GSM_TYPE_CALL_INFO))
#define FSO_GSM_IS_CALL_INFO_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FSO_GSM_TYPE_CALL_INFO))
#define FSO_GSM_CALL_INFO_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), FSO_GSM_TYPE_CALL_INFO, FsoGsmCallInfoClass))

typedef struct _FsoGsmCallInfo FsoGsmCallInfo;
typedef struct _FsoGsmCallInfoClass FsoGsmCallInfoClass;

#define FSO_GSM_TYPE_SMS_HANDLER (fso_gsm_sms_handler_get_type ())
#define FSO_GSM_SMS_HANDLER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FSO_GSM_TYPE_SMS_HANDLER, FsoGsmSmsHandler))
#define FSO_GSM_IS_SMS_HANDLER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FSO_GSM_TYPE_SMS_HANDLER))
#define FSO_GSM_SMS_HANDLER_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), FSO_GSM_TYPE_SMS_HANDLER, FsoGsmSmsHandlerIface))

typedef struct _FsoGsmSmsHandler FsoGsmSmsHandler;
typedef struct _FsoGsmSmsHandlerIface FsoGsmSmsHandlerIface;

#define TYPE_WRAP_HEX_PDU (wrap_hex_pdu_get_type ())
#define WRAP_HEX_PDU(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), TYPE_WRAP_HEX_PDU, WrapHexPdu))
#define WRAP_HEX_PDU_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), TYPE_WRAP_HEX_PDU, WrapHexPduClass))
#define IS_WRAP_HEX_PDU(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), TYPE_WRAP_HEX_PDU))
#define IS_WRAP_HEX_PDU_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), TYPE_WRAP_HEX_PDU))
#define WRAP_HEX_PDU_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), TYPE_WRAP_HEX_PDU, WrapHexPduClass))

typedef struct _WrapHexPdu WrapHexPdu;
typedef struct _WrapHexPduClass WrapHexPduClass;

#define FSO_GSM_TYPE_ISMS_STORAGE (fso_gsm_isms_storage_get_type ())
#define FSO_GSM_ISMS_STORAGE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FSO_GSM_TYPE_ISMS_STORAGE, FsoGsmISmsStorage))
#define FSO_GSM_IS_ISMS_STORAGE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FSO_GSM_TYPE_ISMS_STORAGE))
#define FSO_GSM_ISMS_STORAGE_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), FSO_GSM_TYPE_ISMS_STORAGE, FsoGsmISmsStorageIface))

typedef struct _FsoGsmISmsStorage FsoGsmISmsStorage;
typedef struct _FsoGsmISmsStorageIface FsoGsmISmsStorageIface;

#define FSO_GSM_TYPE_PHONEBOOK_HANDLER (fso_gsm_phonebook_handler_get_type ())
#define FSO_GSM_PHONEBOOK_HANDLER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FSO_GSM_TYPE_PHONEBOOK_HANDLER, FsoGsmPhonebookHandler))
#define FSO_GSM_IS_PHONEBOOK_HANDLER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FSO_GSM_TYPE_PHONEBOOK_HANDLER))
#define FSO_GSM_PHONEBOOK_HANDLER_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), FSO_GSM_TYPE_PHONEBOOK_HANDLER, FsoGsmPhonebookHandlerIface))

typedef struct _FsoGsmPhonebookHandler FsoGsmPhonebookHandler;
typedef struct _FsoGsmPhonebookHandlerIface FsoGsmPhonebookHandlerIface;

#define FSO_GSM_TYPE_PHONEBOOK_STORAGE (fso_gsm_phonebook_storage_get_type ())
#define FSO_GSM_PHONEBOOK_STORAGE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FSO_GSM_TYPE_PHONEBOOK_STORAGE, FsoGsmPhonebookStorage))
#define FSO_GSM_PHONEBOOK_STORAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), FSO_GSM_TYPE_PHONEBOOK_STORAGE, FsoGsmPhonebookStorageClass))
#define FSO_GSM_IS_PHONEBOOK_STORAGE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FSO_GSM_TYPE_PHONEBOOK_STORAGE))
#define FSO_GSM_IS_PHONEBOOK_STORAGE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FSO_GSM_TYPE_PHONEBOOK_STORAGE))
#define FSO_GSM_PHONEBOOK_STORAGE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), FSO_GSM_TYPE_PHONEBOOK_STORAGE, FsoGsmPhonebookStorageClass))

typedef struct _FsoGsmPhonebookStorage FsoGsmPhonebookStorage;
typedef struct _FsoGsmPhonebookStorageClass FsoGsmPhonebookStorageClass;

#define FSO_GSM_TYPE_WATCH_DOG (fso_gsm_watch_dog_get_type ())
#define FSO_GSM_WATCH_DOG(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FSO_GSM_TYPE_WATCH_DOG, FsoGsmWatchDog))
#define FSO_GSM_IS_WATCH_DOG(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FSO_GSM_TYPE_WATCH_DOG))
#define FSO_GSM_WATCH_DOG_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), FSO_GSM_TYPE_WATCH_DOG, FsoGsmWatchDogIface))

typedef struct _FsoGsmWatchDog FsoGsmWatchDog;
typedef struct _FsoGsmWatchDogIface FsoGsmWatchDogIface;

#define FSO_GSM_TYPE_IPDP_HANDLER (fso_gsm_ipdp_handler_get_type ())
#define FSO_GSM_IPDP_HANDLER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FSO_GSM_TYPE_IPDP_HANDLER, FsoGsmIPdpHandler))
#define FSO_GSM_IS_IPDP_HANDLER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FSO_GSM_TYPE_IPDP_HANDLER))
#define FSO_GSM_IPDP_HANDLER_GET_INTERFACE(obj) (G_TYPE_INSTANCE_GET_INTERFACE ((obj), FSO_GSM_TYPE_IPDP_HANDLER, FsoGsmIPdpHandlerIface))

typedef struct _FsoGsmIPdpHandler FsoGsmIPdpHandler;
typedef struct _FsoGsmIPdpHandlerIface FsoGsmIPdpHandlerIface;

#define FSO_GSM_TYPE_ROUTE_INFO (fso_gsm_route_info_get_type ())
#define FSO_GSM_ROUTE_INFO(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FSO_GSM_TYPE_ROUTE_INFO, FsoGsmRouteInfo))
#define FSO_GSM_ROUTE_INFO_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), FSO_GSM_TYPE_ROUTE_INFO, FsoGsmRouteInfoClass))
#define FSO_GSM_IS_ROUTE_INFO(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FSO_GSM_TYPE_ROUTE_INFO))
#define FSO_GSM_IS_ROUTE_INFO_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FSO_GSM_TYPE_ROUTE_INFO))
#define FSO_GSM_ROUTE_INFO_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), FSO_GSM_TYPE_ROUTE_INFO, FsoGsmRouteInfoClass))

typedef struct _FsoGsmRouteInfo FsoGsmRouteInfo;
typedef struct _FsoGsmRouteInfoClass FsoGsmRouteInfoClass;

#define FSO_GSM_TYPE_ABSTRACT_AT_COMMAND (fso_gsm_abstract_at_command_get_type ())
#define FSO_GSM_ABSTRACT_AT_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FSO_GSM_TYPE_ABSTRACT_AT_COMMAND, FsoGsmAbstractAtCommand))
#define FSO_GSM_ABSTRACT_AT_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), FSO_GSM_TYPE_ABSTRACT_AT_COMMAND, FsoGsmAbstractAtCommandClass))
#define FSO_GSM_IS_ABSTRACT_AT_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FSO_GSM_TYPE_ABSTRACT_AT_COMMAND))
#define FSO_GSM_IS_ABSTRACT_AT_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FSO_GSM_TYPE_ABSTRACT_AT_COMMAND))
#define FSO_GSM_ABSTRACT_AT_COMMAND_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), FSO_GSM_TYPE_ABSTRACT_AT_COMMAND, FsoGsmAbstractAtCommandClass))

typedef struct _FsoGsmAbstractAtCommand FsoGsmAbstractAtCommand;
typedef struct _FsoGsmAbstractAtCommandClass FsoGsmAbstractAtCommandClass;

#define FSO_GSM_TYPE_PLUS_CSQ (fso_gsm_plus_csq_get_type ())
#define FSO_GSM_PLUS_CSQ(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FSO_GSM_TYPE_PLUS_CSQ, FsoGsmPlusCSQ))
#define FSO_GSM_PLUS_CSQ_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), FSO_GSM_TYPE_PLUS_CSQ, FsoGsmPlusCSQClass))
#define FSO_GSM_IS_PLUS_CSQ(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FSO_GSM_TYPE_PLUS_CSQ))
#define FSO_GSM_IS_PLUS_CSQ_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FSO_GSM_TYPE_PLUS_CSQ))
#define FSO_GSM_PLUS_CSQ_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), FSO_GSM_TYPE_PLUS_CSQ, FsoGsmPlusCSQClass))

typedef struct _FsoGsmPlusCSQ FsoGsmPlusCSQ;
typedef struct _FsoGsmPlusCSQClass FsoGsmPlusCSQClass;
#define _g_free0(var) (var = (g_free (var), NULL))
typedef struct _FsoGsmAbstractAtCommandPrivate FsoGsmAbstractAtCommandPrivate;
typedef struct _FsoGsmPlusCSQPrivate FsoGsmPlusCSQPrivate;
typedef struct _FsoGsmAtNetworkGetSignalStrengthRunData FsoGsmAtNetworkGetSignalStrengthRunData;

#define FSO_GSM_TYPE_NETWORK_GET_STATUS (fso_gsm_network_get_status_get_type ())
#define FSO_GSM_NETWORK_GET_STATUS(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FSO_GSM_TYPE_NETWORK_GET_STATUS, FsoGsmNetworkGetStatus))
#define FSO_GSM_NETWORK_GET_STATUS_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), FSO_GSM_TYPE_NETWORK_GET_STATUS, FsoGsmNetworkGetStatusClass))
#define FSO_GSM_IS_NETWORK_GET_STATUS(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FSO_GSM_TYPE_NETWORK_GET_STATUS))
#define FSO_GSM_IS_NETWORK_GET_STATUS_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FSO_GSM_TYPE_NETWORK_GET_STATUS))
#define FSO_GSM_NETWORK_GET_STATUS_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), FSO_GSM_TYPE_NETWORK_GET_STATUS, FsoGsmNetworkGetStatusClass))

typedef struct _FsoGsmNetworkGetStatus FsoGsmNetworkGetStatus;
typedef struct _FsoGsmNetworkGetStatusClass FsoGsmNetworkGetStatusClass;
typedef struct _FsoGsmNetworkGetStatusPrivate FsoGsmNetworkGetStatusPrivate;

#define FSO_GSM_TYPE_AT_NETWORK_GET_STATUS (fso_gsm_at_network_get_status_get_type ())
#define FSO_GSM_AT_NETWORK_GET_STATUS(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FSO_GSM_TYPE_AT_NETWORK_GET_STATUS, FsoGsmAtNetworkGetStatus))
#define FSO_GSM_AT_NETWORK_GET_STATUS_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), FSO_GSM_TYPE_AT_NETWORK_GET_STATUS, FsoGsmAtNetworkGetStatusClass))
#define FSO_GSM_IS_AT_NETWORK_GET_STATUS(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FSO_GSM_TYPE_AT_NETWORK_GET_STATUS))
#define FSO_GSM_IS_AT_NETWORK_GET_STATUS_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FSO_GSM_TYPE_AT_NETWORK_GET_STATUS))
#define FSO_GSM_AT_NETWORK_GET_STATUS_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), FSO_GSM_TYPE_AT_NETWORK_GET_STATUS, FsoGsmAtNetworkGetStatusClass))

typedef struct _FsoGsmAtNetworkGetStatus FsoGsmAtNetworkGetStatus;
typedef struct _FsoGsmAtNetworkGetStatusClass FsoGsmAtNetworkGetStatusClass;
typedef struct _FsoGsmAtNetworkGetStatusPrivate FsoGsmAtNetworkGetStatusPrivate;
#define _g_hash_table_unref0(var) ((var == NULL) ? NULL : (var = (g_hash_table_unref (var), NULL)))
#define _g_variant_unref0(var) ((var == NULL) ? NULL : (var = (g_variant_unref (var), NULL)))

#define FSO_GSM_TYPE_PLUS_CREG (fso_gsm_plus_creg_get_type ())
#define FSO_GSM_PLUS_CREG(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FSO_GSM_TYPE_PLUS_CREG, FsoGsmPlusCREG))
#define FSO_GSM_PLUS_CREG_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), FSO_GSM_TYPE_PLUS_CREG, FsoGsmPlusCREGClass))
#define FSO_GSM_IS_PLUS_CREG(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FSO_GSM_TYPE_PLUS_CREG))
#define FSO_GSM_IS_PLUS_CREG_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FSO_GSM_TYPE_PLUS_CREG))
#define FSO_GSM_PLUS_CREG_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), FSO_GSM_TYPE_PLUS_CREG, FsoGsmPlusCREGClass))

typedef struct _FsoGsmPlusCREG FsoGsmPlusCREG;
typedef struct _FsoGsmPlusCREGClass FsoGsmPlusCREGClass;

#define FSO_GSM_TYPE_CONSTANTS (fso_gsm_constants_get_type ())
#define FSO_GSM_CONSTANTS(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FSO_GSM_TYPE_CONSTANTS, FsoGsmConstants))
#define FSO_GSM_CONSTANTS_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), FSO_GSM_TYPE_CONSTANTS, FsoGsmConstantsClass))
#define FSO_GSM_IS_CONSTANTS(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FSO_GSM_TYPE_CONSTANTS))
#define FSO_GSM_IS_CONSTANTS_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FSO_GSM_TYPE_CONSTANTS))
#define FSO_GSM_CONSTANTS_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), FSO_GSM_TYPE_CONSTANTS, FsoGsmConstantsClass))

typedef struct _FsoGsmConstants FsoGsmConstants;
typedef struct _FsoGsmConstantsClass FsoGsmConstantsClass;
typedef struct _FsoGsmPlusCREGPrivate FsoGsmPlusCREGPrivate;
#define _fso_gsm_constants_unref0(var) ((var == NULL) ? NULL : (var = (fso_gsm_constants_unref (var), NULL)))

#define FSO_GSM_TYPE_PLUS_COPS (fso_gsm_plus_cops_get_type ())
#define FSO_GSM_PLUS_COPS(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FSO_GSM_TYPE_PLUS_COPS, FsoGsmPlusCOPS))
#define FSO_GSM_PLUS_COPS_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), FSO_GSM_TYPE_PLUS_COPS, FsoGsmPlusCOPSClass))
#define FSO_GSM_IS_PLUS_COPS(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FSO_GSM_TYPE_PLUS_COPS))
#define FSO_GSM_IS_PLUS_COPS_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FSO_GSM_TYPE_PLUS_COPS))
#define FSO_GSM_PLUS_COPS_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), FSO_GSM_TYPE_PLUS_COPS, FsoGsmPlusCOPSClass))

typedef struct _FsoGsmPlusCOPS FsoGsmPlusCOPS;
typedef struct _FsoGsmPlusCOPSClass FsoGsmPlusCOPSClass;

#define FSO_GSM_PLUS_COPS_TYPE_FORMAT (fso_gsm_plus_cops_format_get_type ())
typedef struct _FsoGsmPlusCOPSPrivate FsoGsmPlusCOPSPrivate;

#define FSO_GSM_TYPE_PLUS_CGREG (fso_gsm_plus_cgreg_get_type ())
#define FSO_GSM_PLUS_CGREG(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FSO_GSM_TYPE_PLUS_CGREG, FsoGsmPlusCGREG))
#define FSO_GSM_PLUS_CGREG_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), FSO_GSM_TYPE_PLUS_CGREG, FsoGsmPlusCGREGClass))
#define FSO_GSM_IS_PLUS_CGREG(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FSO_GSM_TYPE_PLUS_CGREG))
#define FSO_GSM_IS_PLUS_CGREG_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FSO_GSM_TYPE_PLUS_CGREG))
#define FSO_GSM_PLUS_CGREG_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), FSO_GSM_TYPE_PLUS_CGREG, FsoGsmPlusCGREGClass))

typedef struct _FsoGsmPlusCGREG FsoGsmPlusCGREG;
typedef struct _FsoGsmPlusCGREGClass FsoGsmPlusCGREGClass;
typedef struct _FsoGsmPlusCGREGPrivate FsoGsmPlusCGREGPrivate;
typedef struct _FsoGsmAtNetworkGetStatusRunData FsoGsmAtNetworkGetStatusRunData;

#define FSO_GSM_TYPE_NETWORK_LIST_PROVIDERS (fso_gsm_network_list_providers_get_type ())
#define FSO_GSM_NETWORK_LIST_PROVIDERS(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FSO_GSM_TYPE_NETWORK_LIST_PROVIDERS, FsoGsmNetworkListProviders))
#define FSO_GSM_NETWORK_LIST_PROVIDERS_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), FSO_GSM_TYPE_NETWORK_LIST_PROVIDERS, FsoGsmNetworkListProvidersClass))
#define FSO_GSM_IS_NETWORK_LIST_PROVIDERS(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FSO_GSM_TYPE_NETWORK_LIST_PROVIDERS))
#define FSO_GSM_IS_NETWORK_LIST_PROVIDERS_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FSO_GSM_TYPE_NETWORK_LIST_PROVIDERS))
#define FSO_GSM_NETWORK_LIST_PROVIDERS_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), FSO_GSM_TYPE_NETWORK_LIST_PROVIDERS, FsoGsmNetworkListProvidersClass))

typedef struct _FsoGsmNetworkListProviders FsoGsmNetworkListProviders;
typedef struct _FsoGsmNetworkListProvidersClass FsoGsmNetworkListProvidersClass;
typedef struct _FsoGsmNetworkListProvidersPrivate FsoGsmNetworkListProvidersPrivate;

#define FSO_GSM_TYPE_AT_NETWORK_LIST_PROVIDERS (fso_gsm_at_network_list_providers_get_type ())
#define FSO_GSM_AT_NETWORK_LIST_PROVIDERS(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FSO_GSM_TYPE_AT_NETWORK_LIST_PROVIDERS, FsoGsmAtNetworkListProviders))
#define FSO_GSM_AT_NETWORK_LIST_PROVIDERS_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), FSO_GSM_TYPE_AT_NETWORK_LIST_PROVIDERS, FsoGsmAtNetworkListProvidersClass))
#define FSO_GSM_IS_AT_NETWORK_LIST_PROVIDERS(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FSO_GSM_TYPE_AT_NETWORK_LIST_PROVIDERS))
#define FSO_GSM_IS_AT_NETWORK_LIST_PROVIDERS_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FSO_GSM_TYPE_AT_NETWORK_LIST_PROVIDERS))
#define FSO_GSM_AT_NETWORK_LIST_PROVIDERS_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), FSO_GSM_TYPE_AT_NETWORK_LIST_PROVIDERS, FsoGsmAtNetworkListProvidersClass))

typedef struct _FsoGsmAtNetworkListProviders FsoGsmAtNetworkListProviders;
typedef struct _FsoGsmAtNetworkListProvidersClass FsoGsmAtNetworkListProvidersClass;
typedef struct _FsoGsmAtNetworkListProvidersPrivate FsoGsmAtNetworkListProvidersPrivate;
typedef struct _FsoGsmAtNetworkListProvidersRunData FsoGsmAtNetworkListProvidersRunData;

#define FSO_GSM_TYPE_NETWORK_REGISTER (fso_gsm_network_register_get_type ())
#define FSO_GSM_NETWORK_REGISTER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FSO_GSM_TYPE_NETWORK_REGISTER, FsoGsmNetworkRegister))
#define FSO_GSM_NETWORK_REGISTER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), FSO_GSM_TYPE_NETWORK_REGISTER, FsoGsmNetworkRegisterClass))
#define FSO_GSM_IS_NETWORK_REGISTER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FSO_GSM_TYPE_NETWORK_REGISTER))
#define FSO_GSM_IS_NETWORK_REGISTER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FSO_GSM_TYPE_NETWORK_REGISTER))
#define FSO_GSM_NETWORK_REGISTER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), FSO_GSM_TYPE_NETWORK_REGISTER, FsoGsmNetworkRegisterClass))

typedef struct _FsoGsmNetworkRegister FsoGsmNetworkRegister;
typedef struct _FsoGsmNetworkRegisterClass FsoGsmNetworkRegisterClass;
typedef struct _FsoGsmNetworkRegisterPrivate FsoGsmNetworkRegisterPrivate;

#define FSO_GSM_TYPE_AT_NETWORK_REGISTER (fso_gsm_at_network_register_get_type ())
#define FSO_GSM_AT_NETWORK_REGISTER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FSO_GSM_TYPE_AT_NETWORK_REGISTER, FsoGsmAtNetworkRegister))
#define FSO_GSM_AT_NETWORK_REGISTER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), FSO_GSM_TYPE_AT_NETWORK_REGISTER, FsoGsmAtNetworkRegisterClass))
#define FSO_GSM_IS_AT_NETWORK_REGISTER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FSO_GSM_TYPE_AT_NETWORK_REGISTER))
#define FSO_GSM_IS_AT_NETWORK_REGISTER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FSO_GSM_TYPE_AT_NETWORK_REGISTER))
#define FSO_GSM_AT_NETWORK_REGISTER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), FSO_GSM_TYPE_AT_NETWORK_REGISTER, FsoGsmAtNetworkRegisterClass))

typedef struct _FsoGsmAtNetworkRegister FsoGsmAtNetworkRegister;
typedef struct _FsoGsmAtNetworkRegisterClass FsoGsmAtNetworkRegisterClass;
typedef struct _FsoGsmAtNetworkRegisterPrivate FsoGsmAtNetworkRegisterPrivate;

#define FSO_GSM_PLUS_COPS_TYPE_ACTION (fso_gsm_plus_cops_action_get_type ())
typedef struct _FsoGsmAtNetworkRegisterRunData FsoGsmAtNetworkRegisterRunData;

#define FSO_GSM_TYPE_NETWORK_UNREGISTER (fso_gsm_network_unregister_get_type ())
#define FSO_GSM_NETWORK_UNREGISTER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FSO_GSM_TYPE_NETWORK_UNREGISTER, FsoGsmNetworkUnregister))
#define FSO_GSM_NETWORK_UNREGISTER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), FSO_GSM_TYPE_NETWORK_UNREGISTER, FsoGsmNetworkUnregisterClass))
#define FSO_GSM_IS_NETWORK_UNREGISTER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FSO_GSM_TYPE_NETWORK_UNREGISTER))
#define FSO_GSM_IS_NETWORK_UNREGISTER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FSO_GSM_TYPE_NETWORK_UNREGISTER))
#define FSO_GSM_NETWORK_UNREGISTER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), FSO_GSM_TYPE_NETWORK_UNREGISTER, FsoGsmNetworkUnregisterClass))

typedef struct _FsoGsmNetworkUnregister FsoGsmNetworkUnregister;
typedef struct _FsoGsmNetworkUnregisterClass FsoGsmNetworkUnregisterClass;
typedef struct _FsoGsmNetworkUnregisterPrivate FsoGsmNetworkUnregisterPrivate;

#define FSO_GSM_TYPE_AT_NETWORK_UNREGISTER (fso_gsm_at_network_unregister_get_type ())
#define FSO_GSM_AT_NETWORK_UNREGISTER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FSO_GSM_TYPE_AT_NETWORK_UNREGISTER, FsoGsmAtNetworkUnregister))
#define FSO_GSM_AT_NETWORK_UNREGISTER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), FSO_GSM_TYPE_AT_NETWORK_UNREGISTER, FsoGsmAtNetworkUnregisterClass))
#define FSO_GSM_IS_AT_NETWORK_UNREGISTER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FSO_GSM_TYPE_AT_NETWORK_UNREGISTER))
#define FSO_GSM_IS_AT_NETWORK_UNREGISTER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FSO_GSM_TYPE_AT_NETWORK_UNREGISTER))
#define FSO_GSM_AT_NETWORK_UNREGISTER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), FSO_GSM_TYPE_AT_NETWORK_UNREGISTER, FsoGsmAtNetworkUnregisterClass))

typedef struct _FsoGsmAtNetworkUnregister FsoGsmAtNetworkUnregister;
typedef struct _FsoGsmAtNetworkUnregisterClass FsoGsmAtNetworkUnregisterClass;
typedef struct _FsoGsmAtNetworkUnregisterPrivate FsoGsmAtNetworkUnregisterPrivate;
typedef struct _FsoGsmAtNetworkUnregisterRunData FsoGsmAtNetworkUnregisterRunData;

#define FSO_GSM_TYPE_NETWORK_SEND_USSD_REQUEST (fso_gsm_network_send_ussd_request_get_type ())
#define FSO_GSM_NETWORK_SEND_USSD_REQUEST(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FSO_GSM_TYPE_NETWORK_SEND_USSD_REQUEST, FsoGsmNetworkSendUssdRequest))
#define FSO_GSM_NETWORK_SEND_USSD_REQUEST_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), FSO_GSM_TYPE_NETWORK_SEND_USSD_REQUEST, FsoGsmNetworkSendUssdRequestClass))
#define FSO_GSM_IS_NETWORK_SEND_USSD_REQUEST(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FSO_GSM_TYPE_NETWORK_SEND_USSD_REQUEST))
#define FSO_GSM_IS_NETWORK_SEND_USSD_REQUEST_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FSO_GSM_TYPE_NETWORK_SEND_USSD_REQUEST))
#define FSO_GSM_NETWORK_SEND_USSD_REQUEST_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), FSO_GSM_TYPE_NETWORK_SEND_USSD_REQUEST, FsoGsmNetworkSendUssdRequestClass))

typedef struct _FsoGsmNetworkSendUssdRequest FsoGsmNetworkSendUssdRequest;
typedef struct _FsoGsmNetworkSendUssdRequestClass FsoGsmNetworkSendUssdRequestClass;
typedef struct _FsoGsmNetworkSendUssdRequestPrivate FsoGsmNetworkSendUssdRequestPrivate;

#define FSO_GSM_TYPE_AT_NETWORK_SEND_USSD_REQUEST (fso_gsm_at_network_send_ussd_request_get_type ())
#define FSO_GSM_AT_NETWORK_SEND_USSD_REQUEST(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FSO_GSM_TYPE_AT_NETWORK_SEND_USSD_REQUEST, FsoGsmAtNetworkSendUssdRequest))
#define FSO_GSM_AT_NETWORK_SEND_USSD_REQUEST_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), FSO_GSM_TYPE_AT_NETWORK_SEND_USSD_REQUEST, FsoGsmAtNetworkSendUssdRequestClass))
#define FSO_GSM_IS_AT_NETWORK_SEND_USSD_REQUEST(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FSO_GSM_TYPE_AT_NETWORK_SEND_USSD_REQUEST))
#define FSO_GSM_IS_AT_NETWORK_SEND_USSD_REQUEST_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FSO_GSM_TYPE_AT_NETWORK_SEND_USSD_REQUEST))
#define FSO_GSM_AT_NETWORK_SEND_USSD_REQUEST_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), FSO_GSM_TYPE_AT_NETWORK_SEND_USSD_REQUEST, FsoGsmAtNetworkSendUssdRequestClass))

typedef struct _FsoGsmAtNetworkSendUssdRequest FsoGsmAtNetworkSendUssdRequest;
typedef struct _FsoGsmAtNetworkSendUssdRequestClass FsoGsmAtNetworkSendUssdRequestClass;
typedef struct _FsoGsmAtNetworkSendUssdRequestPrivate FsoGsmAtNetworkSendUssdRequestPrivate;

#define FSO_GSM_TYPE_PLUS_CUSD (fso_gsm_plus_cusd_get_type ())
#define FSO_GSM_PLUS_CUSD(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FSO_GSM_TYPE_PLUS_CUSD, FsoGsmPlusCUSD))
#define FSO_GSM_PLUS_CUSD_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), FSO_GSM_TYPE_PLUS_CUSD, FsoGsmPlusCUSDClass))
#define FSO_GSM_IS_PLUS_CUSD(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FSO_GSM_TYPE_PLUS_CUSD))
#define FSO_GSM_IS_PLUS_CUSD_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FSO_GSM_TYPE_PLUS_CUSD))
#define FSO_GSM_PLUS_CUSD_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), FSO_GSM_TYPE_PLUS_CUSD, FsoGsmPlusCUSDClass))

typedef struct _FsoGsmPlusCUSD FsoGsmPlusCUSD;
typedef struct _FsoGsmPlusCUSDClass FsoGsmPlusCUSDClass;
typedef struct _FsoGsmAtNetworkSendUssdRequestRunData FsoGsmAtNetworkSendUssdRequestRunData;

#define FSO_GSM_TYPE_NETWORK_GET_CALLING_ID (fso_gsm_network_get_calling_id_get_type ())
#define FSO_GSM_NETWORK_GET_CALLING_ID(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FSO_GSM_TYPE_NETWORK_GET_CALLING_ID, FsoGsmNetworkGetCallingId))
#define FSO_GSM_NETWORK_GET_CALLING_ID_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), FSO_GSM_TYPE_NETWORK_GET_CALLING_ID, FsoGsmNetworkGetCallingIdClass))
#define FSO_GSM_IS_NETWORK_GET_CALLING_ID(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FSO_GSM_TYPE_NETWORK_GET_CALLING_ID))
#define FSO_GSM_IS_NETWORK_GET_CALLING_ID_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FSO_GSM_TYPE_NETWORK_GET_CALLING_ID))
#define FSO_GSM_NETWORK_GET_CALLING_ID_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), FSO_GSM_TYPE_NETWORK_GET_CALLING_ID, FsoGsmNetworkGetCallingIdClass))

typedef struct _FsoGsmNetworkGetCallingId FsoGsmNetworkGetCallingId;
typedef struct _FsoGsmNetworkGetCallingIdClass FsoGsmNetworkGetCallingIdClass;
typedef struct _FsoGsmNetworkGetCallingIdPrivate FsoGsmNetworkGetCallingIdPrivate;

#define FSO_GSM_TYPE_AT_NETWORK_GET_CALLING_ID (fso_gsm_at_network_get_calling_id_get_type ())
#define FSO_GSM_AT_NETWORK_GET_CALLING_ID(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FSO_GSM_TYPE_AT_NETWORK_GET_CALLING_ID, FsoGsmAtNetworkGetCallingId))
#define FSO_GSM_AT_NETWORK_GET_CALLING_ID_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), FSO_GSM_TYPE_AT_NETWORK_GET_CALLING_ID, FsoGsmAtNetworkGetCallingIdClass))
#define FSO_GSM_IS_AT_NETWORK_GET_CALLING_ID(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FSO_GSM_TYPE_AT_NETWORK_GET_CALLING_ID))
#define FSO_GSM_IS_AT_NETWORK_GET_CALLING_ID_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FSO_GSM_TYPE_AT_NETWORK_GET_CALLING_ID))
#define FSO_GSM_AT_NETWORK_GET_CALLING_ID_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), FSO_GSM_TYPE_AT_NETWORK_GET_CALLING_ID, FsoGsmAtNetworkGetCallingIdClass))

typedef struct _FsoGsmAtNetworkGetCallingId FsoGsmAtNetworkGetCallingId;
typedef struct _FsoGsmAtNetworkGetCallingIdClass FsoGsmAtNetworkGetCallingIdClass;
typedef struct _FsoGsmAtNetworkGetCallingIdPrivate FsoGsmAtNetworkGetCallingIdPrivate;

#define FSO_GSM_TYPE_SIMPLE_AT_COMMAND (fso_gsm_simple_at_command_get_type ())
#define FSO_GSM_SIMPLE_AT_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FSO_GSM_TYPE_SIMPLE_AT_COMMAND, FsoGsmSimpleAtCommand))
#define FSO_GSM_SIMPLE_AT_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), FSO_GSM_TYPE_SIMPLE_AT_COMMAND, FsoGsmSimpleAtCommandClass))
#define FSO_GSM_IS_SIMPLE_AT_COMMAND(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FSO_GSM_TYPE_SIMPLE_AT_COMMAND))
#define FSO_GSM_IS_SIMPLE_AT_COMMAND_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FSO_GSM_TYPE_SIMPLE_AT_COMMAND))
#define FSO_GSM_SIMPLE_AT_COMMAND_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), FSO_GSM_TYPE_SIMPLE_AT_COMMAND, FsoGsmSimpleAtCommandClass))

typedef struct _FsoGsmSimpleAtCommand FsoGsmSimpleAtCommand;
typedef struct _FsoGsmSimpleAtCommandClass FsoGsmSimpleAtCommandClass;

#define FSO_GSM_TYPE_PLUS_CLIR (fso_gsm_plus_clir_get_type ())
#define FSO_GSM_PLUS_CLIR(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FSO_GSM_TYPE_PLUS_CLIR, FsoGsmPlusCLIR))
#define FSO_GSM_PLUS_CLIR_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), FSO_GSM_TYPE_PLUS_CLIR, FsoGsmPlusCLIRClass))
#define FSO_GSM_IS_PLUS_CLIR(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FSO_GSM_TYPE_PLUS_CLIR))
#define FSO_GSM_IS_PLUS_CLIR_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FSO_GSM_TYPE_PLUS_CLIR))
#define FSO_GSM_PLUS_CLIR_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), FSO_GSM_TYPE_PLUS_CLIR, FsoGsmPlusCLIRClass))

typedef struct _FsoGsmPlusCLIR FsoGsmPlusCLIR;
typedef struct _FsoGsmPlusCLIRClass FsoGsmPlusCLIRClass;
typedef struct _FsoGsmSimpleAtCommandPrivate FsoGsmSimpleAtCommandPrivate;
typedef struct _FsoGsmAtNetworkGetCallingIdRunData FsoGsmAtNetworkGetCallingIdRunData;

#define FSO_GSM_TYPE_NETWORK_SET_CALLING_ID (fso_gsm_network_set_calling_id_get_type ())
#define FSO_GSM_NETWORK_SET_CALLING_ID(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FSO_GSM_TYPE_NETWORK_SET_CALLING_ID, FsoGsmNetworkSetCallingId))
#define FSO_GSM_NETWORK_SET_CALLING_ID_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), FSO_GSM_TYPE_NETWORK_SET_CALLING_ID, FsoGsmNetworkSetCallingIdClass))
#define FSO_GSM_IS_NETWORK_SET_CALLING_ID(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FSO_GSM_TYPE_NETWORK_SET_CALLING_ID))
#define FSO_GSM_IS_NETWORK_SET_CALLING_ID_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FSO_GSM_TYPE_NETWORK_SET_CALLING_ID))
#define FSO_GSM_NETWORK_SET_CALLING_ID_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), FSO_GSM_TYPE_NETWORK_SET_CALLING_ID, FsoGsmNetworkSetCallingIdClass))

typedef struct _FsoGsmNetworkSetCallingId FsoGsmNetworkSetCallingId;
typedef struct _FsoGsmNetworkSetCallingIdClass FsoGsmNetworkSetCallingIdClass;
typedef struct _FsoGsmNetworkSetCallingIdPrivate FsoGsmNetworkSetCallingIdPrivate;

#define FSO_GSM_TYPE_AT_NETWORK_SET_CALLING_ID (fso_gsm_at_network_set_calling_id_get_type ())
#define FSO_GSM_AT_NETWORK_SET_CALLING_ID(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), FSO_GSM_TYPE_AT_NETWORK_SET_CALLING_ID, FsoGsmAtNetworkSetCallingId))
#define FSO_GSM_AT_NETWORK_SET_CALLING_ID_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), FSO_GSM_TYPE_AT_NETWORK_SET_CALLING_ID, FsoGsmAtNetworkSetCallingIdClass))
#define FSO_GSM_IS_AT_NETWORK_SET_CALLING_ID(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), FSO_GSM_TYPE_AT_NETWORK_SET_CALLING_ID))
#define FSO_GSM_IS_AT_NETWORK_SET_CALLING_ID_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), FSO_GSM_TYPE_AT_NETWORK_SET_CALLING_ID))
#define FSO_GSM_AT_NETWORK_SET_CALLING_ID_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), FSO_GSM_TYPE_AT_NETWORK_SET_CALLING_ID, FsoGsmAtNetworkSetCallingIdClass))

typedef struct _FsoGsmAtNetworkSetCallingId FsoGsmAtNetworkSetCallingId;
typedef struct _FsoGsmAtNetworkSetCallingIdClass FsoGsmAtNetworkSetCallingIdClass;
typedef struct _FsoGsmAtNetworkSetCallingIdPrivate FsoGsmAtNetworkSetCallingIdPrivate;
typedef struct _FsoGsmAtNetworkSetCallingIdRunData FsoGsmAtNetworkSetCallingIdRunData;

struct _FsoGsmMediatorIface {
	GTypeInterface parent_iface;
};

struct _FsoGsmAbstractMediator {
	GObject parent_instance;
	FsoGsmAbstractMediatorPrivate * priv;
};

struct _FsoGsmAbstractMediatorClass {
	GObjectClass parent_class;
};

struct _FsoGsmNetworkGetSignalStrength {
	FsoGsmAbstractMediator parent_instance;
	FsoGsmNetworkGetSignalStrengthPrivate * priv;
};

struct _FsoGsmNetworkGetSignalStrengthClass {
	FsoGsmAbstractMediatorClass parent_class;
	void (*run) (FsoGsmNetworkGetSignalStrength* self, GAsyncReadyCallback _callback_, gpointer _user_data_);
	void (*run_finish) (FsoGsmNetworkGetSignalStrength* self, GAsyncResult* _res_, GError** error);
};

struct _FsoGsmAtNetworkGetSignalStrength {
	FsoGsmNetworkGetSignalStrength parent_instance;
	FsoGsmAtNetworkGetSignalStrengthPrivate * priv;
};

struct _FsoGsmAtNetworkGetSignalStrengthClass {
	FsoGsmNetworkGetSignalStrengthClass parent_class;
};

struct _FsoGsmChannelIface {
	GTypeInterface parent_iface;
	void (*injectResponse) (FsoGsmChannel* self, const gchar* response);
	void (*suspend) (FsoGsmChannel* self, GAsyncReadyCallback _callback_, gpointer _user_data_);
	gboolean (*suspend_finish) (FsoGsmChannel* self, GAsyncResult* _res_);
	void (*resume) (FsoGsmChannel* self, GAsyncReadyCallback _callback_, gpointer _user_data_);
	gboolean (*resume_finish) (FsoGsmChannel* self, GAsyncResult* _res_);
};

typedef enum  {
	FSO_GSM_MODEM_STATUS_UNKNOWN,
	FSO_GSM_MODEM_STATUS_CLOSED,
	FSO_GSM_MODEM_STATUS_INITIALIZING,
	FSO_GSM_MODEM_STATUS_ALIVE_NO_SIM,
	FSO_GSM_MODEM_STATUS_ALIVE_SIM_LOCKED,
	FSO_GSM_MODEM_STATUS_ALIVE_SIM_UNLOCKED,
	FSO_GSM_MODEM_STATUS_ALIVE_SIM_READY,
	FSO_GSM_MODEM_STATUS_ALIVE_REGISTERED,
	FSO_GSM_MODEM_STATUS_SUSPENDING,
	FSO_GSM_MODEM_STATUS_SUSPENDED,
	FSO_GSM_MODEM_STATUS_RESUMING,
	FSO_GSM_MODEM_STATUS_CLOSING
} FsoGsmModemStatus;

typedef enum  {
	FSO_GSM_MODEM_NETWORK_STATUS_UNKNOWN,
	FSO_GSM_MODEM_NETWORK_STATUS_UNREGISTERED,
	FSO_GSM_MODEM_NETWORK_STATUS_SEARCHING,
	FSO_GSM_MODEM_NETWORK_STATUS_REGISTERED
} FsoGsmModemNetworkStatus;

struct _FsoGsmAtCommandQueueCommandIface {
	GTypeInterface parent_iface;
	guint (*get_retry) (FsoGsmAtCommandQueueCommand* self);
	guint (*get_timeout) (FsoGsmAtCommandQueueCommand* self);
	gchar* (*get_prefix) (FsoGsmAtCommandQueueCommand* self);
	gchar* (*get_postfix) (FsoGsmAtCommandQueueCommand* self);
	gboolean (*is_valid_prefix) (FsoGsmAtCommandQueueCommand* self, const gchar* line);
};

typedef enum  {
	FSO_GSM_AT_COMMAND_ERROR_UNABLE_TO_PARSE
} FsoGsmAtCommandError;
#define FSO_GSM_AT_COMMAND_ERROR fso_gsm_at_command_error_quark ()
typedef enum  {
	FSO_GSM_CONSTANTS_AT_RESPONSE_VALID = 0,
	FSO_GSM_CONSTANTS_AT_RESPONSE_OK = 1,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CONNECT = 2,
	FSO_GSM_CONSTANTS_AT_RESPONSE_UNEXPECTED_LENGTH = 501,
	FSO_GSM_CONSTANTS_AT_RESPONSE_UNABLE_TO_PARSE = 502,
	FSO_GSM_CONSTANTS_AT_RESPONSE_ERROR = 503,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CME_ERROR_START = 1000,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CME_ERROR_000_PHONE_FAILURE = 1000,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CME_ERROR_001_NO_CONNECTION_TO_PHONE = 1001,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CME_ERROR_002_PHONE_ADAPTER_LINK_RESERVED = 1002,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CME_ERROR_003_OPERATION_NOT_ALLOWED = 1003,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CME_ERROR_004_OPERATION_NOT_SUPPORTED = 1004,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CME_ERROR_005_PH_SIM_PIN_REQUIRED = 1005,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CME_ERROR_006_PH_FSIM_PIN_REQUIRED = 1006,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CME_ERROR_007_PH_FSIM_PUK_REQUIRED = 1007,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CME_ERROR_010_SIM_NOT_INSERTED = 1010,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CME_ERROR_011_SIM_PIN_REQUIRED = 1011,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CME_ERROR_012_SIM_PUK_REQUIRED = 1012,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CME_ERROR_013_SIM_FAILURE = 1013,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CME_ERROR_014_SIM_BUSY = 1014,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CME_ERROR_015_SIM_WRONG = 1015,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CME_ERROR_016_INCORRECT_PASSWORD = 1016,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CME_ERROR_017_SIM_PIN2_REQUIRED = 1017,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CME_ERROR_018_SIM_PUK2_REQUIRED = 1018,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CME_ERROR_020_MEMORY_FULL = 1020,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CME_ERROR_021_INVALID_INDEX = 1021,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CME_ERROR_022_NOT_FOUND = 1022,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CME_ERROR_023_MEMORY_FAILURE = 1023,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CME_ERROR_024_TEXT_STRING_TOO_LONG = 1024,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CME_ERROR_025_INVALID_CHARACTERS_IN_TEXT_STRING = 1025,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CME_ERROR_026_DIAL_STRING_TOO_LONG = 1026,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CME_ERROR_027_INVALID_CHARACTERS_IN_DIAL_STRING = 1027,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CME_ERROR_030_NO_NETWORK_SERVICE = 1030,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CME_ERROR_031_NETWORK_TIMEOUT = 1031,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CME_ERROR_032_NETWORK_NOT_ALLOWED_EMERGENCY_CALLS_ONLY = 1032,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CME_ERROR_040_NETWORK_PERSONALIZATION_PIN_REQUIRED = 1040,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CME_ERROR_041_NETWORK_PERSONALIZATION_PUK_REQUIRED = 1041,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CME_ERROR_042_NETWORK_SUBSET_PERSONALIZATION_PIN_REQUIRED = 1042,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CME_ERROR_043_NETWORK_SUBSET_PERSONALIZATION_PUK_REQUIRED = 1043,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CME_ERROR_044_SERVICE_PROVIDER_PERSONALIZATION_PIN_REQUIRED = 1044,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CME_ERROR_045_SERVICE_PROVIDER_PERSONALIZATION_PUK_REQUIRED = 1045,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CME_ERROR_046_CORPORATE_PERSONALIZATION_PIN_REQUIRED = 1046,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CME_ERROR_047_CORPORATE_PERSONALIZATION_PUK_REQUIRED = 1047,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CME_ERROR_048_PH_SIM_PUK_REQUIRED = 1048,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CME_ERROR_100_UNKNOWN_ERROR = 1100,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CME_ERROR_103_GPRS_ILLEGAL_MS = 1103,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CME_ERROR_106_GPRS_ILLEGAL_ME = 1106,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CME_ERROR_107_GPRS_SERVICES_NOT_ALLOWED = 1107,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CME_ERROR_111_GPRS_PLMN_NOT_ALLOWED = 1111,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CME_ERROR_112_GPRS_LOCATION_AREA_NOT_ALLOWED = 1112,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CME_ERROR_113_GPRS_ROAMING_NOT_ALLOWED_IN_THIS_LOCATION_AREA = 1113,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CME_ERROR_126_GPRS_OPERATION_TEMPORARY_NOT_ALLOWED = 1126,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CME_ERROR_132_GPRS_SERVICE_OPERATION_NOT_SUPPORTED = 1132,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CME_ERROR_133_GPRS_REQUESTED_SERVICE_OPTION_NOT_SUBSCRIBED = 1133,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CME_ERROR_134_GPRS_SERVICE_OPTION_TEMPORARY_OUT_OF_ORDER = 1134,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CME_ERROR_148_GPRS_UNSPECIFIED_ERROR = 1148,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CME_ERROR_149_GPRS_PDP_AUTHENTICATION_FAILURE = 1149,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CME_ERROR_150_GPRS_INVALID_MOBILE_CLASS = 1150,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CME_ERROR_256_OPERATION_TEMPORARILY_NOT_ALLOWED = 1256,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CME_ERROR_257_CALL_BARRED = 1257,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CME_ERROR_258_PHONE_IS_BUSY = 1258,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CME_ERROR_259_USER_ABORT = 1259,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CME_ERROR_260_INVALID_DIAL_STRING = 1260,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CME_ERROR_261_SS_NOT_EXECUTED = 1261,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CME_ERROR_262_SIM_BLOCKED = 1262,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CME_ERROR_263_INVALID_BLOCK = 1263,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CME_ERROR_265_BUSY_TRY_AGAIN = 1265,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CME_ERROR_512_FAILED_TO_ABORT_COMMAND = 1512,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CME_ERROR_513_ACM_RESET_NEEDED = 1513,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CME_ERROR_514_SIM_APPLICATION_TOOLKIT_BUSY = 1514,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CME_ERROR_772_SIM_POWERED_DOWN = 1772,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CMS_ERROR_START = 2000,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CMS_ERROR_001_UNASSIGNED_NUMBER = 2001,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CMS_ERROR_008_OPERATOR_DETERMINED_BARRING = 2008,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CMS_ERROR_010_CALL_BARED = 2010,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CMS_ERROR_021_SHORT_MESSAGE_TRANSFER_REJECTED = 2021,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CMS_ERROR_027_DESTINATION_OUT_OF_SERVICE = 2027,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CMS_ERROR_028_UNIDENTIFIED_SUBSCRIBER = 2028,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CMS_ERROR_029_FACILITY_REJECTED = 2029,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CMS_ERROR_030_UNKNOWN_SUBSCRIBER = 2030,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CMS_ERROR_038_NETWORK_OUT_OF_ORDER = 2038,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CMS_ERROR_041_TEMPORARY_FAILURE = 2041,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CMS_ERROR_042_CONGESTION = 2042,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CMS_ERROR_047_RECOURCES_UNAVAILABLE = 2047,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CMS_ERROR_050_REQUESTED_FACILITY_NOT_SUBSCRIBED = 2050,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CMS_ERROR_069_REQUESTED_FACILITY_NOT_IMPLEMENTED = 2069,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CMS_ERROR_081_INVALID_SHORT_MESSAGE_TRANSFER_REFERENCE_VALUE = 2081,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CMS_ERROR_095_INVALID_MESSAGE_UNSPECIFIED = 2095,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CMS_ERROR_096_INVALID_MANDATORY_INFORMATION = 2096,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CMS_ERROR_097_MESSAGE_TYPE_NON_EXISTENT_OR_NOT_IMPLEMENTED = 2097,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CMS_ERROR_098_MESSAGE_NOT_COMPATIBLE_WITH_SHORT_MESSAGE_PROTOCOL = 2098,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CMS_ERROR_099_INFORMATION_ELEMENT_NON_EXISTENT_OR_NOT_IMPLEMENTED = 2099,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CMS_ERROR_111_PROTOCOL_ERROR_UNSPECIFIED = 2111,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CMS_ERROR_127_INTERNETWORKING_UNSPECIFIED = 2127,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CMS_ERROR_128_TELEMATIC_INTERNETWORKING_NOT_SUPPORTED = 2128,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CMS_ERROR_129_SHORT_MESSAGE_TYPE_0_NOT_SUPPORTED = 2129,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CMS_ERROR_130_CANNOT_REPLACE_SHORT_MESSAGE = 2130,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CMS_ERROR_143_UNSPECIFIED_TP_PID_ERROR = 2143,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CMS_ERROR_144_DATA_CODE_SCHEME_NOT_SUPPORTED = 2144,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CMS_ERROR_145_MESSAGE_CLASS_NOT_SUPPORTED = 2145,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CMS_ERROR_159_UNSPECIFIED_TP_DCS_ERROR = 2159,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CMS_ERROR_160_COMMAND_CANNOT_BE_ACTIONED = 2160,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CMS_ERROR_161_COMMAND_UNSUPPORTED = 2161,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CMS_ERROR_175_UNSPECIFIED_TP_COMMAND_ERROR = 2175,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CMS_ERROR_176_TPDU_NOT_SUPPORTED = 2176,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CMS_ERROR_192_SC_BUSY = 2192,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CMS_ERROR_193_NO_SC_SUBSCRIPTION = 2193,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CMS_ERROR_194_SC_SYSTEM_FAILURE = 2194,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CMS_ERROR_195_INVALID_SME_ADDRESS = 2195,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CMS_ERROR_196_DESTINATION_SME_BARRED = 2196,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CMS_ERROR_197_SM_REJECTED_DUPLICATE_SM = 2197,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CMS_ERROR_198_TP_VPF_NOT_SUPPORTED = 2198,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CMS_ERROR_199_TP_VP_NOT_SUPPORTED = 2199,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CMS_ERROR_208_D0_SIM_SMS_STORAGE_FULL = 2208,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CMS_ERROR_209_NO_SMS_STORAGE_CAPABILITY_IN_SIM = 2209,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CMS_ERROR_210_ERROR_IN_MS = 2210,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CMS_ERROR_211_MEMORY_CAPACITY_EXCEEDED = 2211,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CMS_ERROR_212_SIM_APPLICATION_TOOLKIT_BUSY = 2212,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CMS_ERROR_213_SIM_DATA_DOWNLOAD_ERROR = 2213,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CMS_ERROR_255_UNSPECIFIED_ERROR_CAUSE = 2255,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CMS_ERROR_300_ME_FAILURE = 2300,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CMS_ERROR_301_SMS_SERVICE_OF_ME_RESERVED = 2301,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CMS_ERROR_302_OPERATION_NOT_ALLOWED = 2302,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CMS_ERROR_303_OPERATION_NOT_SUPPORTED = 2303,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CMS_ERROR_304_INVALID_PDU_MODE_PARAMETER = 2304,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CMS_ERROR_305_INVALID_TEXT_MODE_PARAMETER = 2305,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CMS_ERROR_310_SIM_NOT_INSERTED = 2310,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CMS_ERROR_311_SIM_PIN_REQUIRED = 2311,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CMS_ERROR_312_PH_SIM_PIN_REQUIRED = 2312,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CMS_ERROR_313_SIM_FAILURE = 2313,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CMS_ERROR_314_SIM_BUSY = 2314,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CMS_ERROR_315_SIM_WRONG = 2315,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CMS_ERROR_316_SIM_PUK_REQUIRED = 2316,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CMS_ERROR_317_SIM_PIN2_REQUIRED = 2317,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CMS_ERROR_318_SIM_PUK2_REQUIRED = 2318,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CMS_ERROR_320_MEMORY_FAILURE = 2320,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CMS_ERROR_321_INVALID_MEMORY_INDEX = 2321,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CMS_ERROR_322_MEMORY_FULL = 2322,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CMS_ERROR_330_SMSC_ADDRESS_UNKNOWN = 2330,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CMS_ERROR_331_NO_NETWORK_SERVICE = 2331,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CMS_ERROR_332_NETWORK_TIMEOUT = 2332,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CMS_ERROR_340_NO_CNMA_EXPECTED = 2340,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CMS_ERROR_500_UNKNOWN_ERROR = 2500,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CMS_ERROR_512_FAILED_TO_ABORT_COMMAND = 2512,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CMS_ERROR_513_ACM_RESET_NEEDED = 2513,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CMS_ERROR_514_INVALID_STATUS = 2514,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CMS_ERROR_515_DEVICE_BUSY_OR_INVALID_CHARACTER_IN_STRING = 2515,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CMS_ERROR_516_INVALID_LENGTH = 2516,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CMS_ERROR_517_INVALID_CHARACTER_IN_PDU = 2517,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CMS_ERROR_518_INVALID_PARAMETER = 2518,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CMS_ERROR_519_INVALID_LENGTH_OR_CHARACTER = 2519,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CMS_ERROR_520_INVALID_CHARACTER_IN_TEXT = 2520,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CMS_ERROR_521_TIMER_EXPIRED = 2521,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CMS_ERROR_522_OPERATION_TEMPORARY_NOT_ALLOWED = 2522,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CMS_ERROR_532_SIM_NOT_READY = 2532,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CMS_ERROR_534_CELL_BROADCAST_ERROR_UNKNOWN = 2534,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CMS_ERROR_535_PROTOCOL_STACK_BUSY = 2535,
	FSO_GSM_CONSTANTS_AT_RESPONSE_CMS_ERROR_538_INVALID_PARAMETER = 2538,
	FSO_GSM_CONSTANTS_AT_RESPONSE_EXT_ERROR_START = 3000,
	FSO_GSM_CONSTANTS_AT_RESPONSE_EXT_ERROR_0_INVALID_PARAMETERR = 3000
} FsoGsmConstantsAtResponse;

struct _FsoGsmAtCommandIface {
	GTypeInterface parent_iface;
	guint (*get_timeout) (FsoGsmAtCommand* self);
	guint (*get_retry) (FsoGsmAtCommand* self);
	gchar* (*get_prefix) (FsoGsmAtCommand* self);
	gchar* (*get_postfix) (FsoGsmAtCommand* self);
	gboolean (*is_valid_prefix) (FsoGsmAtCommand* self, const gchar* line);
	void (*parse) (FsoGsmAtCommand* self, const gchar* response, GError** error);
	void (*parseMulti) (FsoGsmAtCommand* self, gchar** response, int response_length1, GError** error);
	void (*parseTest) (FsoGsmAtCommand* self, const gchar* response, GError** error);
	gchar* (*encodeString) (FsoGsmAtCommand* self, const gchar* str);
	gchar* (*decodeString) (FsoGsmAtCommand* self, const gchar* str);
	FsoGsmConstantsAtResponse (*validate) (FsoGsmAtCommand* self, gchar** response, int response_length1);
	FsoGsmConstantsAtResponse (*validateTest) (FsoGsmAtCommand* self, gchar** response, int response_length1);
	FsoGsmConstantsAtResponse (*validateUrc) (FsoGsmAtCommand* self, const gchar* response);
	FsoGsmConstantsAtResponse (*validateUrcPdu) (FsoGsmAtCommand* self, gchar** response, int response_length1);
	FsoGsmConstantsAtResponse (*validateOk) (FsoGsmAtCommand* self, gchar** response, int response_length1);
	FsoGsmConstantsAtResponse (*validateMulti) (FsoGsmAtCommand* self, gchar** response, int response_length1);
};

struct _FsoGsmCallHandlerIface {
	GTypeInterface parent_iface;
	void (*handleIncomingCall) (FsoGsmCallHandler* self, FsoGsmCallInfo* call_info);
	void (*handleConnectingCall) (FsoGsmCallHandler* self, FsoGsmCallInfo* call_info);
	void (*handleEndingCall) (FsoGsmCallHandler* self, FsoGsmCallInfo* call_info);
	void (*addSupplementaryInformation) (FsoGsmCallHandler* self, const gchar* direction, const gchar* info);
	void (*activate) (FsoGsmCallHandler* self, gint id, GAsyncReadyCallback _callback_, gpointer _user_data_);
	void (*activate_finish) (FsoGsmCallHandler* self, GAsyncResult* _res_, GError** error);
	void (*initiate) (FsoGsmCallHandler* self, const gchar* number, const gchar* ctype, GAsyncReadyCallback _callback_, gpointer _user_data_);
	gint (*initiate_finish) (FsoGsmCallHandler* self, GAsyncResult* _res_, GError** error);
	void (*hold) (FsoGsmCallHandler* self, GAsyncReadyCallback _callback_, gpointer _user_data_);
	void (*hold_finish) (FsoGsmCallHandler* self, GAsyncResult* _res_, GError** error);
	void (*release) (FsoGsmCallHandler* self, gint id, GAsyncReadyCallback _callback_, gpointer _user_data_);
	void (*release_finish) (FsoGsmCallHandler* self, GAsyncResult* _res_, GError** error);
	void (*releaseAll) (FsoGsmCallHandler* self, GAsyncReadyCallback _callback_, gpointer _user_data_);
	void (*releaseAll_finish) (FsoGsmCallHandler* self, GAsyncResult* _res_, GError** error);
};

struct _FsoGsmISmsStorageIface {
	GTypeInterface parent_iface;
	void (*clean) (FsoGsmISmsStorage* self);
	gint (*addSms) (FsoGsmISmsStorage* self, struct sms* message);
	GeeArrayList* (*keys) (FsoGsmISmsStorage* self);
	void (*message) (FsoGsmISmsStorage* self, const gchar* key, gint index, FreeSmartphoneGSMSIMMessage* result);
	FreeSmartphoneGSMSIMMessage* (*messagebook) (FsoGsmISmsStorage* self, int* result_length1);
	guint16 (*lastReferenceNumber) (FsoGsmISmsStorage* self);
	guint16 (*increasingReferenceNumber) (FsoGsmISmsStorage* self);
	void (*storeTransactionIndizesForSentMessage) (FsoGsmISmsStorage* self, GeeArrayList* hexpdus);
	gint (*confirmReceivedMessage) (FsoGsmISmsStorage* self, gint netreference);
};

struct _FsoGsmSmsHandlerIface {
	GTypeInterface parent_iface;
	void (*handleIncomingSmsOnSim) (FsoGsmSmsHandler* self, guint index, GAsyncReadyCallback _callback_, gpointer _user_data_);
	void (*handleIncomingSmsOnSim_finish) (FsoGsmSmsHandler* self, GAsyncResult* _res_);
	void (*handleIncomingSms) (FsoGsmSmsHandler* self, const gchar* hexpdu, gint tpdulen, GAsyncReadyCallback _callback_, gpointer _user_data_);
	void (*handleIncomingSms_finish) (FsoGsmSmsHandler* self, GAsyncResult* _res_);
	void (*handleIncomingSmsReport) (FsoGsmSmsHandler* self, const gchar* hexpdu, gint tpdulen, GAsyncReadyCallback _callback_, gpointer _user_data_);
	void (*handleIncomingSmsReport_finish) (FsoGsmSmsHandler* self, GAsyncResult* _res_);
	guint16 (*lastReferenceNumber) (FsoGsmSmsHandler* self);
	guint16 (*nextReferenceNumber) (FsoGsmSmsHandler* self);
	GeeArrayList* (*formatTextMessage) (FsoGsmSmsHandler* self, const gchar* number, const gchar* contents, gboolean requestReport);
	void (*storeTransactionIndizesForSentMessage) (FsoGsmSmsHandler* self, GeeArrayList* hexpdus);
	FsoGsmISmsStorage* (*get_storage) (FsoGsmSmsHandler* self);
	void (*set_storage) (FsoGsmSmsHandler* self, FsoGsmISmsStorage* value);
};

struct _FsoGsmPhonebookHandlerIface {
	GTypeInterface parent_iface;
	void (*syncWithSim) (FsoGsmPhonebookHandler* self, GAsyncReadyCallback _callback_, gpointer _user_data_);
	void (*syncWithSim_finish) (FsoGsmPhonebookHandler* self, GAsyncResult* _res_);
	FsoGsmPhonebookStorage* (*get_storage) (FsoGsmPhonebookHandler* self);
	void (*set_storage) (FsoGsmPhonebookHandler* self, FsoGsmPhonebookStorage* value);
};

struct _FsoGsmWatchDogIface {
	GTypeInterface parent_iface;
	void (*check) (FsoGsmWatchDog* self);
	void (*resetUnlockMarker) (FsoGsmWatchDog* self);
};

struct _FsoGsmIPdpHandlerIface {
	GTypeInterface parent_iface;
	void (*activate) (FsoGsmIPdpHandler* self, GAsyncReadyCallback _callback_, gpointer _user_data_);
	void (*activate_finish) (FsoGsmIPdpHandler* self, GAsyncResult* _res_, GError** error);
	void (*deactivate) (FsoGsmIPdpHandler* self, GAsyncReadyCallback _callback_, gpointer _user_data_);
	void (*deactivate_finish) (FsoGsmIPdpHandler* self, GAsyncResult* _res_, GError** error);
	void (*statusUpdate) (FsoGsmIPdpHandler* self, const gchar* status, GHashTable* properties, GAsyncReadyCallback _callback_, gpointer _user_data_);
	void (*statusUpdate_finish) (FsoGsmIPdpHandler* self, GAsyncResult* _res_);
	void (*connectedWithNewDefaultRoute) (FsoGsmIPdpHandler* self, FsoGsmRouteInfo* route, GAsyncReadyCallback _callback_, gpointer _user_data_);
	void (*connectedWithNewDefaultRoute_finish) (FsoGsmIPdpHandler* self, GAsyncResult* _res_);
	void (*disconnected) (FsoGsmIPdpHandler* self);
	void (*syncStatus) (FsoGsmIPdpHandler* self, GAsyncReadyCallback _callback_, gpointer _user_data_);
	void (*syncStatus_finish) (FsoGsmIPdpHandler* self, GAsyncResult* _res_);
	FreeSmartphoneGSMContextStatus (*get_status) (FsoGsmIPdpHandler* self);
	void (*set_status) (FsoGsmIPdpHandler* self, FreeSmartphoneGSMContextStatus value);
	GHashTable* (*get_properties) (FsoGsmIPdpHandler* self);
	void (*set_properties) (FsoGsmIPdpHandler* self, GHashTable* value);
};

struct _FsoGsmModemIface {
	GTypeInterface parent_iface;
	void (*open) (FsoGsmModem* self, GAsyncReadyCallback _callback_, gpointer _user_data_);
	gboolean (*open_finish) (FsoGsmModem* self, GAsyncResult* _res_);
	void (*close) (FsoGsmModem* self, GAsyncReadyCallback _callback_, gpointer _user_data_);
	void (*close_finish) (FsoGsmModem* self, GAsyncResult* _res_);
	void (*suspend) (FsoGsmModem* self, GAsyncReadyCallback _callback_, gpointer _user_data_);
	gboolean (*suspend_finish) (FsoGsmModem* self, GAsyncResult* _res_);
	void (*resume) (FsoGsmModem* self, GAsyncReadyCallback _callback_, gpointer _user_data_);
	gboolean (*resume_finish) (FsoGsmModem* self, GAsyncResult* _res_);
	void (*injectResponse) (FsoGsmModem* self, const gchar* command, const gchar* channel, GError** error);
	void (*setFunctionality) (FsoGsmModem* self, const gchar* level, gboolean autoregister, const gchar* pin, GAsyncReadyCallback _callback_, gpointer _user_data_);
	void (*setFunctionality_finish) (FsoGsmModem* self, GAsyncResult* _res_, GError** error);
	void (*registerChannel) (FsoGsmModem* self, const gchar* name, FsoGsmChannel* channel);
	void (*advanceToState) (FsoGsmModem* self, FsoGsmModemStatus status, gboolean force);
	void (*advanceNetworkState) (FsoGsmModem* self, FsoGsmModemNetworkStatus status);
	FsoGsmAtCommandSequence* (*atCommandSequence) (FsoGsmModem* self, const gchar* channel, const gchar* purpose);
	gpointer (*createMediator) (FsoGsmModem* self, GType t_type, GBoxedCopyFunc t_dup_func, GDestroyNotify t_destroy_func, GError** error);
	gpointer (*createAtCommand) (FsoGsmModem* self, GType t_type, GBoxedCopyFunc t_dup_func, GDestroyNotify t_destroy_func, const gchar* command);
	gpointer (*theDevice) (FsoGsmModem* self, GType t_type, GBoxedCopyFunc t_dup_func, GDestroyNotify t_destroy_func);
	gchar* (*allocateDataPort) (FsoGsmModem* self);
	void (*releaseDataPort) (FsoGsmModem* self);
	void (*processAtCommandAsync) (FsoGsmModem* self, FsoGsmAtCommand* command, const gchar* request, gint retries, GAsyncReadyCallback _callback_, gpointer _user_data_);
	gchar** (*processAtCommandAsync_finish) (FsoGsmModem* self, GAsyncResult* _res_, int* result_length1);
	void (*processAtPduCommandAsync) (FsoGsmModem* self, FsoGsmAtCommand* command, const gchar* request, gint retries, GAsyncReadyCallback _callback_, gpointer _user_data_);
	gchar** (*processAtPduCommandAsync_finish) (FsoGsmModem* self, GAsyncResult* _res_, int* result_length1);
	void (*sendAtCommand) (FsoGsmModem* self, FsoGsmAtCommand* command, const gchar* request, gint retries);
	FsoGsmChannel* (*channel) (FsoGsmModem* self, const gchar* category);
	FsoGsmModemStatus (*status) (FsoGsmModem* self);
	FsoGsmModemNetworkStatus (*network_status) (FsoGsmModem* self);
	FreeSmartphoneGSMDeviceStatus (*externalStatus) (FsoGsmModem* self);
	FsoGsmModemData* (*data) (FsoGsmModem* self);
	void (*registerAtCommandSequence) (FsoGsmModem* self, const gchar* channel, const gchar* purpose, FsoGsmAtCommandSequence* sequence);
	gboolean (*isAlive) (FsoGsmModem* self);
	GObject* (*get_parent) (FsoGsmModem* self);
	void (*set_parent) (FsoGsmModem* self, GObject* value);
	FsoGsmCallHandler* (*get_callhandler) (FsoGsmModem* self);
	void (*set_callhandler) (FsoGsmModem* self, FsoGsmCallHandler* value);
	FsoGsmSmsHandler* (*get_smshandler) (FsoGsmModem* self);
	void (*set_smshandler) (FsoGsmModem* self, FsoGsmSmsHandler* value);
	FsoGsmPhonebookHandler* (*get_pbhandler) (FsoGsmModem* self);
	void (*set_pbhandler) (FsoGsmModem* self, FsoGsmPhonebookHandler* value);
	FsoGsmWatchDog* (*get_watchdog) (FsoGsmModem* self);
	void (*set_watchdog) (FsoGsmModem* self, FsoGsmWatchDog* value);
	FsoGsmIPdpHandler* (*get_pdphandler) (FsoGsmModem* self);
	void (*set_pdphandler) (FsoGsmModem* self, FsoGsmIPdpHandler* value);
};

struct _FsoGsmAbstractAtCommand {
	GObject parent_instance;
	FsoGsmAbstractAtCommandPrivate * priv;
	GRegex* re;
	GRegex* tere;
	GMatchInfo* mi;
	gchar** prefix;
	gint prefix_length1;
	gint length;
};

struct _FsoGsmAbstractAtCommandClass {
	GObjectClass parent_class;
	void (*parse) (FsoGsmAbstractAtCommand* self, const gchar* response, GError** error);
	void (*parseTest) (FsoGsmAbstractAtCommand* self, const gchar* response, GError** error);
	void (*parseMulti) (FsoGsmAbstractAtCommand* self, gchar** response, int response_length1, GError** error);
	FsoGsmConstantsAtResponse (*validateOk) (FsoGsmAbstractAtCommand* self, gchar** response, int response_length1);
	FsoGsmConstantsAtResponse (*validate) (FsoGsmAbstractAtCommand* self, gchar** response, int response_length1);
	FsoGsmConstantsAtResponse (*validateTest) (FsoGsmAbstractAtCommand* self, gchar** response, int response_length1);
	FsoGsmConstantsAtResponse (*validateMulti) (FsoGsmAbstractAtCommand* self, gchar** response, int response_length1);
	FsoGsmConstantsAtResponse (*validateUrc) (FsoGsmAbstractAtCommand* self, const gchar* response);
	FsoGsmConstantsAtResponse (*validateUrcPdu) (FsoGsmAbstractAtCommand* self, gchar** response, int response_length1);
	guint (*get_timeout) (FsoGsmAbstractAtCommand* self);
	guint (*get_retry) (FsoGsmAbstractAtCommand* self);
	gchar* (*get_prefix) (FsoGsmAbstractAtCommand* self);
	gchar* (*get_postfix) (FsoGsmAbstractAtCommand* self);
};

struct _FsoGsmPlusCSQ {
	FsoGsmAbstractAtCommand parent_instance;
	FsoGsmPlusCSQPrivate * priv;
	gint signal;
};

struct _FsoGsmPlusCSQClass {
	FsoGsmAbstractAtCommandClass parent_class;
};

struct _FsoGsmAtNetworkGetSignalStrengthRunData {
	int _state_;
	GObject* _source_object_;
	GAsyncResult* _res_;
	GSimpleAsyncResult* _async_result;
	FsoGsmAtNetworkGetSignalStrength* self;
	FsoGsmModem* _tmp0_;
	gpointer _tmp1_;
	FsoGsmPlusCSQ* cmd;
	FsoGsmModem* _tmp2_;
	gchar* _tmp3_;
	gchar* _tmp4_;
	gint _tmp5_;
	gchar** _tmp6_;
	gchar** _tmp7_;
	gint _tmp7__length1;
	gchar** response;
	gint response_length1;
	gint _response_size_;
	gint _tmp8_;
	GError * _inner_error_;
};

struct _FsoGsmNetworkGetStatus {
	FsoGsmAbstractMediator parent_instance;
	FsoGsmNetworkGetStatusPrivate * priv;
};

struct _FsoGsmNetworkGetStatusClass {
	FsoGsmAbstractMediatorClass parent_class;
	void (*run) (FsoGsmNetworkGetStatus* self, GAsyncReadyCallback _callback_, gpointer _user_data_);
	void (*run_finish) (FsoGsmNetworkGetStatus* self, GAsyncResult* _res_, GError** error);
};

struct _FsoGsmAtNetworkGetStatus {
	FsoGsmNetworkGetStatus parent_instance;
	FsoGsmAtNetworkGetStatusPrivate * priv;
};

struct _FsoGsmAtNetworkGetStatusClass {
	FsoGsmNetworkGetStatusClass parent_class;
};

struct _FsoGsmPlusCREG {
	FsoGsmAbstractAtCommand parent_instance;
	FsoGsmPlusCREGPrivate * priv;
	gint mode;
	gint status;
	gchar* lac;
	gchar* cid;
};

struct _FsoGsmPlusCREGClass {
	FsoGsmAbstractAtCommandClass parent_class;
};

typedef enum  {
	FSO_GSM_PLUS_COPS_FORMAT_ALPHANUMERIC = 0,
	FSO_GSM_PLUS_COPS_FORMAT_ALPHANUMERIC_SHORT = 1,
	FSO_GSM_PLUS_COPS_FORMAT_NUMERIC = 2
} FsoGsmPlusCOPSFormat;

struct _FsoGsmPlusCOPS {
	FsoGsmAbstractAtCommand parent_instance;
	FsoGsmPlusCOPSPrivate * priv;
	gint format;
	gint mode;
	gchar* oper;
	gchar* act;
	FreeSmartphoneGSMNetworkProvider* providers;
	gint providers_length1;
};

struct _FsoGsmPlusCOPSClass {
	FsoGsmAbstractAtCommandClass parent_class;
};

struct _FsoGsmPlusCGREG {
	FsoGsmAbstractAtCommand parent_instance;
	FsoGsmPlusCGREGPrivate * priv;
	gint mode;
	gint status;
	gchar* lac;
	gchar* cid;
};

struct _FsoGsmPlusCGREGClass {
	FsoGsmAbstractAtCommandClass parent_class;
};

struct _FsoGsmAtNetworkGetStatusRunData {
	int _state_;
	GObject* _source_object_;
	GAsyncResult* _res_;
	GSimpleAsyncResult* _async_result;
	FsoGsmAtNetworkGetStatus* self;
	GHashFunc _tmp0_;
	GEqualFunc _tmp1_;
	GHashTable* _tmp2_;
	GHashTable* _tmp3_;
	GVariant* strvalue;
	GVariant* intvalue;
	GHashTable* _tmp4_;
	GHashTable* _tmp5_;
	gchar* _tmp6_;
	GVariant* _tmp7_;
	GHashTable* _tmp8_;
	GHashTable* _tmp9_;
	gchar* _tmp10_;
	GVariant* _tmp11_;
	GHashTable* _tmp12_;
	GHashTable* _tmp13_;
	gchar* _tmp14_;
	GVariant* _tmp15_;
	FsoGsmModem* _tmp16_;
	gpointer _tmp17_;
	FsoGsmPlusCSQ* csq;
	FsoGsmModem* _tmp18_;
	FsoGsmPlusCSQ* _tmp19_;
	FsoGsmPlusCSQ* _tmp20_;
	gchar* _tmp21_;
	gchar* _tmp22_;
	gint _tmp23_;
	gchar** _tmp24_;
	gchar** _tmp25_;
	gint _tmp25__length1;
	gchar** response;
	gint response_length1;
	gint _response_size_;
	FsoGsmPlusCSQ* _tmp26_;
	gchar** _tmp27_;
	gint _tmp27__length1;
	FsoGsmConstantsAtResponse _tmp28_;
	FsoGsmPlusCSQ* _tmp29_;
	gint _tmp30_;
	GVariant* _tmp31_;
	GHashTable* _tmp32_;
	GHashTable* _tmp33_;
	gchar* _tmp34_;
	GVariant* _tmp35_;
	GVariant* _tmp36_;
	FsoGsmModem* _tmp37_;
	gpointer _tmp38_;
	FsoGsmPlusCREG* creg;
	FsoGsmModem* _tmp39_;
	FsoGsmPlusCREG* _tmp40_;
	FsoGsmPlusCREG* _tmp41_;
	gchar* _tmp42_;
	gchar* _tmp43_;
	gint _tmp44_;
	gchar** _tmp45_;
	gchar** _tmp46_;
	gint _tmp46__length1;
	gchar** cregResult;
	gint cregResult_length1;
	gint _cregResult_size_;
	FsoGsmPlusCREG* _tmp47_;
	gchar** _tmp48_;
	gint _tmp48__length1;
	FsoGsmConstantsAtResponse _tmp49_;
	FsoGsmConstants* _tmp50_;
	FsoGsmConstants* _tmp51_;
	FsoGsmPlusCREG* _tmp52_;
	gint _tmp53_;
	gchar* _tmp54_;
	GVariant* _tmp55_;
	GHashTable* _tmp56_;
	GHashTable* _tmp57_;
	gchar* _tmp58_;
	GVariant* _tmp59_;
	GVariant* _tmp60_;
	FsoGsmPlusCREG* _tmp61_;
	const gchar* _tmp62_;
	GHashTable* _tmp63_;
	GHashTable* _tmp64_;
	gchar* _tmp65_;
	FsoGsmPlusCREG* _tmp66_;
	const gchar* _tmp67_;
	GVariant* _tmp68_;
	GVariant* _tmp69_;
	FsoGsmPlusCREG* _tmp70_;
	const gchar* _tmp71_;
	GHashTable* _tmp72_;
	GHashTable* _tmp73_;
	gchar* _tmp74_;
	FsoGsmPlusCREG* _tmp75_;
	const gchar* _tmp76_;
	GVariant* _tmp77_;
	GVariant* _tmp78_;
	FsoGsmModem* _tmp79_;
	gpointer _tmp80_;
	FsoGsmPlusCOPS* cops;
	FsoGsmModem* _tmp81_;
	FsoGsmPlusCOPS* _tmp82_;
	FsoGsmPlusCOPS* _tmp83_;
	gchar* _tmp84_;
	gchar* _tmp85_;
	gint _tmp86_;
	gchar** _tmp87_;
	gchar** _tmp88_;
	gint _tmp88__length1;
	gchar** copsResult3;
	gint copsResult3_length1;
	gint _copsResult3_size_;
	FsoGsmPlusCOPS* _tmp89_;
	gchar** _tmp90_;
	gint _tmp90__length1;
	FsoGsmConstantsAtResponse _tmp91_;
	FsoGsmPlusCOPS* _tmp92_;
	const gchar* _tmp93_;
	GVariant* _tmp94_;
	GHashTable* _tmp95_;
	GHashTable* _tmp96_;
	gchar* _tmp97_;
	GVariant* _tmp98_;
	GVariant* _tmp99_;
	FsoGsmModem* _tmp100_;
	FsoGsmPlusCOPS* _tmp101_;
	FsoGsmPlusCOPS* _tmp102_;
	gchar* _tmp103_;
	gchar* _tmp104_;
	gint _tmp105_;
	gchar** _tmp106_;
	gchar** _tmp107_;
	gint _tmp107__length1;
	gchar** copsResult;
	gint copsResult_length1;
	gint _copsResult_size_;
	FsoGsmPlusCOPS* _tmp108_;
	gchar** _tmp109_;
	gint _tmp109__length1;
	FsoGsmConstantsAtResponse _tmp110_;
	FsoGsmConstants* _tmp111_;
	FsoGsmConstants* _tmp112_;
	FsoGsmPlusCOPS* _tmp113_;
	gint _tmp114_;
	gchar* _tmp115_;
	GVariant* _tmp116_;
	GHashTable* _tmp117_;
	GHashTable* _tmp118_;
	gchar* _tmp119_;
	GVariant* _tmp120_;
	GVariant* _tmp121_;
	FsoGsmPlusCOPS* _tmp122_;
	const gchar* _tmp123_;
	GVariant* _tmp124_;
	GVariant* _tmp125_;
	GHashTable* _tmp126_;
	GHashTable* _tmp127_;
	gchar* _tmp128_;
	GVariant* _tmp129_;
	GVariant* _tmp130_;
	GHashTable* _tmp131_;
	GHashTable* _tmp132_;
	gchar* _tmp133_;
	GVariant* _tmp134_;
	GVariant* _tmp135_;
	GHashTable* _tmp136_;
	GHashTable* _tmp137_;
	gchar* _tmp138_;
	GVariant* _tmp139_;
	GVariant* _tmp140_;
	FsoGsmPlusCOPS* _tmp141_;
	const gchar* _tmp142_;
	GVariant* _tmp143_;
	GHashTable* _tmp144_;
	GHashTable* _tmp145_;
	gchar* _tmp146_;
	GVariant* _tmp147_;
	GVariant* _tmp148_;
	FsoGsmPlusCOPS* _tmp149_;
	gchar** _tmp150_;
	gint _tmp150__length1;
	FsoGsmConstantsAtResponse _tmp151_;
	GHashTable* _tmp152_;
	GHashTable* _tmp153_;
	gchar* _tmp154_;
	GVariant* _tmp155_;
	FsoGsmModem* _tmp156_;
	FsoGsmPlusCOPS* _tmp157_;
	FsoGsmPlusCOPS* _tmp158_;
	gchar* _tmp159_;
	gchar* _tmp160_;
	gint _tmp161_;
	gchar** _tmp162_;
	gchar** _tmp163_;
	gint _tmp163__length1;
	gchar** copsResult2;
	gint copsResult2_length1;
	gint _copsResult2_size_;
	FsoGsmPlusCOPS* _tmp164_;
	gchar** _tmp165_;
	gint _tmp165__length1;
	FsoGsmConstantsAtResponse _tmp166_;
	FsoGsmPlusCOPS* _tmp167_;
	const gchar* _tmp168_;
	FsoGsmPlusCOPS* _tmp169_;
	const gchar* _tmp170_;
	GVariant* _tmp171_;
	GHashTable* _tmp172_;
	GHashTable* _tmp173_;
	gchar* _tmp174_;
	GVariant* _tmp175_;
	GVariant* _tmp176_;
	GHashTable* _tmp177_;
	GHashTable* _tmp178_;
	gchar* _tmp179_;
	GVariant* _tmp180_;
	GVariant* _tmp181_;
	GHashTable* _tmp182_;
	GHashTable* _tmp183_;
	gconstpointer _tmp184_;
	GHashTable* _tmp185_;
	GHashTable* _tmp186_;
	gconstpointer _tmp187_;
	GVariant* _tmp188_;
	GVariant* code;
	GVariant* _tmp189_;
	GVariant* _tmp190_;
	const gchar* _tmp191_;
	gchar* _tmp192_;
	gchar* provider;
	GHashTable* _tmp193_;
	GHashTable* _tmp194_;
	gchar* _tmp195_;
	const gchar* _tmp196_;
	GVariant* _tmp197_;
	GHashTable* _tmp198_;
	GHashTable* _tmp199_;
	gchar* _tmp200_;
	const gchar* _tmp201_;
	GVariant* _tmp202_;
	GHashTable* _tmp203_;
	GHashTable* _tmp204_;
	gchar* _tmp205_;
	const gchar* _tmp206_;
	GVariant* _tmp207_;
	FsoGsmModem* _tmp208_;
	gpointer _tmp209_;
	FsoGsmPlusCGREG* cgreg;
	FsoGsmModem* _tmp210_;
	FsoGsmPlusCGREG* _tmp211_;
	FsoGsmPlusCGREG* _tmp212_;
	gchar* _tmp213_;
	gchar* _tmp214_;
	gint _tmp215_;
	gchar** _tmp216_;
	gchar** _tmp217_;
	gint _tmp217__length1;
	gchar** cgregResult;
	gint cgregResult_length1;
	gint _cgregResult_size_;
	FsoGsmPlusCGREG* _tmp218_;
	gchar** _tmp219_;
	gint _tmp219__length1;
	FsoGsmConstantsAtResponse _tmp220_;
	FsoGsmModem* _tmp221_;
	FsoGsmPlusCGREG* _tmp222_;
	FsoGsmPlusCGREG* _tmp223_;
	FsoGsmPlusCGREG* _tmp224_;
	gint _tmp225_;
	gchar* _tmp226_;
	gchar* _tmp227_;
	gint _tmp228_;
	gchar** _tmp229_;
	gchar** _tmp230_;
	gint _tmp230__length1;
	gchar** cgregResult2;
	gint cgregResult2_length1;
	gint _cgregResult2_size_;
	FsoGsmPlusCGREG* _tmp231_;
	gchar** _tmp232_;
	gint _tmp232__length1;
	FsoGsmConstantsAtResponse _tmp233_;
	FsoGsmConstants* _tmp234_;
	FsoGsmConstants* _tmp235_;
	FsoGsmPlusCGREG* _tmp236_;
	gint _tmp237_;
	gchar* _tmp238_;
	GVariant* _tmp239_;
	GHashTable* _tmp240_;
	GHashTable* _tmp241_;
	gchar* _tmp242_;
	GVariant* _tmp243_;
	GVariant* _tmp244_;
	FsoGsmPlusCGREG* _tmp245_;
	const gchar* _tmp246_;
	GVariant* _tmp247_;
	GHashTable* _tmp248_;
	GHashTable* _tmp249_;
	gchar* _tmp250_;
	GVariant* _tmp251_;
	GVariant* _tmp252_;
	FsoGsmPlusCGREG* _tmp253_;
	const gchar* _tmp254_;
	GVariant* _tmp255_;
	GHashTable* _tmp256_;
	GHashTable* _tmp257_;
	gchar* _tmp258_;
	GVariant* _tmp259_;
	GVariant* _tmp260_;
};

struct _FsoGsmNetworkListProviders {
	FsoGsmAbstractMediator parent_instance;
	FsoGsmNetworkListProvidersPrivate * priv;
};

struct _FsoGsmNetworkListProvidersClass {
	FsoGsmAbstractMediatorClass parent_class;
	void (*run) (FsoGsmNetworkListProviders* self, GAsyncReadyCallback _callback_, gpointer _user_data_);
	void (*run_finish) (FsoGsmNetworkListProviders* self, GAsyncResult* _res_, GError** error);
};

struct _FsoGsmAtNetworkListProviders {
	FsoGsmNetworkListProviders parent_instance;
	FsoGsmAtNetworkListProvidersPrivate * priv;
};

struct _FsoGsmAtNetworkListProvidersClass {
	FsoGsmNetworkListProvidersClass parent_class;
};

struct _FsoGsmAtNetworkListProvidersRunData {
	int _state_;
	GObject* _source_object_;
	GAsyncResult* _res_;
	GSimpleAsyncResult* _async_result;
	FsoGsmAtNetworkListProviders* self;
	FsoGsmModem* _tmp0_;
	gpointer _tmp1_;
	FsoGsmPlusCOPS* cmd;
	FsoGsmModem* _tmp2_;
	gchar* _tmp3_;
	gchar* _tmp4_;
	gint _tmp5_;
	gchar** _tmp6_;
	gchar** _tmp7_;
	gint _tmp7__length1;
	gchar** response;
	gint response_length1;
	gint _response_size_;
	FreeSmartphoneGSMNetworkProvider* _tmp8_;
	gint _tmp8__length1;
	GError * _inner_error_;
};

struct _FsoGsmNetworkRegister {
	FsoGsmAbstractMediator parent_instance;
	FsoGsmNetworkRegisterPrivate * priv;
};

struct _FsoGsmNetworkRegisterClass {
	FsoGsmAbstractMediatorClass parent_class;
	void (*run) (FsoGsmNetworkRegister* self, GAsyncReadyCallback _callback_, gpointer _user_data_);
	void (*run_finish) (FsoGsmNetworkRegister* self, GAsyncResult* _res_, GError** error);
};

struct _FsoGsmAtNetworkRegister {
	FsoGsmNetworkRegister parent_instance;
	FsoGsmAtNetworkRegisterPrivate * priv;
};

struct _FsoGsmAtNetworkRegisterClass {
	FsoGsmNetworkRegisterClass parent_class;
};

typedef enum  {
	FSO_GSM_PLUS_COPS_ACTION_REGISTER_WITH_BEST_PROVIDER = 0,
	FSO_GSM_PLUS_COPS_ACTION_REGISTER_WITH_SPECIFIC_PROVIDER = 1,
	FSO_GSM_PLUS_COPS_ACTION_UNREGISTER = 2,
	FSO_GSM_PLUS_COPS_ACTION_SET_FORMAT = 3
} FsoGsmPlusCOPSAction;

struct _FsoGsmAtNetworkRegisterRunData {
	int _state_;
	GObject* _source_object_;
	GAsyncResult* _res_;
	GSimpleAsyncResult* _async_result;
	FsoGsmAtNetworkRegister* self;
	FsoGsmModem* _tmp0_;
	gpointer _tmp1_;
	FsoGsmPlusCOPS* cmd;
	FsoGsmModem* _tmp2_;
	gchar* _tmp3_;
	gchar* _tmp4_;
	gint _tmp5_;
	gchar** _tmp6_;
	gchar** _tmp7_;
	gint _tmp7__length1;
	gchar** response;
	gint response_length1;
	gint _response_size_;
	GError * _inner_error_;
};

struct _FsoGsmNetworkUnregister {
	FsoGsmAbstractMediator parent_instance;
	FsoGsmNetworkUnregisterPrivate * priv;
};

struct _FsoGsmNetworkUnregisterClass {
	FsoGsmAbstractMediatorClass parent_class;
	void (*run) (FsoGsmNetworkUnregister* self, GAsyncReadyCallback _callback_, gpointer _user_data_);
	void (*run_finish) (FsoGsmNetworkUnregister* self, GAsyncResult* _res_, GError** error);
};

struct _FsoGsmAtNetworkUnregister {
	FsoGsmNetworkUnregister parent_instance;
	FsoGsmAtNetworkUnregisterPrivate * priv;
};

struct _FsoGsmAtNetworkUnregisterClass {
	FsoGsmNetworkUnregisterClass parent_class;
};

struct _FsoGsmAtNetworkUnregisterRunData {
	int _state_;
	GObject* _source_object_;
	GAsyncResult* _res_;
	GSimpleAsyncResult* _async_result;
	FsoGsmAtNetworkUnregister* self;
	FsoGsmModem* _tmp0_;
	gpointer _tmp1_;
	FsoGsmPlusCOPS* cmd;
	FsoGsmModem* _tmp2_;
	gchar* _tmp3_;
	gchar* _tmp4_;
	gint _tmp5_;
	gchar** _tmp6_;
	gchar** _tmp7_;
	gint _tmp7__length1;
	gchar** response;
	gint response_length1;
	gint _response_size_;
	GError * _inner_error_;
};

struct _FsoGsmNetworkSendUssdRequest {
	FsoGsmAbstractMediator parent_instance;
	FsoGsmNetworkSendUssdRequestPrivate * priv;
};

struct _FsoGsmNetworkSendUssdRequestClass {
	FsoGsmAbstractMediatorClass parent_class;
	void (*run) (FsoGsmNetworkSendUssdRequest* self, const gchar* request, GAsyncReadyCallback _callback_, gpointer _user_data_);
	void (*run_finish) (FsoGsmNetworkSendUssdRequest* self, GAsyncResult* _res_, GError** error);
};

struct _FsoGsmAtNetworkSendUssdRequest {
	FsoGsmNetworkSendUssdRequest parent_instance;
	FsoGsmAtNetworkSendUssdRequestPrivate * priv;
};

struct _FsoGsmAtNetworkSendUssdRequestClass {
	FsoGsmNetworkSendUssdRequestClass parent_class;
};

struct _FsoGsmAtNetworkSendUssdRequestRunData {
	int _state_;
	GObject* _source_object_;
	GAsyncResult* _res_;
	GSimpleAsyncResult* _async_result;
	FsoGsmAtNetworkSendUssdRequest* self;
	gchar* request;
	FsoGsmModem* _tmp0_;
	gpointer _tmp1_;
	FsoGsmPlusCUSD* cmd;
	FsoGsmModem* _tmp2_;
	const gchar* _tmp3_;
	gchar* _tmp4_;
	gchar* _tmp5_;
	gint _tmp6_;
	gchar** _tmp7_;
	gchar** _tmp8_;
	gint _tmp8__length1;
	gchar** response;
	gint response_length1;
	gint _response_size_;
	GError * _inner_error_;
};

struct _FsoGsmNetworkGetCallingId {
	FsoGsmAbstractMediator parent_instance;
	FsoGsmNetworkGetCallingIdPrivate * priv;
};

struct _FsoGsmNetworkGetCallingIdClass {
	FsoGsmAbstractMediatorClass parent_class;
	void (*run) (FsoGsmNetworkGetCallingId* self, GAsyncReadyCallback _callback_, gpointer _user_data_);
	void (*run_finish) (FsoGsmNetworkGetCallingId* self, GAsyncResult* _res_, GError** error);
};

struct _FsoGsmAtNetworkGetCallingId {
	FsoGsmNetworkGetCallingId parent_instance;
	FsoGsmAtNetworkGetCallingIdPrivate * priv;
};

struct _FsoGsmAtNetworkGetCallingIdClass {
	FsoGsmNetworkGetCallingIdClass parent_class;
};

struct _FsoGsmSimpleAtCommand {
	FsoGsmAbstractAtCommand parent_instance;
	FsoGsmSimpleAtCommandPrivate * priv;
	gpointer value;
	gchar* righthandside;
	gint min;
	gint max;
};

struct _FsoGsmSimpleAtCommandClass {
	FsoGsmAbstractAtCommandClass parent_class;
};

struct _FsoGsmAtNetworkGetCallingIdRunData {
	int _state_;
	GObject* _source_object_;
	GAsyncResult* _res_;
	GSimpleAsyncResult* _async_result;
	FsoGsmAtNetworkGetCallingId* self;
	FsoGsmModem* _tmp0_;
	gpointer _tmp1_;
	FsoGsmPlusCLIR* cmd;
	FsoGsmModem* _tmp2_;
	gchar* _tmp3_;
	gchar* _tmp4_;
	gint _tmp5_;
	gchar** _tmp6_;
	gchar** _tmp7_;
	gint _tmp7__length1;
	gchar** response;
	gint response_length1;
	gint _response_size_;
	gconstpointer _tmp8_;
	GError * _inner_error_;
};

struct _FsoGsmNetworkSetCallingId {
	FsoGsmAbstractMediator parent_instance;
	FsoGsmNetworkSetCallingIdPrivate * priv;
};

struct _FsoGsmNetworkSetCallingIdClass {
	FsoGsmAbstractMediatorClass parent_class;
	void (*run) (FsoGsmNetworkSetCallingId* self, FreeSmartphoneGSMCallingIdentificationStatus status, GAsyncReadyCallback _callback_, gpointer _user_data_);
	void (*run_finish) (FsoGsmNetworkSetCallingId* self, GAsyncResult* _res_, GError** error);
};

struct _FsoGsmAtNetworkSetCallingId {
	FsoGsmNetworkSetCallingId parent_instance;
	FsoGsmAtNetworkSetCallingIdPrivate * priv;
};

struct _FsoGsmAtNetworkSetCallingIdClass {
	FsoGsmNetworkSetCallingIdClass parent_class;
};

struct _FsoGsmAtNetworkSetCallingIdRunData {
	int _state_;
	GObject* _source_object_;
	GAsyncResult* _res_;
	GSimpleAsyncResult* _async_result;
	FsoGsmAtNetworkSetCallingId* self;
	FreeSmartphoneGSMCallingIdentificationStatus status;
	FsoGsmModem* _tmp0_;
	gpointer _tmp1_;
	FsoGsmPlusCLIR* cmd;
	FsoGsmModem* _tmp2_;
	FreeSmartphoneGSMCallingIdentificationStatus _tmp3_;
	gchar* _tmp4_;
	gchar* _tmp5_;
	gint _tmp6_;
	gchar** _tmp7_;
	gchar** _tmp8_;
	gint _tmp8__length1;
	gchar** response;
	gint response_length1;
	gint _response_size_;
	GError * _inner_error_;
};


static gpointer fso_gsm_at_network_get_signal_strength_parent_class = NULL;
extern FsoGsmModem* fso_gsm_theModem;
static gpointer fso_gsm_at_network_get_status_parent_class = NULL;
static gpointer fso_gsm_at_network_list_providers_parent_class = NULL;
static gpointer fso_gsm_at_network_register_parent_class = NULL;
static gpointer fso_gsm_at_network_unregister_parent_class = NULL;
static gpointer fso_gsm_at_network_send_ussd_request_parent_class = NULL;
static gpointer fso_gsm_at_network_get_calling_id_parent_class = NULL;
static gpointer fso_gsm_at_network_set_calling_id_parent_class = NULL;

GType fso_gsm_mediator_get_type (void) G_GNUC_CONST;
GType fso_gsm_abstract_mediator_get_type (void) G_GNUC_CONST;
GType fso_gsm_network_get_signal_strength_get_type (void) G_GNUC_CONST;
GType fso_gsm_at_network_get_signal_strength_get_type (void) G_GNUC_CONST;
enum  {
	FSO_GSM_AT_NETWORK_GET_SIGNAL_STRENGTH_DUMMY_PROPERTY
};
static void fso_gsm_at_network_get_signal_strength_real_run_data_free (gpointer _data);
static void fso_gsm_at_network_get_signal_strength_real_run (FsoGsmNetworkGetSignalStrength* base, GAsyncReadyCallback _callback_, gpointer _user_data_);
static gboolean fso_gsm_at_network_get_signal_strength_real_run_co (FsoGsmAtNetworkGetSignalStrengthRunData* _data_);
GType fso_gsm_channel_get_type (void) G_GNUC_CONST;
GType fso_gsm_modem_status_get_type (void) G_GNUC_CONST;
GType fso_gsm_modem_network_status_get_type (void) G_GNUC_CONST;
gpointer fso_gsm_at_command_sequence_ref (gpointer instance);
void fso_gsm_at_command_sequence_unref (gpointer instance);
GParamSpec* fso_gsm_param_spec_at_command_sequence (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
void fso_gsm_value_set_at_command_sequence (GValue* value, gpointer v_object);
void fso_gsm_value_take_at_command_sequence (GValue* value, gpointer v_object);
gpointer fso_gsm_value_get_at_command_sequence (const GValue* value);
GType fso_gsm_at_command_sequence_get_type (void) G_GNUC_CONST;
GType fso_gsm_at_command_queue_command_get_type (void) G_GNUC_CONST;
GQuark fso_gsm_at_command_error_quark (void);
GType fso_gsm_constants_at_response_get_type (void) G_GNUC_CONST;
GType fso_gsm_at_command_get_type (void) G_GNUC_CONST;
GType fso_gsm_modem_data_get_type (void) G_GNUC_CONST;
GType fso_gsm_call_info_get_type (void) G_GNUC_CONST;
GType fso_gsm_call_handler_get_type (void) G_GNUC_CONST;
gpointer wrap_hex_pdu_ref (gpointer instance);
void wrap_hex_pdu_unref (gpointer instance);
GParamSpec* param_spec_wrap_hex_pdu (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
void value_set_wrap_hex_pdu (GValue* value, gpointer v_object);
void value_take_wrap_hex_pdu (GValue* value, gpointer v_object);
gpointer value_get_wrap_hex_pdu (const GValue* value);
GType wrap_hex_pdu_get_type (void) G_GNUC_CONST;
GType fso_gsm_isms_storage_get_type (void) G_GNUC_CONST;
GType fso_gsm_sms_handler_get_type (void) G_GNUC_CONST;
GType fso_gsm_phonebook_storage_get_type (void) G_GNUC_CONST;
GType fso_gsm_phonebook_handler_get_type (void) G_GNUC_CONST;
GType fso_gsm_watch_dog_get_type (void) G_GNUC_CONST;
gpointer fso_gsm_route_info_ref (gpointer instance);
void fso_gsm_route_info_unref (gpointer instance);
GParamSpec* fso_gsm_param_spec_route_info (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
void fso_gsm_value_set_route_info (GValue* value, gpointer v_object);
void fso_gsm_value_take_route_info (GValue* value, gpointer v_object);
gpointer fso_gsm_value_get_route_info (const GValue* value);
GType fso_gsm_route_info_get_type (void) G_GNUC_CONST;
GType fso_gsm_ipdp_handler_get_type (void) G_GNUC_CONST;
GType fso_gsm_modem_get_type (void) G_GNUC_CONST;
gpointer fso_gsm_modem_createAtCommand (FsoGsmModem* self, GType t_type, GBoxedCopyFunc t_dup_func, GDestroyNotify t_destroy_func, const gchar* command);
GType fso_gsm_abstract_at_command_get_type (void) G_GNUC_CONST;
GType fso_gsm_plus_csq_get_type (void) G_GNUC_CONST;
void fso_gsm_modem_processAtCommandAsync (FsoGsmModem* self, FsoGsmAtCommand* command, const gchar* request, gint retries, GAsyncReadyCallback _callback_, gpointer _user_data_);
gchar** fso_gsm_modem_processAtCommandAsync_finish (FsoGsmModem* self, GAsyncResult* _res_, int* result_length1);
gchar* fso_gsm_plus_csq_execute (FsoGsmPlusCSQ* self);
#define FSO_GSM_MODEM_DEFAULT_RETRIES 3
static void fso_gsm_at_network_get_signal_strength_run_ready (GObject* source_object, GAsyncResult* _res_, gpointer _user_data_);
void fso_gsm_checkResponseValid (FsoGsmAtCommand* command, gchar** response, int response_length1, GError** error);
void fso_gsm_network_get_signal_strength_set_signal (FsoGsmNetworkGetSignalStrength* self, gint value);
FsoGsmAtNetworkGetSignalStrength* fso_gsm_at_network_get_signal_strength_new (void);
FsoGsmAtNetworkGetSignalStrength* fso_gsm_at_network_get_signal_strength_construct (GType object_type);
FsoGsmNetworkGetSignalStrength* fso_gsm_network_get_signal_strength_construct (GType object_type);
GType fso_gsm_network_get_status_get_type (void) G_GNUC_CONST;
GType fso_gsm_at_network_get_status_get_type (void) G_GNUC_CONST;
enum  {
	FSO_GSM_AT_NETWORK_GET_STATUS_DUMMY_PROPERTY
};
static void fso_gsm_at_network_get_status_real_run_data_free (gpointer _data);
static void fso_gsm_at_network_get_status_real_run (FsoGsmNetworkGetStatus* base, GAsyncReadyCallback _callback_, gpointer _user_data_);
static gboolean fso_gsm_at_network_get_status_real_run_co (FsoGsmAtNetworkGetStatusRunData* _data_);
static void _g_free0_ (gpointer var);
static void _g_variant_unref0_ (gpointer var);
void fso_gsm_network_get_status_set_status (FsoGsmNetworkGetStatus* self, GHashTable* value);
GHashTable* fso_gsm_network_get_status_get_status (FsoGsmNetworkGetStatus* self);
static GVariant* _variant_new24 (const gchar* value);
static GVariant* _variant_new25 (const gchar* value);
static GVariant* _variant_new26 (const gchar* value);
static void fso_gsm_at_network_get_status_run_ready (GObject* source_object, GAsyncResult* _res_, gpointer _user_data_);
FsoGsmConstantsAtResponse fso_gsm_abstract_at_command_validate (FsoGsmAbstractAtCommand* self, gchar** response, int response_length1);
static GVariant* _variant_new27 (gint value);
GType fso_gsm_plus_creg_get_type (void) G_GNUC_CONST;
gchar* fso_gsm_plus_creg_query (FsoGsmPlusCREG* self);
gpointer fso_gsm_constants_ref (gpointer instance);
void fso_gsm_constants_unref (gpointer instance);
GParamSpec* fso_gsm_param_spec_constants (const gchar* name, const gchar* nick, const gchar* blurb, GType object_type, GParamFlags flags);
void fso_gsm_value_set_constants (GValue* value, gpointer v_object);
void fso_gsm_value_take_constants (GValue* value, gpointer v_object);
gpointer fso_gsm_value_get_constants (const GValue* value);
GType fso_gsm_constants_get_type (void) G_GNUC_CONST;
FsoGsmConstants* fso_gsm_constants_instance (void);
gchar* fso_gsm_constants_networkRegistrationStatusToString (FsoGsmConstants* self, gint code);
static GVariant* _variant_new28 (gchar* value);
GType fso_gsm_plus_cops_get_type (void) G_GNUC_CONST;
GType fso_gsm_plus_cops_format_get_type (void) G_GNUC_CONST;
gchar* fso_gsm_plus_cops_query (FsoGsmPlusCOPS* self, FsoGsmPlusCOPSFormat format);
static GVariant* _variant_new29 (const gchar* value);
gchar* fso_gsm_constants_networkRegistrationModeToString (FsoGsmConstants* self, gint code);
static GVariant* _variant_new30 (gchar* value);
static GVariant* _variant_new31 (const gchar* value);
static GVariant* _variant_new32 (const gchar* value);
static GVariant* _variant_new33 (const gchar* value);
static GVariant* _variant_new34 (const gchar* value);
void fso_gsm_findProviderNameForMccMnc (const gchar* mccmnc, GAsyncReadyCallback _callback_, gpointer _user_data_);
gchar* fso_gsm_findProviderNameForMccMnc_finish (GAsyncResult* _res_);
static GVariant* _variant_new35 (const gchar* value);
static GVariant* _variant_new36 (const gchar* value);
static GVariant* _variant_new37 (const gchar* value);
GType fso_gsm_plus_cgreg_get_type (void) G_GNUC_CONST;
gchar* fso_gsm_plus_cgreg_query (FsoGsmPlusCGREG* self);
gchar* fso_gsm_plus_cgreg_queryFull (FsoGsmPlusCGREG* self, gint restoreMode);
static GVariant* _variant_new38 (gchar* value);
static GVariant* _variant_new39 (const gchar* value);
static GVariant* _variant_new40 (const gchar* value);
FsoGsmAtNetworkGetStatus* fso_gsm_at_network_get_status_new (void);
FsoGsmAtNetworkGetStatus* fso_gsm_at_network_get_status_construct (GType object_type);
FsoGsmNetworkGetStatus* fso_gsm_network_get_status_construct (GType object_type);
GType fso_gsm_network_list_providers_get_type (void) G_GNUC_CONST;
GType fso_gsm_at_network_list_providers_get_type (void) G_GNUC_CONST;
enum  {
	FSO_GSM_AT_NETWORK_LIST_PROVIDERS_DUMMY_PROPERTY
};
static void fso_gsm_at_network_list_providers_real_run_data_free (gpointer _data);
static void fso_gsm_at_network_list_providers_real_run (FsoGsmNetworkListProviders* base, GAsyncReadyCallback _callback_, gpointer _user_data_);
static gboolean fso_gsm_at_network_list_providers_real_run_co (FsoGsmAtNetworkListProvidersRunData* _data_);
gchar* fso_gsm_plus_cops_test (FsoGsmPlusCOPS* self);
static void fso_gsm_at_network_list_providers_run_ready (GObject* source_object, GAsyncResult* _res_, gpointer _user_data_);
void fso_gsm_checkTestResponseValid (FsoGsmAtCommand* command, gchar** response, int response_length1, GError** error);
void fso_gsm_network_list_providers_set_providers (FsoGsmNetworkListProviders* self, FreeSmartphoneGSMNetworkProvider* value, int value_length1);
FsoGsmAtNetworkListProviders* fso_gsm_at_network_list_providers_new (void);
FsoGsmAtNetworkListProviders* fso_gsm_at_network_list_providers_construct (GType object_type);
FsoGsmNetworkListProviders* fso_gsm_network_list_providers_construct (GType object_type);
GType fso_gsm_network_register_get_type (void) G_GNUC_CONST;
GType fso_gsm_at_network_register_get_type (void) G_GNUC_CONST;
enum  {
	FSO_GSM_AT_NETWORK_REGISTER_DUMMY_PROPERTY
};
static void fso_gsm_at_network_register_real_run_data_free (gpointer _data);
static void fso_gsm_at_network_register_real_run (FsoGsmNetworkRegister* base, GAsyncReadyCallback _callback_, gpointer _user_data_);
static gboolean fso_gsm_at_network_register_real_run_co (FsoGsmAtNetworkRegisterRunData* _data_);
GType fso_gsm_plus_cops_action_get_type (void) G_GNUC_CONST;
gchar* fso_gsm_plus_cops_issue (FsoGsmPlusCOPS* self, FsoGsmPlusCOPSAction action, FsoGsmPlusCOPSFormat format, gint param);
static void fso_gsm_at_network_register_run_ready (GObject* source_object, GAsyncResult* _res_, gpointer _user_data_);
void fso_gsm_checkResponseOk (FsoGsmAtCommand* command, gchar** response, int response_length1, GError** error);
FsoGsmAtNetworkRegister* fso_gsm_at_network_register_new (void);
FsoGsmAtNetworkRegister* fso_gsm_at_network_register_construct (GType object_type);
FsoGsmNetworkRegister* fso_gsm_network_register_construct (GType object_type);
GType fso_gsm_network_unregister_get_type (void) G_GNUC_CONST;
GType fso_gsm_at_network_unregister_get_type (void) G_GNUC_CONST;
enum  {
	FSO_GSM_AT_NETWORK_UNREGISTER_DUMMY_PROPERTY
};
static void fso_gsm_at_network_unregister_real_run_data_free (gpointer _data);
static void fso_gsm_at_network_unregister_real_run (FsoGsmNetworkUnregister* base, GAsyncReadyCallback _callback_, gpointer _user_data_);
static gboolean fso_gsm_at_network_unregister_real_run_co (FsoGsmAtNetworkUnregisterRunData* _data_);
static void fso_gsm_at_network_unregister_run_ready (GObject* source_object, GAsyncResult* _res_, gpointer _user_data_);
FsoGsmAtNetworkUnregister* fso_gsm_at_network_unregister_new (void);
FsoGsmAtNetworkUnregister* fso_gsm_at_network_unregister_construct (GType object_type);
FsoGsmNetworkUnregister* fso_gsm_network_unregister_construct (GType object_type);
GType fso_gsm_network_send_ussd_request_get_type (void) G_GNUC_CONST;
GType fso_gsm_at_network_send_ussd_request_get_type (void) G_GNUC_CONST;
enum  {
	FSO_GSM_AT_NETWORK_SEND_USSD_REQUEST_DUMMY_PROPERTY
};
static void fso_gsm_at_network_send_ussd_request_real_run_data_free (gpointer _data);
static void fso_gsm_at_network_send_ussd_request_real_run (FsoGsmNetworkSendUssdRequest* base, const gchar* request, GAsyncReadyCallback _callback_, gpointer _user_data_);
static gboolean fso_gsm_at_network_send_ussd_request_real_run_co (FsoGsmAtNetworkSendUssdRequestRunData* _data_);
GType fso_gsm_plus_cusd_get_type (void) G_GNUC_CONST;
gchar* fso_gsm_plus_cusd_query (FsoGsmPlusCUSD* self, const gchar* request);
static void fso_gsm_at_network_send_ussd_request_run_ready (GObject* source_object, GAsyncResult* _res_, gpointer _user_data_);
FsoGsmAtNetworkSendUssdRequest* fso_gsm_at_network_send_ussd_request_new (void);
FsoGsmAtNetworkSendUssdRequest* fso_gsm_at_network_send_ussd_request_construct (GType object_type);
FsoGsmNetworkSendUssdRequest* fso_gsm_network_send_ussd_request_construct (GType object_type);
GType fso_gsm_network_get_calling_id_get_type (void) G_GNUC_CONST;
GType fso_gsm_at_network_get_calling_id_get_type (void) G_GNUC_CONST;
enum  {
	FSO_GSM_AT_NETWORK_GET_CALLING_ID_DUMMY_PROPERTY
};
static void fso_gsm_at_network_get_calling_id_real_run_data_free (gpointer _data);
static void fso_gsm_at_network_get_calling_id_real_run (FsoGsmNetworkGetCallingId* base, GAsyncReadyCallback _callback_, gpointer _user_data_);
static gboolean fso_gsm_at_network_get_calling_id_real_run_co (FsoGsmAtNetworkGetCallingIdRunData* _data_);
GType fso_gsm_simple_at_command_get_type (void) G_GNUC_CONST;
GType fso_gsm_plus_clir_get_type (void) G_GNUC_CONST;
gchar* fso_gsm_simple_at_command_query (FsoGsmSimpleAtCommand* self);
static void fso_gsm_at_network_get_calling_id_run_ready (GObject* source_object, GAsyncResult* _res_, gpointer _user_data_);
void fso_gsm_network_get_calling_id_set_status (FsoGsmNetworkGetCallingId* self, FreeSmartphoneGSMCallingIdentificationStatus value);
FsoGsmAtNetworkGetCallingId* fso_gsm_at_network_get_calling_id_new (void);
FsoGsmAtNetworkGetCallingId* fso_gsm_at_network_get_calling_id_construct (GType object_type);
FsoGsmNetworkGetCallingId* fso_gsm_network_get_calling_id_construct (GType object_type);
GType fso_gsm_network_set_calling_id_get_type (void) G_GNUC_CONST;
GType fso_gsm_at_network_set_calling_id_get_type (void) G_GNUC_CONST;
enum  {
	FSO_GSM_AT_NETWORK_SET_CALLING_ID_DUMMY_PROPERTY
};
static void fso_gsm_at_network_set_calling_id_real_run_data_free (gpointer _data);
static void fso_gsm_at_network_set_calling_id_real_run (FsoGsmNetworkSetCallingId* base, FreeSmartphoneGSMCallingIdentificationStatus status, GAsyncReadyCallback _callback_, gpointer _user_data_);
static gboolean fso_gsm_at_network_set_calling_id_real_run_co (FsoGsmAtNetworkSetCallingIdRunData* _data_);
gchar* fso_gsm_simple_at_command_issue (FsoGsmSimpleAtCommand* self, gconstpointer val);
static void fso_gsm_at_network_set_calling_id_run_ready (GObject* source_object, GAsyncResult* _res_, gpointer _user_data_);
FsoGsmAtNetworkSetCallingId* fso_gsm_at_network_set_calling_id_new (void);
FsoGsmAtNetworkSetCallingId* fso_gsm_at_network_set_calling_id_construct (GType object_type);
FsoGsmNetworkSetCallingId* fso_gsm_network_set_calling_id_construct (GType object_type);
static void _vala_array_destroy (gpointer array, gint array_length, GDestroyNotify destroy_func);
static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify destroy_func);


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


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


static void fso_gsm_at_network_get_signal_strength_real_run (FsoGsmNetworkGetSignalStrength* base, GAsyncReadyCallback _callback_, gpointer _user_data_) {
	FsoGsmAtNetworkGetSignalStrength * self;
	FsoGsmAtNetworkGetSignalStrengthRunData* _data_;
	FsoGsmAtNetworkGetSignalStrength* _tmp0_;
	self = (FsoGsmAtNetworkGetSignalStrength*) base;
	_data_ = g_slice_new0 (FsoGsmAtNetworkGetSignalStrengthRunData);
	_data_->_async_result = g_simple_async_result_new (G_OBJECT (self), _callback_, _user_data_, fso_gsm_at_network_get_signal_strength_real_run);
	g_simple_async_result_set_op_res_gpointer (_data_->_async_result, _data_, fso_gsm_at_network_get_signal_strength_real_run_data_free);
	_tmp0_ = _g_object_ref0 (self);
	_data_->self = _tmp0_;
	fso_gsm_at_network_get_signal_strength_real_run_co (_data_);
}


static void fso_gsm_at_network_get_signal_strength_real_run_finish (FsoGsmNetworkGetSignalStrength* base, GAsyncResult* _res_, GError** error) {
	FsoGsmAtNetworkGetSignalStrengthRunData* _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 fso_gsm_at_network_get_signal_strength_run_ready (GObject* source_object, GAsyncResult* _res_, gpointer _user_data_) {
	FsoGsmAtNetworkGetSignalStrengthRunData* _data_;
	_data_ = _user_data_;
	_data_->_source_object_ = source_object;
	_data_->_res_ = _res_;
	fso_gsm_at_network_get_signal_strength_real_run_co (_data_);
}


static gboolean fso_gsm_at_network_get_signal_strength_real_run_co (FsoGsmAtNetworkGetSignalStrengthRunData* _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_ = NULL;
	_data_->_tmp1_ = fso_gsm_modem_createAtCommand (_data_->_tmp0_, FSO_GSM_TYPE_PLUS_CSQ, (GBoxedCopyFunc) g_object_ref, g_object_unref, "+CSQ");
	_data_->cmd = (FsoGsmPlusCSQ*) _data_->_tmp1_;
	_data_->_tmp2_ = fso_gsm_theModem;
	_data_->_tmp3_ = NULL;
	_data_->_tmp3_ = fso_gsm_plus_csq_execute (_data_->cmd);
	_data_->_tmp4_ = _data_->_tmp3_;
	_data_->_tmp5_ = 0;
	_data_->_state_ = 1;
	fso_gsm_modem_processAtCommandAsync (_data_->_tmp2_, (FsoGsmAtCommand*) _data_->cmd, _data_->_tmp4_, FSO_GSM_MODEM_DEFAULT_RETRIES, fso_gsm_at_network_get_signal_strength_run_ready, _data_);
	return FALSE;
	_state_1:
	_data_->_tmp6_ = NULL;
	_data_->_tmp6_ = fso_gsm_modem_processAtCommandAsync_finish (_data_->_tmp2_, _data_->_res_, &_data_->_tmp5_);
	_data_->_tmp7_ = _data_->_tmp6_;
	_data_->_tmp7__length1 = _data_->_tmp5_;
	_g_free0 (_data_->_tmp4_);
	_data_->response = _data_->_tmp7_;
	_data_->response_length1 = _data_->_tmp7__length1;
	_data_->_response_size_ = _data_->response_length1;
	fso_gsm_checkResponseValid ((FsoGsmAtCommand*) _data_->cmd, _data_->response, _data_->response_length1, &_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_);
			_data_->response = (_vala_array_free (_data_->response, _data_->response_length1, (GDestroyNotify) g_free), NULL);
			_g_object_unref0 (_data_->cmd);
			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 {
			_data_->response = (_vala_array_free (_data_->response, _data_->response_length1, (GDestroyNotify) g_free), NULL);
			_g_object_unref0 (_data_->cmd);
			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_->_tmp8_ = _data_->cmd->signal;
	fso_gsm_network_get_signal_strength_set_signal ((FsoGsmNetworkGetSignalStrength*) _data_->self, _data_->_tmp8_);
	_data_->response = (_vala_array_free (_data_->response, _data_->response_length1, (GDestroyNotify) g_free), NULL);
	_g_object_unref0 (_data_->cmd);
	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;
}


FsoGsmAtNetworkGetSignalStrength* fso_gsm_at_network_get_signal_strength_construct (GType object_type) {
	FsoGsmAtNetworkGetSignalStrength * self = NULL;
	self = (FsoGsmAtNetworkGetSignalStrength*) fso_gsm_network_get_signal_strength_construct (object_type);
	return self;
}


FsoGsmAtNetworkGetSignalStrength* fso_gsm_at_network_get_signal_strength_new (void) {
	return fso_gsm_at_network_get_signal_strength_construct (FSO_GSM_TYPE_AT_NETWORK_GET_SIGNAL_STRENGTH);
}


static void fso_gsm_at_network_get_signal_strength_class_init (FsoGsmAtNetworkGetSignalStrengthClass * klass) {
	fso_gsm_at_network_get_signal_strength_parent_class = g_type_class_peek_parent (klass);
	FSO_GSM_NETWORK_GET_SIGNAL_STRENGTH_CLASS (klass)->run = fso_gsm_at_network_get_signal_strength_real_run;
	FSO_GSM_NETWORK_GET_SIGNAL_STRENGTH_CLASS (klass)->run_finish = fso_gsm_at_network_get_signal_strength_real_run_finish;
}


static void fso_gsm_at_network_get_signal_strength_instance_init (FsoGsmAtNetworkGetSignalStrength * self) {
}


/**
 * Network Mediators
 **/
GType fso_gsm_at_network_get_signal_strength_get_type (void) {
	static volatile gsize fso_gsm_at_network_get_signal_strength_type_id__volatile = 0;
	if (g_once_init_enter (&fso_gsm_at_network_get_signal_strength_type_id__volatile)) {
		static const GTypeInfo g_define_type_info = { sizeof (FsoGsmAtNetworkGetSignalStrengthClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) fso_gsm_at_network_get_signal_strength_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (FsoGsmAtNetworkGetSignalStrength), 0, (GInstanceInitFunc) fso_gsm_at_network_get_signal_strength_instance_init, NULL };
		GType fso_gsm_at_network_get_signal_strength_type_id;
		fso_gsm_at_network_get_signal_strength_type_id = g_type_register_static (FSO_GSM_TYPE_NETWORK_GET_SIGNAL_STRENGTH, "FsoGsmAtNetworkGetSignalStrength", &g_define_type_info, 0);
		g_once_init_leave (&fso_gsm_at_network_get_signal_strength_type_id__volatile, fso_gsm_at_network_get_signal_strength_type_id);
	}
	return fso_gsm_at_network_get_signal_strength_type_id__volatile;
}


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


static void fso_gsm_at_network_get_status_real_run (FsoGsmNetworkGetStatus* base, GAsyncReadyCallback _callback_, gpointer _user_data_) {
	FsoGsmAtNetworkGetStatus * self;
	FsoGsmAtNetworkGetStatusRunData* _data_;
	FsoGsmAtNetworkGetStatus* _tmp0_;
	self = (FsoGsmAtNetworkGetStatus*) base;
	_data_ = g_slice_new0 (FsoGsmAtNetworkGetStatusRunData);
	_data_->_async_result = g_simple_async_result_new (G_OBJECT (self), _callback_, _user_data_, fso_gsm_at_network_get_status_real_run);
	g_simple_async_result_set_op_res_gpointer (_data_->_async_result, _data_, fso_gsm_at_network_get_status_real_run_data_free);
	_tmp0_ = _g_object_ref0 (self);
	_data_->self = _tmp0_;
	fso_gsm_at_network_get_status_real_run_co (_data_);
}


static void fso_gsm_at_network_get_status_real_run_finish (FsoGsmNetworkGetStatus* base, GAsyncResult* _res_, GError** error) {
	FsoGsmAtNetworkGetStatusRunData* _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 _g_free0_ (gpointer var) {
	var = (g_free (var), NULL);
}


static void _g_variant_unref0_ (gpointer var) {
	(var == NULL) ? NULL : (var = (g_variant_unref (var), NULL));
}


static GVariant* _variant_new24 (const gchar* value) {
	return g_variant_ref_sink (g_variant_new_string (value));
}


static GVariant* _variant_new25 (const gchar* value) {
	return g_variant_ref_sink (g_variant_new_string (value));
}


static GVariant* _variant_new26 (const gchar* value) {
	return g_variant_ref_sink (g_variant_new_string (value));
}


static void fso_gsm_at_network_get_status_run_ready (GObject* source_object, GAsyncResult* _res_, gpointer _user_data_) {
	FsoGsmAtNetworkGetStatusRunData* _data_;
	_data_ = _user_data_;
	_data_->_source_object_ = source_object;
	_data_->_res_ = _res_;
	fso_gsm_at_network_get_status_real_run_co (_data_);
}


static GVariant* _variant_new27 (gint value) {
	return g_variant_ref_sink (g_variant_new_int32 (value));
}


static gpointer _g_variant_ref0 (gpointer self) {
	return self ? g_variant_ref (self) : NULL;
}


static GVariant* _variant_new28 (gchar* value) {
	return g_variant_ref_sink (g_variant_new_string (value));
}


static GVariant* _variant_new29 (const gchar* value) {
	return g_variant_ref_sink (g_variant_new_string (value));
}


static GVariant* _variant_new30 (gchar* value) {
	return g_variant_ref_sink (g_variant_new_string (value));
}


static GVariant* _variant_new31 (const gchar* value) {
	return g_variant_ref_sink (g_variant_new_string (value));
}


static GVariant* _variant_new32 (const gchar* value) {
	return g_variant_ref_sink (g_variant_new_string (value));
}


static GVariant* _variant_new33 (const gchar* value) {
	return g_variant_ref_sink (g_variant_new_string (value));
}


static GVariant* _variant_new34 (const gchar* value) {
	return g_variant_ref_sink (g_variant_new_string (value));
}


static GVariant* _variant_new35 (const gchar* value) {
	return g_variant_ref_sink (g_variant_new_string (value));
}


static GVariant* _variant_new36 (const gchar* value) {
	return g_variant_ref_sink (g_variant_new_string (value));
}


static GVariant* _variant_new37 (const gchar* value) {
	return g_variant_ref_sink (g_variant_new_string (value));
}


static GVariant* _variant_new38 (gchar* value) {
	return g_variant_ref_sink (g_variant_new_string (value));
}


static GVariant* _variant_new39 (const gchar* value) {
	return g_variant_ref_sink (g_variant_new_string (value));
}


static GVariant* _variant_new40 (const gchar* value) {
	return g_variant_ref_sink (g_variant_new_string (value));
}


static gboolean fso_gsm_at_network_get_status_real_run_co (FsoGsmAtNetworkGetStatusRunData* _data_) {
	switch (_data_->_state_) {
		case 0:
		goto _state_0;
		case 1:
		goto _state_1;
		case 2:
		goto _state_2;
		case 3:
		goto _state_3;
		case 4:
		goto _state_4;
		case 5:
		goto _state_5;
		case 6:
		goto _state_6;
		case 7:
		goto _state_7;
		case 8:
		goto _state_8;
		default:
		g_assert_not_reached ();
	}
	_state_0:
	_data_->_tmp0_ = g_str_hash;
	_data_->_tmp1_ = g_str_equal;
	_data_->_tmp2_ = g_hash_table_new_full (_data_->_tmp0_, _data_->_tmp1_, _g_free0_, _g_variant_unref0_);
	_data_->_tmp3_ = _data_->_tmp2_;
	fso_gsm_network_get_status_set_status ((FsoGsmNetworkGetStatus*) _data_->self, _data_->_tmp3_);
	_g_hash_table_unref0 (_data_->_tmp3_);
	_data_->_tmp4_ = fso_gsm_network_get_status_get_status ((FsoGsmNetworkGetStatus*) _data_->self);
	_data_->_tmp5_ = _data_->_tmp4_;
	_data_->_tmp6_ = g_strdup ("registration");
	_data_->_tmp7_ = _variant_new24 ("unknown");
	g_hash_table_insert (_data_->_tmp5_, _data_->_tmp6_, _data_->_tmp7_);
	_data_->_tmp8_ = fso_gsm_network_get_status_get_status ((FsoGsmNetworkGetStatus*) _data_->self);
	_data_->_tmp9_ = _data_->_tmp8_;
	_data_->_tmp10_ = g_strdup ("mode");
	_data_->_tmp11_ = _variant_new25 ("unknown");
	g_hash_table_insert (_data_->_tmp9_, _data_->_tmp10_, _data_->_tmp11_);
	_data_->_tmp12_ = fso_gsm_network_get_status_get_status ((FsoGsmNetworkGetStatus*) _data_->self);
	_data_->_tmp13_ = _data_->_tmp12_;
	_data_->_tmp14_ = g_strdup ("act");
	_data_->_tmp15_ = _variant_new26 ("unknown");
	g_hash_table_insert (_data_->_tmp13_, _data_->_tmp14_, _data_->_tmp15_);
	_data_->_tmp16_ = fso_gsm_theModem;
	_data_->_tmp17_ = NULL;
	_data_->_tmp17_ = fso_gsm_modem_createAtCommand (_data_->_tmp16_, FSO_GSM_TYPE_PLUS_CSQ, (GBoxedCopyFunc) g_object_ref, g_object_unref, "+CSQ");
	_data_->csq = (FsoGsmPlusCSQ*) _data_->_tmp17_;
	_data_->_tmp18_ = fso_gsm_theModem;
	_data_->_tmp19_ = _data_->csq;
	_data_->_tmp20_ = _data_->csq;
	_data_->_tmp21_ = NULL;
	_data_->_tmp21_ = fso_gsm_plus_csq_execute (_data_->_tmp20_);
	_data_->_tmp22_ = _data_->_tmp21_;
	_data_->_tmp23_ = 0;
	_data_->_state_ = 1;
	fso_gsm_modem_processAtCommandAsync (_data_->_tmp18_, (FsoGsmAtCommand*) _data_->_tmp19_, _data_->_tmp22_, FSO_GSM_MODEM_DEFAULT_RETRIES, fso_gsm_at_network_get_status_run_ready, _data_);
	return FALSE;
	_state_1:
	_data_->_tmp24_ = NULL;
	_data_->_tmp24_ = fso_gsm_modem_processAtCommandAsync_finish (_data_->_tmp18_, _data_->_res_, &_data_->_tmp23_);
	_data_->_tmp25_ = _data_->_tmp24_;
	_data_->_tmp25__length1 = _data_->_tmp23_;
	_g_free0 (_data_->_tmp22_);
	_data_->response = _data_->_tmp25_;
	_data_->response_length1 = _data_->_tmp25__length1;
	_data_->_response_size_ = _data_->response_length1;
	_data_->_tmp26_ = _data_->csq;
	_data_->_tmp27_ = _data_->response;
	_data_->_tmp27__length1 = _data_->response_length1;
	_data_->_tmp28_ = 0;
	_data_->_tmp28_ = fso_gsm_abstract_at_command_validate ((FsoGsmAbstractAtCommand*) _data_->_tmp26_, _data_->_tmp27_, _data_->_tmp27__length1);
	if (_data_->_tmp28_ == FSO_GSM_CONSTANTS_AT_RESPONSE_VALID) {
		_data_->_tmp29_ = _data_->csq;
		_data_->_tmp30_ = _data_->_tmp29_->signal;
		_data_->_tmp31_ = _variant_new27 (_data_->_tmp30_);
		_g_variant_unref0 (_data_->intvalue);
		_data_->intvalue = _data_->_tmp31_;
		_data_->_tmp32_ = fso_gsm_network_get_status_get_status ((FsoGsmNetworkGetStatus*) _data_->self);
		_data_->_tmp33_ = _data_->_tmp32_;
		_data_->_tmp34_ = g_strdup ("strength");
		_data_->_tmp35_ = _data_->intvalue;
		_data_->_tmp36_ = _g_variant_ref0 (_data_->_tmp35_);
		g_hash_table_insert (_data_->_tmp33_, _data_->_tmp34_, _data_->_tmp36_);
	}
	_data_->_tmp37_ = fso_gsm_theModem;
	_data_->_tmp38_ = NULL;
	_data_->_tmp38_ = fso_gsm_modem_createAtCommand (_data_->_tmp37_, FSO_GSM_TYPE_PLUS_CREG, (GBoxedCopyFunc) g_object_ref, g_object_unref, "+CREG");
	_data_->creg = (FsoGsmPlusCREG*) _data_->_tmp38_;
	_data_->_tmp39_ = fso_gsm_theModem;
	_data_->_tmp40_ = _data_->creg;
	_data_->_tmp41_ = _data_->creg;
	_data_->_tmp42_ = NULL;
	_data_->_tmp42_ = fso_gsm_plus_creg_query (_data_->_tmp41_);
	_data_->_tmp43_ = _data_->_tmp42_;
	_data_->_tmp44_ = 0;
	_data_->_state_ = 2;
	fso_gsm_modem_processAtCommandAsync (_data_->_tmp39_, (FsoGsmAtCommand*) _data_->_tmp40_, _data_->_tmp43_, FSO_GSM_MODEM_DEFAULT_RETRIES, fso_gsm_at_network_get_status_run_ready, _data_);
	return FALSE;
	_state_2:
	_data_->_tmp45_ = NULL;
	_data_->_tmp45_ = fso_gsm_modem_processAtCommandAsync_finish (_data_->_tmp39_, _data_->_res_, &_data_->_tmp44_);
	_data_->_tmp46_ = _data_->_tmp45_;
	_data_->_tmp46__length1 = _data_->_tmp44_;
	_g_free0 (_data_->_tmp43_);
	_data_->cregResult = _data_->_tmp46_;
	_data_->cregResult_length1 = _data_->_tmp46__length1;
	_data_->_cregResult_size_ = _data_->cregResult_length1;
	_data_->_tmp47_ = _data_->creg;
	_data_->_tmp48_ = _data_->cregResult;
	_data_->_tmp48__length1 = _data_->cregResult_length1;
	_data_->_tmp49_ = 0;
	_data_->_tmp49_ = fso_gsm_abstract_at_command_validate ((FsoGsmAbstractAtCommand*) _data_->_tmp47_, _data_->_tmp48_, _data_->_tmp48__length1);
	if (_data_->_tmp49_ == FSO_GSM_CONSTANTS_AT_RESPONSE_VALID) {
		_data_->_tmp50_ = NULL;
		_data_->_tmp50_ = fso_gsm_constants_instance ();
		_data_->_tmp51_ = _data_->_tmp50_;
		_data_->_tmp52_ = _data_->creg;
		_data_->_tmp53_ = _data_->_tmp52_->status;
		_data_->_tmp54_ = NULL;
		_data_->_tmp54_ = fso_gsm_constants_networkRegistrationStatusToString (_data_->_tmp51_, _data_->_tmp53_);
		_data_->_tmp55_ = _variant_new28 (_data_->_tmp54_);
		_g_variant_unref0 (_data_->strvalue);
		_data_->strvalue = _data_->_tmp55_;
		_fso_gsm_constants_unref0 (_data_->_tmp51_);
		_data_->_tmp56_ = fso_gsm_network_get_status_get_status ((FsoGsmNetworkGetStatus*) _data_->self);
		_data_->_tmp57_ = _data_->_tmp56_;
		_data_->_tmp58_ = g_strdup ("registration");
		_data_->_tmp59_ = _data_->strvalue;
		_data_->_tmp60_ = _g_variant_ref0 (_data_->_tmp59_);
		g_hash_table_insert (_data_->_tmp57_, _data_->_tmp58_, _data_->_tmp60_);
		_data_->_tmp61_ = _data_->creg;
		_data_->_tmp62_ = _data_->_tmp61_->lac;
		if (g_strcmp0 (_data_->_tmp62_, "") != 0) {
			_data_->_tmp63_ = fso_gsm_network_get_status_get_status ((FsoGsmNetworkGetStatus*) _data_->self);
			_data_->_tmp64_ = _data_->_tmp63_;
			_data_->_tmp65_ = g_strdup ("lac");
			_data_->_tmp66_ = _data_->creg;
			_data_->_tmp67_ = _data_->_tmp66_->lac;
			_data_->_tmp68_ = g_variant_new_string (_data_->_tmp67_);
			_data_->_tmp69_ = g_variant_ref_sink (_data_->_tmp68_);
			g_hash_table_insert (_data_->_tmp64_, _data_->_tmp65_, _data_->_tmp69_);
		}
		_data_->_tmp70_ = _data_->creg;
		_data_->_tmp71_ = _data_->_tmp70_->cid;
		if (g_strcmp0 (_data_->_tmp71_, "") != 0) {
			_data_->_tmp72_ = fso_gsm_network_get_status_get_status ((FsoGsmNetworkGetStatus*) _data_->self);
			_data_->_tmp73_ = _data_->_tmp72_;
			_data_->_tmp74_ = g_strdup ("cid");
			_data_->_tmp75_ = _data_->creg;
			_data_->_tmp76_ = _data_->_tmp75_->cid;
			_data_->_tmp77_ = g_variant_new_string (_data_->_tmp76_);
			_data_->_tmp78_ = g_variant_ref_sink (_data_->_tmp77_);
			g_hash_table_insert (_data_->_tmp73_, _data_->_tmp74_, _data_->_tmp78_);
		}
	}
	_data_->_tmp79_ = fso_gsm_theModem;
	_data_->_tmp80_ = NULL;
	_data_->_tmp80_ = fso_gsm_modem_createAtCommand (_data_->_tmp79_, FSO_GSM_TYPE_PLUS_COPS, (GBoxedCopyFunc) g_object_ref, g_object_unref, "+COPS");
	_data_->cops = (FsoGsmPlusCOPS*) _data_->_tmp80_;
	_data_->_tmp81_ = fso_gsm_theModem;
	_data_->_tmp82_ = _data_->cops;
	_data_->_tmp83_ = _data_->cops;
	_data_->_tmp84_ = NULL;
	_data_->_tmp84_ = fso_gsm_plus_cops_query (_data_->_tmp83_, FSO_GSM_PLUS_COPS_FORMAT_NUMERIC);
	_data_->_tmp85_ = _data_->_tmp84_;
	_data_->_tmp86_ = 0;
	_data_->_state_ = 3;
	fso_gsm_modem_processAtCommandAsync (_data_->_tmp81_, (FsoGsmAtCommand*) _data_->_tmp82_, _data_->_tmp85_, FSO_GSM_MODEM_DEFAULT_RETRIES, fso_gsm_at_network_get_status_run_ready, _data_);
	return FALSE;
	_state_3:
	_data_->_tmp87_ = NULL;
	_data_->_tmp87_ = fso_gsm_modem_processAtCommandAsync_finish (_data_->_tmp81_, _data_->_res_, &_data_->_tmp86_);
	_data_->_tmp88_ = _data_->_tmp87_;
	_data_->_tmp88__length1 = _data_->_tmp86_;
	_g_free0 (_data_->_tmp85_);
	_data_->copsResult3 = _data_->_tmp88_;
	_data_->copsResult3_length1 = _data_->_tmp88__length1;
	_data_->_copsResult3_size_ = _data_->copsResult3_length1;
	_data_->_tmp89_ = _data_->cops;
	_data_->_tmp90_ = _data_->copsResult3;
	_data_->_tmp90__length1 = _data_->copsResult3_length1;
	_data_->_tmp91_ = 0;
	_data_->_tmp91_ = fso_gsm_abstract_at_command_validate ((FsoGsmAbstractAtCommand*) _data_->_tmp89_, _data_->_tmp90_, _data_->_tmp90__length1);
	if (_data_->_tmp91_ == FSO_GSM_CONSTANTS_AT_RESPONSE_VALID) {
		_data_->_tmp92_ = _data_->cops;
		_data_->_tmp93_ = _data_->_tmp92_->oper;
		_data_->_tmp94_ = _variant_new29 (_data_->_tmp93_);
		_g_variant_unref0 (_data_->strvalue);
		_data_->strvalue = _data_->_tmp94_;
		_data_->_tmp95_ = fso_gsm_network_get_status_get_status ((FsoGsmNetworkGetStatus*) _data_->self);
		_data_->_tmp96_ = _data_->_tmp95_;
		_data_->_tmp97_ = g_strdup ("code");
		_data_->_tmp98_ = _data_->strvalue;
		_data_->_tmp99_ = _g_variant_ref0 (_data_->_tmp98_);
		g_hash_table_insert (_data_->_tmp96_, _data_->_tmp97_, _data_->_tmp99_);
	}
	_data_->_tmp100_ = fso_gsm_theModem;
	_data_->_tmp101_ = _data_->cops;
	_data_->_tmp102_ = _data_->cops;
	_data_->_tmp103_ = NULL;
	_data_->_tmp103_ = fso_gsm_plus_cops_query (_data_->_tmp102_, FSO_GSM_PLUS_COPS_FORMAT_ALPHANUMERIC);
	_data_->_tmp104_ = _data_->_tmp103_;
	_data_->_tmp105_ = 0;
	_data_->_state_ = 4;
	fso_gsm_modem_processAtCommandAsync (_data_->_tmp100_, (FsoGsmAtCommand*) _data_->_tmp101_, _data_->_tmp104_, FSO_GSM_MODEM_DEFAULT_RETRIES, fso_gsm_at_network_get_status_run_ready, _data_);
	return FALSE;
	_state_4:
	_data_->_tmp106_ = NULL;
	_data_->_tmp106_ = fso_gsm_modem_processAtCommandAsync_finish (_data_->_tmp100_, _data_->_res_, &_data_->_tmp105_);
	_data_->_tmp107_ = _data_->_tmp106_;
	_data_->_tmp107__length1 = _data_->_tmp105_;
	_g_free0 (_data_->_tmp104_);
	_data_->copsResult = _data_->_tmp107_;
	_data_->copsResult_length1 = _data_->_tmp107__length1;
	_data_->_copsResult_size_ = _data_->copsResult_length1;
	_data_->_tmp108_ = _data_->cops;
	_data_->_tmp109_ = _data_->copsResult;
	_data_->_tmp109__length1 = _data_->copsResult_length1;
	_data_->_tmp110_ = 0;
	_data_->_tmp110_ = fso_gsm_abstract_at_command_validate ((FsoGsmAbstractAtCommand*) _data_->_tmp108_, _data_->_tmp109_, _data_->_tmp109__length1);
	if (_data_->_tmp110_ == FSO_GSM_CONSTANTS_AT_RESPONSE_VALID) {
		_data_->_tmp111_ = NULL;
		_data_->_tmp111_ = fso_gsm_constants_instance ();
		_data_->_tmp112_ = _data_->_tmp111_;
		_data_->_tmp113_ = _data_->cops;
		_data_->_tmp114_ = _data_->_tmp113_->mode;
		_data_->_tmp115_ = NULL;
		_data_->_tmp115_ = fso_gsm_constants_networkRegistrationModeToString (_data_->_tmp112_, _data_->_tmp114_);
		_data_->_tmp116_ = _variant_new30 (_data_->_tmp115_);
		_g_variant_unref0 (_data_->strvalue);
		_data_->strvalue = _data_->_tmp116_;
		_fso_gsm_constants_unref0 (_data_->_tmp112_);
		_data_->_tmp117_ = fso_gsm_network_get_status_get_status ((FsoGsmNetworkGetStatus*) _data_->self);
		_data_->_tmp118_ = _data_->_tmp117_;
		_data_->_tmp119_ = g_strdup ("mode");
		_data_->_tmp120_ = _data_->strvalue;
		_data_->_tmp121_ = _g_variant_ref0 (_data_->_tmp120_);
		g_hash_table_insert (_data_->_tmp118_, _data_->_tmp119_, _data_->_tmp121_);
		_data_->_tmp122_ = _data_->cops;
		_data_->_tmp123_ = _data_->_tmp122_->oper;
		_data_->_tmp124_ = _variant_new31 (_data_->_tmp123_);
		_g_variant_unref0 (_data_->strvalue);
		_data_->strvalue = _data_->_tmp124_;
		_data_->_tmp125_ = _data_->strvalue;
		if (_data_->_tmp125_ != "") {
			_data_->_tmp126_ = fso_gsm_network_get_status_get_status ((FsoGsmNetworkGetStatus*) _data_->self);
			_data_->_tmp127_ = _data_->_tmp126_;
			_data_->_tmp128_ = g_strdup ("provider");
			_data_->_tmp129_ = _data_->strvalue;
			_data_->_tmp130_ = _g_variant_ref0 (_data_->_tmp129_);
			g_hash_table_insert (_data_->_tmp127_, _data_->_tmp128_, _data_->_tmp130_);
			_data_->_tmp131_ = fso_gsm_network_get_status_get_status ((FsoGsmNetworkGetStatus*) _data_->self);
			_data_->_tmp132_ = _data_->_tmp131_;
			_data_->_tmp133_ = g_strdup ("network");
			_data_->_tmp134_ = _data_->strvalue;
			_data_->_tmp135_ = _g_variant_ref0 (_data_->_tmp134_);
			g_hash_table_insert (_data_->_tmp132_, _data_->_tmp133_, _data_->_tmp135_);
			_data_->_tmp136_ = fso_gsm_network_get_status_get_status ((FsoGsmNetworkGetStatus*) _data_->self);
			_data_->_tmp137_ = _data_->_tmp136_;
			_data_->_tmp138_ = g_strdup ("display");
			_data_->_tmp139_ = _data_->strvalue;
			_data_->_tmp140_ = _g_variant_ref0 (_data_->_tmp139_);
			g_hash_table_insert (_data_->_tmp137_, _data_->_tmp138_, _data_->_tmp140_);
		}
		_data_->_tmp141_ = _data_->cops;
		_data_->_tmp142_ = _data_->_tmp141_->act;
		_data_->_tmp143_ = _variant_new32 (_data_->_tmp142_);
		_g_variant_unref0 (_data_->strvalue);
		_data_->strvalue = _data_->_tmp143_;
		_data_->_tmp144_ = fso_gsm_network_get_status_get_status ((FsoGsmNetworkGetStatus*) _data_->self);
		_data_->_tmp145_ = _data_->_tmp144_;
		_data_->_tmp146_ = g_strdup ("act");
		_data_->_tmp147_ = _data_->strvalue;
		_data_->_tmp148_ = _g_variant_ref0 (_data_->_tmp147_);
		g_hash_table_insert (_data_->_tmp145_, _data_->_tmp146_, _data_->_tmp148_);
	} else {
		_data_->_tmp149_ = _data_->cops;
		_data_->_tmp150_ = _data_->copsResult;
		_data_->_tmp150__length1 = _data_->copsResult_length1;
		_data_->_tmp151_ = 0;
		_data_->_tmp151_ = fso_gsm_abstract_at_command_validate ((FsoGsmAbstractAtCommand*) _data_->_tmp149_, _data_->_tmp150_, _data_->_tmp150__length1);
		if (_data_->_tmp151_ == FSO_GSM_CONSTANTS_AT_RESPONSE_CME_ERROR_030_NO_NETWORK_SERVICE) {
			_data_->_tmp152_ = fso_gsm_network_get_status_get_status ((FsoGsmNetworkGetStatus*) _data_->self);
			_data_->_tmp153_ = _data_->_tmp152_;
			_data_->_tmp154_ = g_strdup ("registration");
			_data_->_tmp155_ = _variant_new33 ("unregistered");
			g_hash_table_insert (_data_->_tmp153_, _data_->_tmp154_, _data_->_tmp155_);
		}
	}
	_data_->_tmp156_ = fso_gsm_theModem;
	_data_->_tmp157_ = _data_->cops;
	_data_->_tmp158_ = _data_->cops;
	_data_->_tmp159_ = NULL;
	_data_->_tmp159_ = fso_gsm_plus_cops_query (_data_->_tmp158_, FSO_GSM_PLUS_COPS_FORMAT_ALPHANUMERIC_SHORT);
	_data_->_tmp160_ = _data_->_tmp159_;
	_data_->_tmp161_ = 0;
	_data_->_state_ = 5;
	fso_gsm_modem_processAtCommandAsync (_data_->_tmp156_, (FsoGsmAtCommand*) _data_->_tmp157_, _data_->_tmp160_, FSO_GSM_MODEM_DEFAULT_RETRIES, fso_gsm_at_network_get_status_run_ready, _data_);
	return FALSE;
	_state_5:
	_data_->_tmp162_ = NULL;
	_data_->_tmp162_ = fso_gsm_modem_processAtCommandAsync_finish (_data_->_tmp156_, _data_->_res_, &_data_->_tmp161_);
	_data_->_tmp163_ = _data_->_tmp162_;
	_data_->_tmp163__length1 = _data_->_tmp161_;
	_g_free0 (_data_->_tmp160_);
	_data_->copsResult2 = _data_->_tmp163_;
	_data_->copsResult2_length1 = _data_->_tmp163__length1;
	_data_->_copsResult2_size_ = _data_->copsResult2_length1;
	_data_->_tmp164_ = _data_->cops;
	_data_->_tmp165_ = _data_->copsResult2;
	_data_->_tmp165__length1 = _data_->copsResult2_length1;
	_data_->_tmp166_ = 0;
	_data_->_tmp166_ = fso_gsm_abstract_at_command_validate ((FsoGsmAbstractAtCommand*) _data_->_tmp164_, _data_->_tmp165_, _data_->_tmp165__length1);
	if (_data_->_tmp166_ == FSO_GSM_CONSTANTS_AT_RESPONSE_VALID) {
		_data_->_tmp167_ = _data_->cops;
		_data_->_tmp168_ = _data_->_tmp167_->oper;
		if (g_strcmp0 (_data_->_tmp168_, "") != 0) {
			_data_->_tmp169_ = _data_->cops;
			_data_->_tmp170_ = _data_->_tmp169_->oper;
			_data_->_tmp171_ = _variant_new34 (_data_->_tmp170_);
			_g_variant_unref0 (_data_->strvalue);
			_data_->strvalue = _data_->_tmp171_;
			_data_->_tmp172_ = fso_gsm_network_get_status_get_status ((FsoGsmNetworkGetStatus*) _data_->self);
			_data_->_tmp173_ = _data_->_tmp172_;
			_data_->_tmp174_ = g_strdup ("display");
			_data_->_tmp175_ = _data_->strvalue;
			_data_->_tmp176_ = _g_variant_ref0 (_data_->_tmp175_);
			g_hash_table_insert (_data_->_tmp173_, _data_->_tmp174_, _data_->_tmp176_);
			_data_->_tmp177_ = fso_gsm_network_get_status_get_status ((FsoGsmNetworkGetStatus*) _data_->self);
			_data_->_tmp178_ = _data_->_tmp177_;
			_data_->_tmp179_ = g_strdup ("network");
			_data_->_tmp180_ = _data_->strvalue;
			_data_->_tmp181_ = _g_variant_ref0 (_data_->_tmp180_);
			g_hash_table_insert (_data_->_tmp178_, _data_->_tmp179_, _data_->_tmp181_);
		}
	}
	_data_->_tmp182_ = fso_gsm_network_get_status_get_status ((FsoGsmNetworkGetStatus*) _data_->self);
	_data_->_tmp183_ = _data_->_tmp182_;
	_data_->_tmp184_ = NULL;
	_data_->_tmp184_ = g_hash_table_lookup (_data_->_tmp183_, "provider");
	if (((GVariant*) _data_->_tmp184_) == NULL) {
		_data_->_tmp185_ = fso_gsm_network_get_status_get_status ((FsoGsmNetworkGetStatus*) _data_->self);
		_data_->_tmp186_ = _data_->_tmp185_;
		_data_->_tmp187_ = NULL;
		_data_->_tmp187_ = g_hash_table_lookup (_data_->_tmp186_, "code");
		_data_->_tmp188_ = _g_variant_ref0 ((GVariant*) _data_->_tmp187_);
		_data_->code = _data_->_tmp188_;
		_data_->_tmp189_ = _data_->code;
		if (_data_->_tmp189_ != NULL) {
			_data_->_tmp190_ = _data_->code;
			_data_->_tmp191_ = NULL;
			_data_->_tmp191_ = g_variant_get_string (_data_->_tmp190_, NULL);
			_data_->_state_ = 6;
			fso_gsm_findProviderNameForMccMnc (_data_->_tmp191_, fso_gsm_at_network_get_status_run_ready, _data_);
			return FALSE;
			_state_6:
			_data_->_tmp192_ = NULL;
			_data_->_tmp192_ = fso_gsm_findProviderNameForMccMnc_finish (_data_->_res_);
			_data_->provider = _data_->_tmp192_;
			_data_->_tmp193_ = fso_gsm_network_get_status_get_status ((FsoGsmNetworkGetStatus*) _data_->self);
			_data_->_tmp194_ = _data_->_tmp193_;
			_data_->_tmp195_ = g_strdup ("provider");
			_data_->_tmp196_ = _data_->provider;
			_data_->_tmp197_ = _variant_new35 (_data_->_tmp196_);
			g_hash_table_insert (_data_->_tmp194_, _data_->_tmp195_, _data_->_tmp197_);
			_data_->_tmp198_ = fso_gsm_network_get_status_get_status ((FsoGsmNetworkGetStatus*) _data_->self);
			_data_->_tmp199_ = _data_->_tmp198_;
			_data_->_tmp200_ = g_strdup ("display");
			_data_->_tmp201_ = _data_->provider;
			_data_->_tmp202_ = _variant_new36 (_data_->_tmp201_);
			g_hash_table_insert (_data_->_tmp199_, _data_->_tmp200_, _data_->_tmp202_);
			_data_->_tmp203_ = fso_gsm_network_get_status_get_status ((FsoGsmNetworkGetStatus*) _data_->self);
			_data_->_tmp204_ = _data_->_tmp203_;
			_data_->_tmp205_ = g_strdup ("network");
			_data_->_tmp206_ = _data_->provider;
			_data_->_tmp207_ = _variant_new37 (_data_->_tmp206_);
			g_hash_table_insert (_data_->_tmp204_, _data_->_tmp205_, _data_->_tmp207_);
			_g_free0 (_data_->provider);
		}
		_g_variant_unref0 (_data_->code);
	}
	_data_->_tmp208_ = fso_gsm_theModem;
	_data_->_tmp209_ = NULL;
	_data_->_tmp209_ = fso_gsm_modem_createAtCommand (_data_->_tmp208_, FSO_GSM_TYPE_PLUS_CGREG, (GBoxedCopyFunc) g_object_ref, g_object_unref, "+CGREG");
	_data_->cgreg = (FsoGsmPlusCGREG*) _data_->_tmp209_;
	_data_->_tmp210_ = fso_gsm_theModem;
	_data_->_tmp211_ = _data_->cgreg;
	_data_->_tmp212_ = _data_->cgreg;
	_data_->_tmp213_ = NULL;
	_data_->_tmp213_ = fso_gsm_plus_cgreg_query (_data_->_tmp212_);
	_data_->_tmp214_ = _data_->_tmp213_;
	_data_->_tmp215_ = 0;
	_data_->_state_ = 7;
	fso_gsm_modem_processAtCommandAsync (_data_->_tmp210_, (FsoGsmAtCommand*) _data_->_tmp211_, _data_->_tmp214_, FSO_GSM_MODEM_DEFAULT_RETRIES, fso_gsm_at_network_get_status_run_ready, _data_);
	return FALSE;
	_state_7:
	_data_->_tmp216_ = NULL;
	_data_->_tmp216_ = fso_gsm_modem_processAtCommandAsync_finish (_data_->_tmp210_, _data_->_res_, &_data_->_tmp215_);
	_data_->_tmp217_ = _data_->_tmp216_;
	_data_->_tmp217__length1 = _data_->_tmp215_;
	_g_free0 (_data_->_tmp214_);
	_data_->cgregResult = _data_->_tmp217_;
	_data_->cgregResult_length1 = _data_->_tmp217__length1;
	_data_->_cgregResult_size_ = _data_->cgregResult_length1;
	_data_->_tmp218_ = _data_->cgreg;
	_data_->_tmp219_ = _data_->cgregResult;
	_data_->_tmp219__length1 = _data_->cgregResult_length1;
	_data_->_tmp220_ = 0;
	_data_->_tmp220_ = fso_gsm_abstract_at_command_validate ((FsoGsmAbstractAtCommand*) _data_->_tmp218_, _data_->_tmp219_, _data_->_tmp219__length1);
	if (_data_->_tmp220_ == FSO_GSM_CONSTANTS_AT_RESPONSE_VALID) {
		_data_->_tmp221_ = fso_gsm_theModem;
		_data_->_tmp222_ = _data_->cgreg;
		_data_->_tmp223_ = _data_->cgreg;
		_data_->_tmp224_ = _data_->cgreg;
		_data_->_tmp225_ = _data_->_tmp224_->mode;
		_data_->_tmp226_ = NULL;
		_data_->_tmp226_ = fso_gsm_plus_cgreg_queryFull (_data_->_tmp223_, _data_->_tmp225_);
		_data_->_tmp227_ = _data_->_tmp226_;
		_data_->_tmp228_ = 0;
		_data_->_state_ = 8;
		fso_gsm_modem_processAtCommandAsync (_data_->_tmp221_, (FsoGsmAtCommand*) _data_->_tmp222_, _data_->_tmp227_, FSO_GSM_MODEM_DEFAULT_RETRIES, fso_gsm_at_network_get_status_run_ready, _data_);
		return FALSE;
		_state_8:
		_data_->_tmp229_ = NULL;
		_data_->_tmp229_ = fso_gsm_modem_processAtCommandAsync_finish (_data_->_tmp221_, _data_->_res_, &_data_->_tmp228_);
		_data_->_tmp230_ = _data_->_tmp229_;
		_data_->_tmp230__length1 = _data_->_tmp228_;
		_g_free0 (_data_->_tmp227_);
		_data_->cgregResult2 = _data_->_tmp230_;
		_data_->cgregResult2_length1 = _data_->_tmp230__length1;
		_data_->_cgregResult2_size_ = _data_->cgregResult2_length1;
		_data_->_tmp231_ = _data_->cgreg;
		_data_->_tmp232_ = _data_->cgregResult2;
		_data_->_tmp232__length1 = _data_->cgregResult2_length1;
		_data_->_tmp233_ = 0;
		_data_->_tmp233_ = fso_gsm_abstract_at_command_validate ((FsoGsmAbstractAtCommand*) _data_->_tmp231_, _data_->_tmp232_, _data_->_tmp232__length1);
		if (_data_->_tmp233_ == FSO_GSM_CONSTANTS_AT_RESPONSE_VALID) {
			_data_->_tmp234_ = NULL;
			_data_->_tmp234_ = fso_gsm_constants_instance ();
			_data_->_tmp235_ = _data_->_tmp234_;
			_data_->_tmp236_ = _data_->cgreg;
			_data_->_tmp237_ = _data_->_tmp236_->status;
			_data_->_tmp238_ = NULL;
			_data_->_tmp238_ = fso_gsm_constants_networkRegistrationStatusToString (_data_->_tmp235_, _data_->_tmp237_);
			_data_->_tmp239_ = _variant_new38 (_data_->_tmp238_);
			_g_variant_unref0 (_data_->strvalue);
			_data_->strvalue = _data_->_tmp239_;
			_fso_gsm_constants_unref0 (_data_->_tmp235_);
			_data_->_tmp240_ = fso_gsm_network_get_status_get_status ((FsoGsmNetworkGetStatus*) _data_->self);
			_data_->_tmp241_ = _data_->_tmp240_;
			_data_->_tmp242_ = g_strdup ("pdp.registration");
			_data_->_tmp243_ = _data_->strvalue;
			_data_->_tmp244_ = _g_variant_ref0 (_data_->_tmp243_);
			g_hash_table_insert (_data_->_tmp241_, _data_->_tmp242_, _data_->_tmp244_);
			_data_->_tmp245_ = _data_->cgreg;
			_data_->_tmp246_ = _data_->_tmp245_->lac;
			_data_->_tmp247_ = _variant_new39 (_data_->_tmp246_);
			_g_variant_unref0 (_data_->strvalue);
			_data_->strvalue = _data_->_tmp247_;
			_data_->_tmp248_ = fso_gsm_network_get_status_get_status ((FsoGsmNetworkGetStatus*) _data_->self);
			_data_->_tmp249_ = _data_->_tmp248_;
			_data_->_tmp250_ = g_strdup ("pdp.lac");
			_data_->_tmp251_ = _data_->strvalue;
			_data_->_tmp252_ = _g_variant_ref0 (_data_->_tmp251_);
			g_hash_table_insert (_data_->_tmp249_, _data_->_tmp250_, _data_->_tmp252_);
			_data_->_tmp253_ = _data_->cgreg;
			_data_->_tmp254_ = _data_->_tmp253_->cid;
			_data_->_tmp255_ = _variant_new40 (_data_->_tmp254_);
			_g_variant_unref0 (_data_->strvalue);
			_data_->strvalue = _data_->_tmp255_;
			_data_->_tmp256_ = fso_gsm_network_get_status_get_status ((FsoGsmNetworkGetStatus*) _data_->self);
			_data_->_tmp257_ = _data_->_tmp256_;
			_data_->_tmp258_ = g_strdup ("pdp.cid");
			_data_->_tmp259_ = _data_->strvalue;
			_data_->_tmp260_ = _g_variant_ref0 (_data_->_tmp259_);
			g_hash_table_insert (_data_->_tmp257_, _data_->_tmp258_, _data_->_tmp260_);
		}
		_data_->cgregResult2 = (_vala_array_free (_data_->cgregResult2, _data_->cgregResult2_length1, (GDestroyNotify) g_free), NULL);
	}
	_data_->cgregResult = (_vala_array_free (_data_->cgregResult, _data_->cgregResult_length1, (GDestroyNotify) g_free), NULL);
	_g_object_unref0 (_data_->cgreg);
	_data_->copsResult2 = (_vala_array_free (_data_->copsResult2, _data_->copsResult2_length1, (GDestroyNotify) g_free), NULL);
	_data_->copsResult = (_vala_array_free (_data_->copsResult, _data_->copsResult_length1, (GDestroyNotify) g_free), NULL);
	_data_->copsResult3 = (_vala_array_free (_data_->copsResult3, _data_->copsResult3_length1, (GDestroyNotify) g_free), NULL);
	_g_object_unref0 (_data_->cops);
	_data_->cregResult = (_vala_array_free (_data_->cregResult, _data_->cregResult_length1, (GDestroyNotify) g_free), NULL);
	_g_object_unref0 (_data_->creg);
	_data_->response = (_vala_array_free (_data_->response, _data_->response_length1, (GDestroyNotify) g_free), NULL);
	_g_object_unref0 (_data_->csq);
	_g_variant_unref0 (_data_->intvalue);
	_g_variant_unref0 (_data_->strvalue);
	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;
}


FsoGsmAtNetworkGetStatus* fso_gsm_at_network_get_status_construct (GType object_type) {
	FsoGsmAtNetworkGetStatus * self = NULL;
	self = (FsoGsmAtNetworkGetStatus*) fso_gsm_network_get_status_construct (object_type);
	return self;
}


FsoGsmAtNetworkGetStatus* fso_gsm_at_network_get_status_new (void) {
	return fso_gsm_at_network_get_status_construct (FSO_GSM_TYPE_AT_NETWORK_GET_STATUS);
}


static void fso_gsm_at_network_get_status_class_init (FsoGsmAtNetworkGetStatusClass * klass) {
	fso_gsm_at_network_get_status_parent_class = g_type_class_peek_parent (klass);
	FSO_GSM_NETWORK_GET_STATUS_CLASS (klass)->run = fso_gsm_at_network_get_status_real_run;
	FSO_GSM_NETWORK_GET_STATUS_CLASS (klass)->run_finish = fso_gsm_at_network_get_status_real_run_finish;
}


static void fso_gsm_at_network_get_status_instance_init (FsoGsmAtNetworkGetStatus * self) {
}


GType fso_gsm_at_network_get_status_get_type (void) {
	static volatile gsize fso_gsm_at_network_get_status_type_id__volatile = 0;
	if (g_once_init_enter (&fso_gsm_at_network_get_status_type_id__volatile)) {
		static const GTypeInfo g_define_type_info = { sizeof (FsoGsmAtNetworkGetStatusClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) fso_gsm_at_network_get_status_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (FsoGsmAtNetworkGetStatus), 0, (GInstanceInitFunc) fso_gsm_at_network_get_status_instance_init, NULL };
		GType fso_gsm_at_network_get_status_type_id;
		fso_gsm_at_network_get_status_type_id = g_type_register_static (FSO_GSM_TYPE_NETWORK_GET_STATUS, "FsoGsmAtNetworkGetStatus", &g_define_type_info, 0);
		g_once_init_leave (&fso_gsm_at_network_get_status_type_id__volatile, fso_gsm_at_network_get_status_type_id);
	}
	return fso_gsm_at_network_get_status_type_id__volatile;
}


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


static void fso_gsm_at_network_list_providers_real_run (FsoGsmNetworkListProviders* base, GAsyncReadyCallback _callback_, gpointer _user_data_) {
	FsoGsmAtNetworkListProviders * self;
	FsoGsmAtNetworkListProvidersRunData* _data_;
	FsoGsmAtNetworkListProviders* _tmp0_;
	self = (FsoGsmAtNetworkListProviders*) base;
	_data_ = g_slice_new0 (FsoGsmAtNetworkListProvidersRunData);
	_data_->_async_result = g_simple_async_result_new (G_OBJECT (self), _callback_, _user_data_, fso_gsm_at_network_list_providers_real_run);
	g_simple_async_result_set_op_res_gpointer (_data_->_async_result, _data_, fso_gsm_at_network_list_providers_real_run_data_free);
	_tmp0_ = _g_object_ref0 (self);
	_data_->self = _tmp0_;
	fso_gsm_at_network_list_providers_real_run_co (_data_);
}


static void fso_gsm_at_network_list_providers_real_run_finish (FsoGsmNetworkListProviders* base, GAsyncResult* _res_, GError** error) {
	FsoGsmAtNetworkListProvidersRunData* _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 fso_gsm_at_network_list_providers_run_ready (GObject* source_object, GAsyncResult* _res_, gpointer _user_data_) {
	FsoGsmAtNetworkListProvidersRunData* _data_;
	_data_ = _user_data_;
	_data_->_source_object_ = source_object;
	_data_->_res_ = _res_;
	fso_gsm_at_network_list_providers_real_run_co (_data_);
}


static gboolean fso_gsm_at_network_list_providers_real_run_co (FsoGsmAtNetworkListProvidersRunData* _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_ = NULL;
	_data_->_tmp1_ = fso_gsm_modem_createAtCommand (_data_->_tmp0_, FSO_GSM_TYPE_PLUS_COPS, (GBoxedCopyFunc) g_object_ref, g_object_unref, "+COPS");
	_data_->cmd = (FsoGsmPlusCOPS*) _data_->_tmp1_;
	_data_->_tmp2_ = fso_gsm_theModem;
	_data_->_tmp3_ = NULL;
	_data_->_tmp3_ = fso_gsm_plus_cops_test (_data_->cmd);
	_data_->_tmp4_ = _data_->_tmp3_;
	_data_->_tmp5_ = 0;
	_data_->_state_ = 1;
	fso_gsm_modem_processAtCommandAsync (_data_->_tmp2_, (FsoGsmAtCommand*) _data_->cmd, _data_->_tmp4_, FSO_GSM_MODEM_DEFAULT_RETRIES, fso_gsm_at_network_list_providers_run_ready, _data_);
	return FALSE;
	_state_1:
	_data_->_tmp6_ = NULL;
	_data_->_tmp6_ = fso_gsm_modem_processAtCommandAsync_finish (_data_->_tmp2_, _data_->_res_, &_data_->_tmp5_);
	_data_->_tmp7_ = _data_->_tmp6_;
	_data_->_tmp7__length1 = _data_->_tmp5_;
	_g_free0 (_data_->_tmp4_);
	_data_->response = _data_->_tmp7_;
	_data_->response_length1 = _data_->_tmp7__length1;
	_data_->_response_size_ = _data_->response_length1;
	fso_gsm_checkTestResponseValid ((FsoGsmAtCommand*) _data_->cmd, _data_->response, _data_->response_length1, &_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_);
			_data_->response = (_vala_array_free (_data_->response, _data_->response_length1, (GDestroyNotify) g_free), NULL);
			_g_object_unref0 (_data_->cmd);
			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 {
			_data_->response = (_vala_array_free (_data_->response, _data_->response_length1, (GDestroyNotify) g_free), NULL);
			_g_object_unref0 (_data_->cmd);
			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_->_tmp8_ = _data_->cmd->providers;
	_data_->_tmp8__length1 = _data_->cmd->providers_length1;
	fso_gsm_network_list_providers_set_providers ((FsoGsmNetworkListProviders*) _data_->self, _data_->_tmp8_, _data_->_tmp8__length1);
	_data_->response = (_vala_array_free (_data_->response, _data_->response_length1, (GDestroyNotify) g_free), NULL);
	_g_object_unref0 (_data_->cmd);
	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;
}


FsoGsmAtNetworkListProviders* fso_gsm_at_network_list_providers_construct (GType object_type) {
	FsoGsmAtNetworkListProviders * self = NULL;
	self = (FsoGsmAtNetworkListProviders*) fso_gsm_network_list_providers_construct (object_type);
	return self;
}


FsoGsmAtNetworkListProviders* fso_gsm_at_network_list_providers_new (void) {
	return fso_gsm_at_network_list_providers_construct (FSO_GSM_TYPE_AT_NETWORK_LIST_PROVIDERS);
}


static void fso_gsm_at_network_list_providers_class_init (FsoGsmAtNetworkListProvidersClass * klass) {
	fso_gsm_at_network_list_providers_parent_class = g_type_class_peek_parent (klass);
	FSO_GSM_NETWORK_LIST_PROVIDERS_CLASS (klass)->run = fso_gsm_at_network_list_providers_real_run;
	FSO_GSM_NETWORK_LIST_PROVIDERS_CLASS (klass)->run_finish = fso_gsm_at_network_list_providers_real_run_finish;
}


static void fso_gsm_at_network_list_providers_instance_init (FsoGsmAtNetworkListProviders * self) {
}


GType fso_gsm_at_network_list_providers_get_type (void) {
	static volatile gsize fso_gsm_at_network_list_providers_type_id__volatile = 0;
	if (g_once_init_enter (&fso_gsm_at_network_list_providers_type_id__volatile)) {
		static const GTypeInfo g_define_type_info = { sizeof (FsoGsmAtNetworkListProvidersClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) fso_gsm_at_network_list_providers_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (FsoGsmAtNetworkListProviders), 0, (GInstanceInitFunc) fso_gsm_at_network_list_providers_instance_init, NULL };
		GType fso_gsm_at_network_list_providers_type_id;
		fso_gsm_at_network_list_providers_type_id = g_type_register_static (FSO_GSM_TYPE_NETWORK_LIST_PROVIDERS, "FsoGsmAtNetworkListProviders", &g_define_type_info, 0);
		g_once_init_leave (&fso_gsm_at_network_list_providers_type_id__volatile, fso_gsm_at_network_list_providers_type_id);
	}
	return fso_gsm_at_network_list_providers_type_id__volatile;
}


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


static void fso_gsm_at_network_register_real_run (FsoGsmNetworkRegister* base, GAsyncReadyCallback _callback_, gpointer _user_data_) {
	FsoGsmAtNetworkRegister * self;
	FsoGsmAtNetworkRegisterRunData* _data_;
	FsoGsmAtNetworkRegister* _tmp0_;
	self = (FsoGsmAtNetworkRegister*) base;
	_data_ = g_slice_new0 (FsoGsmAtNetworkRegisterRunData);
	_data_->_async_result = g_simple_async_result_new (G_OBJECT (self), _callback_, _user_data_, fso_gsm_at_network_register_real_run);
	g_simple_async_result_set_op_res_gpointer (_data_->_async_result, _data_, fso_gsm_at_network_register_real_run_data_free);
	_tmp0_ = _g_object_ref0 (self);
	_data_->self = _tmp0_;
	fso_gsm_at_network_register_real_run_co (_data_);
}


static void fso_gsm_at_network_register_real_run_finish (FsoGsmNetworkRegister* base, GAsyncResult* _res_, GError** error) {
	FsoGsmAtNetworkRegisterRunData* _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 fso_gsm_at_network_register_run_ready (GObject* source_object, GAsyncResult* _res_, gpointer _user_data_) {
	FsoGsmAtNetworkRegisterRunData* _data_;
	_data_ = _user_data_;
	_data_->_source_object_ = source_object;
	_data_->_res_ = _res_;
	fso_gsm_at_network_register_real_run_co (_data_);
}


static gboolean fso_gsm_at_network_register_real_run_co (FsoGsmAtNetworkRegisterRunData* _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_ = NULL;
	_data_->_tmp1_ = fso_gsm_modem_createAtCommand (_data_->_tmp0_, FSO_GSM_TYPE_PLUS_COPS, (GBoxedCopyFunc) g_object_ref, g_object_unref, "+COPS");
	_data_->cmd = (FsoGsmPlusCOPS*) _data_->_tmp1_;
	_data_->_tmp2_ = fso_gsm_theModem;
	_data_->_tmp3_ = NULL;
	_data_->_tmp3_ = fso_gsm_plus_cops_issue (_data_->cmd, FSO_GSM_PLUS_COPS_ACTION_REGISTER_WITH_BEST_PROVIDER, FSO_GSM_PLUS_COPS_FORMAT_ALPHANUMERIC, 0);
	_data_->_tmp4_ = _data_->_tmp3_;
	_data_->_tmp5_ = 0;
	_data_->_state_ = 1;
	fso_gsm_modem_processAtCommandAsync (_data_->_tmp2_, (FsoGsmAtCommand*) _data_->cmd, _data_->_tmp4_, FSO_GSM_MODEM_DEFAULT_RETRIES, fso_gsm_at_network_register_run_ready, _data_);
	return FALSE;
	_state_1:
	_data_->_tmp6_ = NULL;
	_data_->_tmp6_ = fso_gsm_modem_processAtCommandAsync_finish (_data_->_tmp2_, _data_->_res_, &_data_->_tmp5_);
	_data_->_tmp7_ = _data_->_tmp6_;
	_data_->_tmp7__length1 = _data_->_tmp5_;
	_g_free0 (_data_->_tmp4_);
	_data_->response = _data_->_tmp7_;
	_data_->response_length1 = _data_->_tmp7__length1;
	_data_->_response_size_ = _data_->response_length1;
	fso_gsm_checkResponseOk ((FsoGsmAtCommand*) _data_->cmd, _data_->response, _data_->response_length1, &_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_);
			_data_->response = (_vala_array_free (_data_->response, _data_->response_length1, (GDestroyNotify) g_free), NULL);
			_g_object_unref0 (_data_->cmd);
			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 {
			_data_->response = (_vala_array_free (_data_->response, _data_->response_length1, (GDestroyNotify) g_free), NULL);
			_g_object_unref0 (_data_->cmd);
			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_->response = (_vala_array_free (_data_->response, _data_->response_length1, (GDestroyNotify) g_free), NULL);
	_g_object_unref0 (_data_->cmd);
	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;
}


FsoGsmAtNetworkRegister* fso_gsm_at_network_register_construct (GType object_type) {
	FsoGsmAtNetworkRegister * self = NULL;
	self = (FsoGsmAtNetworkRegister*) fso_gsm_network_register_construct (object_type);
	return self;
}


FsoGsmAtNetworkRegister* fso_gsm_at_network_register_new (void) {
	return fso_gsm_at_network_register_construct (FSO_GSM_TYPE_AT_NETWORK_REGISTER);
}


static void fso_gsm_at_network_register_class_init (FsoGsmAtNetworkRegisterClass * klass) {
	fso_gsm_at_network_register_parent_class = g_type_class_peek_parent (klass);
	FSO_GSM_NETWORK_REGISTER_CLASS (klass)->run = fso_gsm_at_network_register_real_run;
	FSO_GSM_NETWORK_REGISTER_CLASS (klass)->run_finish = fso_gsm_at_network_register_real_run_finish;
}


static void fso_gsm_at_network_register_instance_init (FsoGsmAtNetworkRegister * self) {
}


GType fso_gsm_at_network_register_get_type (void) {
	static volatile gsize fso_gsm_at_network_register_type_id__volatile = 0;
	if (g_once_init_enter (&fso_gsm_at_network_register_type_id__volatile)) {
		static const GTypeInfo g_define_type_info = { sizeof (FsoGsmAtNetworkRegisterClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) fso_gsm_at_network_register_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (FsoGsmAtNetworkRegister), 0, (GInstanceInitFunc) fso_gsm_at_network_register_instance_init, NULL };
		GType fso_gsm_at_network_register_type_id;
		fso_gsm_at_network_register_type_id = g_type_register_static (FSO_GSM_TYPE_NETWORK_REGISTER, "FsoGsmAtNetworkRegister", &g_define_type_info, 0);
		g_once_init_leave (&fso_gsm_at_network_register_type_id__volatile, fso_gsm_at_network_register_type_id);
	}
	return fso_gsm_at_network_register_type_id__volatile;
}


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


static void fso_gsm_at_network_unregister_real_run (FsoGsmNetworkUnregister* base, GAsyncReadyCallback _callback_, gpointer _user_data_) {
	FsoGsmAtNetworkUnregister * self;
	FsoGsmAtNetworkUnregisterRunData* _data_;
	FsoGsmAtNetworkUnregister* _tmp0_;
	self = (FsoGsmAtNetworkUnregister*) base;
	_data_ = g_slice_new0 (FsoGsmAtNetworkUnregisterRunData);
	_data_->_async_result = g_simple_async_result_new (G_OBJECT (self), _callback_, _user_data_, fso_gsm_at_network_unregister_real_run);
	g_simple_async_result_set_op_res_gpointer (_data_->_async_result, _data_, fso_gsm_at_network_unregister_real_run_data_free);
	_tmp0_ = _g_object_ref0 (self);
	_data_->self = _tmp0_;
	fso_gsm_at_network_unregister_real_run_co (_data_);
}


static void fso_gsm_at_network_unregister_real_run_finish (FsoGsmNetworkUnregister* base, GAsyncResult* _res_, GError** error) {
	FsoGsmAtNetworkUnregisterRunData* _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 fso_gsm_at_network_unregister_run_ready (GObject* source_object, GAsyncResult* _res_, gpointer _user_data_) {
	FsoGsmAtNetworkUnregisterRunData* _data_;
	_data_ = _user_data_;
	_data_->_source_object_ = source_object;
	_data_->_res_ = _res_;
	fso_gsm_at_network_unregister_real_run_co (_data_);
}


static gboolean fso_gsm_at_network_unregister_real_run_co (FsoGsmAtNetworkUnregisterRunData* _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_ = NULL;
	_data_->_tmp1_ = fso_gsm_modem_createAtCommand (_data_->_tmp0_, FSO_GSM_TYPE_PLUS_COPS, (GBoxedCopyFunc) g_object_ref, g_object_unref, "+COPS");
	_data_->cmd = (FsoGsmPlusCOPS*) _data_->_tmp1_;
	_data_->_tmp2_ = fso_gsm_theModem;
	_data_->_tmp3_ = NULL;
	_data_->_tmp3_ = fso_gsm_plus_cops_issue (_data_->cmd, FSO_GSM_PLUS_COPS_ACTION_UNREGISTER, FSO_GSM_PLUS_COPS_FORMAT_ALPHANUMERIC, 0);
	_data_->_tmp4_ = _data_->_tmp3_;
	_data_->_tmp5_ = 0;
	_data_->_state_ = 1;
	fso_gsm_modem_processAtCommandAsync (_data_->_tmp2_, (FsoGsmAtCommand*) _data_->cmd, _data_->_tmp4_, FSO_GSM_MODEM_DEFAULT_RETRIES, fso_gsm_at_network_unregister_run_ready, _data_);
	return FALSE;
	_state_1:
	_data_->_tmp6_ = NULL;
	_data_->_tmp6_ = fso_gsm_modem_processAtCommandAsync_finish (_data_->_tmp2_, _data_->_res_, &_data_->_tmp5_);
	_data_->_tmp7_ = _data_->_tmp6_;
	_data_->_tmp7__length1 = _data_->_tmp5_;
	_g_free0 (_data_->_tmp4_);
	_data_->response = _data_->_tmp7_;
	_data_->response_length1 = _data_->_tmp7__length1;
	_data_->_response_size_ = _data_->response_length1;
	fso_gsm_checkResponseOk ((FsoGsmAtCommand*) _data_->cmd, _data_->response, _data_->response_length1, &_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_);
			_data_->response = (_vala_array_free (_data_->response, _data_->response_length1, (GDestroyNotify) g_free), NULL);
			_g_object_unref0 (_data_->cmd);
			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 {
			_data_->response = (_vala_array_free (_data_->response, _data_->response_length1, (GDestroyNotify) g_free), NULL);
			_g_object_unref0 (_data_->cmd);
			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_->response = (_vala_array_free (_data_->response, _data_->response_length1, (GDestroyNotify) g_free), NULL);
	_g_object_unref0 (_data_->cmd);
	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;
}


FsoGsmAtNetworkUnregister* fso_gsm_at_network_unregister_construct (GType object_type) {
	FsoGsmAtNetworkUnregister * self = NULL;
	self = (FsoGsmAtNetworkUnregister*) fso_gsm_network_unregister_construct (object_type);
	return self;
}


FsoGsmAtNetworkUnregister* fso_gsm_at_network_unregister_new (void) {
	return fso_gsm_at_network_unregister_construct (FSO_GSM_TYPE_AT_NETWORK_UNREGISTER);
}


static void fso_gsm_at_network_unregister_class_init (FsoGsmAtNetworkUnregisterClass * klass) {
	fso_gsm_at_network_unregister_parent_class = g_type_class_peek_parent (klass);
	FSO_GSM_NETWORK_UNREGISTER_CLASS (klass)->run = fso_gsm_at_network_unregister_real_run;
	FSO_GSM_NETWORK_UNREGISTER_CLASS (klass)->run_finish = fso_gsm_at_network_unregister_real_run_finish;
}


static void fso_gsm_at_network_unregister_instance_init (FsoGsmAtNetworkUnregister * self) {
}


GType fso_gsm_at_network_unregister_get_type (void) {
	static volatile gsize fso_gsm_at_network_unregister_type_id__volatile = 0;
	if (g_once_init_enter (&fso_gsm_at_network_unregister_type_id__volatile)) {
		static const GTypeInfo g_define_type_info = { sizeof (FsoGsmAtNetworkUnregisterClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) fso_gsm_at_network_unregister_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (FsoGsmAtNetworkUnregister), 0, (GInstanceInitFunc) fso_gsm_at_network_unregister_instance_init, NULL };
		GType fso_gsm_at_network_unregister_type_id;
		fso_gsm_at_network_unregister_type_id = g_type_register_static (FSO_GSM_TYPE_NETWORK_UNREGISTER, "FsoGsmAtNetworkUnregister", &g_define_type_info, 0);
		g_once_init_leave (&fso_gsm_at_network_unregister_type_id__volatile, fso_gsm_at_network_unregister_type_id);
	}
	return fso_gsm_at_network_unregister_type_id__volatile;
}


static void fso_gsm_at_network_send_ussd_request_real_run_data_free (gpointer _data) {
	FsoGsmAtNetworkSendUssdRequestRunData* _data_;
	_data_ = _data;
	_g_free0 (_data_->request);
	_g_object_unref0 (_data_->self);
	g_slice_free (FsoGsmAtNetworkSendUssdRequestRunData, _data_);
}


static void fso_gsm_at_network_send_ussd_request_real_run (FsoGsmNetworkSendUssdRequest* base, const gchar* request, GAsyncReadyCallback _callback_, gpointer _user_data_) {
	FsoGsmAtNetworkSendUssdRequest * self;
	FsoGsmAtNetworkSendUssdRequestRunData* _data_;
	FsoGsmAtNetworkSendUssdRequest* _tmp0_;
	const gchar* _tmp1_;
	gchar* _tmp2_;
	self = (FsoGsmAtNetworkSendUssdRequest*) base;
	_data_ = g_slice_new0 (FsoGsmAtNetworkSendUssdRequestRunData);
	_data_->_async_result = g_simple_async_result_new (G_OBJECT (self), _callback_, _user_data_, fso_gsm_at_network_send_ussd_request_real_run);
	g_simple_async_result_set_op_res_gpointer (_data_->_async_result, _data_, fso_gsm_at_network_send_ussd_request_real_run_data_free);
	_tmp0_ = _g_object_ref0 (self);
	_data_->self = _tmp0_;
	_tmp1_ = request;
	_tmp2_ = g_strdup (_tmp1_);
	_data_->request = _tmp2_;
	fso_gsm_at_network_send_ussd_request_real_run_co (_data_);
}


static void fso_gsm_at_network_send_ussd_request_real_run_finish (FsoGsmNetworkSendUssdRequest* base, GAsyncResult* _res_, GError** error) {
	FsoGsmAtNetworkSendUssdRequestRunData* _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 fso_gsm_at_network_send_ussd_request_run_ready (GObject* source_object, GAsyncResult* _res_, gpointer _user_data_) {
	FsoGsmAtNetworkSendUssdRequestRunData* _data_;
	_data_ = _user_data_;
	_data_->_source_object_ = source_object;
	_data_->_res_ = _res_;
	fso_gsm_at_network_send_ussd_request_real_run_co (_data_);
}


static gboolean fso_gsm_at_network_send_ussd_request_real_run_co (FsoGsmAtNetworkSendUssdRequestRunData* _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_ = NULL;
	_data_->_tmp1_ = fso_gsm_modem_createAtCommand (_data_->_tmp0_, FSO_GSM_TYPE_PLUS_CUSD, (GBoxedCopyFunc) g_object_ref, g_object_unref, "+CUSD");
	_data_->cmd = (FsoGsmPlusCUSD*) _data_->_tmp1_;
	_data_->_tmp2_ = fso_gsm_theModem;
	_data_->_tmp3_ = _data_->request;
	_data_->_tmp4_ = NULL;
	_data_->_tmp4_ = fso_gsm_plus_cusd_query (_data_->cmd, _data_->_tmp3_);
	_data_->_tmp5_ = _data_->_tmp4_;
	_data_->_tmp6_ = 0;
	_data_->_state_ = 1;
	fso_gsm_modem_processAtCommandAsync (_data_->_tmp2_, (FsoGsmAtCommand*) _data_->cmd, _data_->_tmp5_, FSO_GSM_MODEM_DEFAULT_RETRIES, fso_gsm_at_network_send_ussd_request_run_ready, _data_);
	return FALSE;
	_state_1:
	_data_->_tmp7_ = NULL;
	_data_->_tmp7_ = fso_gsm_modem_processAtCommandAsync_finish (_data_->_tmp2_, _data_->_res_, &_data_->_tmp6_);
	_data_->_tmp8_ = _data_->_tmp7_;
	_data_->_tmp8__length1 = _data_->_tmp6_;
	_g_free0 (_data_->_tmp5_);
	_data_->response = _data_->_tmp8_;
	_data_->response_length1 = _data_->_tmp8__length1;
	_data_->_response_size_ = _data_->response_length1;
	fso_gsm_checkResponseOk ((FsoGsmAtCommand*) _data_->cmd, _data_->response, _data_->response_length1, &_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_);
			_data_->response = (_vala_array_free (_data_->response, _data_->response_length1, (GDestroyNotify) g_free), NULL);
			_g_object_unref0 (_data_->cmd);
			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 {
			_data_->response = (_vala_array_free (_data_->response, _data_->response_length1, (GDestroyNotify) g_free), NULL);
			_g_object_unref0 (_data_->cmd);
			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_->response = (_vala_array_free (_data_->response, _data_->response_length1, (GDestroyNotify) g_free), NULL);
	_g_object_unref0 (_data_->cmd);
	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;
}


FsoGsmAtNetworkSendUssdRequest* fso_gsm_at_network_send_ussd_request_construct (GType object_type) {
	FsoGsmAtNetworkSendUssdRequest * self = NULL;
	self = (FsoGsmAtNetworkSendUssdRequest*) fso_gsm_network_send_ussd_request_construct (object_type);
	return self;
}


FsoGsmAtNetworkSendUssdRequest* fso_gsm_at_network_send_ussd_request_new (void) {
	return fso_gsm_at_network_send_ussd_request_construct (FSO_GSM_TYPE_AT_NETWORK_SEND_USSD_REQUEST);
}


static void fso_gsm_at_network_send_ussd_request_class_init (FsoGsmAtNetworkSendUssdRequestClass * klass) {
	fso_gsm_at_network_send_ussd_request_parent_class = g_type_class_peek_parent (klass);
	FSO_GSM_NETWORK_SEND_USSD_REQUEST_CLASS (klass)->run = fso_gsm_at_network_send_ussd_request_real_run;
	FSO_GSM_NETWORK_SEND_USSD_REQUEST_CLASS (klass)->run_finish = fso_gsm_at_network_send_ussd_request_real_run_finish;
}


static void fso_gsm_at_network_send_ussd_request_instance_init (FsoGsmAtNetworkSendUssdRequest * self) {
}


GType fso_gsm_at_network_send_ussd_request_get_type (void) {
	static volatile gsize fso_gsm_at_network_send_ussd_request_type_id__volatile = 0;
	if (g_once_init_enter (&fso_gsm_at_network_send_ussd_request_type_id__volatile)) {
		static const GTypeInfo g_define_type_info = { sizeof (FsoGsmAtNetworkSendUssdRequestClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) fso_gsm_at_network_send_ussd_request_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (FsoGsmAtNetworkSendUssdRequest), 0, (GInstanceInitFunc) fso_gsm_at_network_send_ussd_request_instance_init, NULL };
		GType fso_gsm_at_network_send_ussd_request_type_id;
		fso_gsm_at_network_send_ussd_request_type_id = g_type_register_static (FSO_GSM_TYPE_NETWORK_SEND_USSD_REQUEST, "FsoGsmAtNetworkSendUssdRequest", &g_define_type_info, 0);
		g_once_init_leave (&fso_gsm_at_network_send_ussd_request_type_id__volatile, fso_gsm_at_network_send_ussd_request_type_id);
	}
	return fso_gsm_at_network_send_ussd_request_type_id__volatile;
}


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


static void fso_gsm_at_network_get_calling_id_real_run (FsoGsmNetworkGetCallingId* base, GAsyncReadyCallback _callback_, gpointer _user_data_) {
	FsoGsmAtNetworkGetCallingId * self;
	FsoGsmAtNetworkGetCallingIdRunData* _data_;
	FsoGsmAtNetworkGetCallingId* _tmp0_;
	self = (FsoGsmAtNetworkGetCallingId*) base;
	_data_ = g_slice_new0 (FsoGsmAtNetworkGetCallingIdRunData);
	_data_->_async_result = g_simple_async_result_new (G_OBJECT (self), _callback_, _user_data_, fso_gsm_at_network_get_calling_id_real_run);
	g_simple_async_result_set_op_res_gpointer (_data_->_async_result, _data_, fso_gsm_at_network_get_calling_id_real_run_data_free);
	_tmp0_ = _g_object_ref0 (self);
	_data_->self = _tmp0_;
	fso_gsm_at_network_get_calling_id_real_run_co (_data_);
}


static void fso_gsm_at_network_get_calling_id_real_run_finish (FsoGsmNetworkGetCallingId* base, GAsyncResult* _res_, GError** error) {
	FsoGsmAtNetworkGetCallingIdRunData* _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 fso_gsm_at_network_get_calling_id_run_ready (GObject* source_object, GAsyncResult* _res_, gpointer _user_data_) {
	FsoGsmAtNetworkGetCallingIdRunData* _data_;
	_data_ = _user_data_;
	_data_->_source_object_ = source_object;
	_data_->_res_ = _res_;
	fso_gsm_at_network_get_calling_id_real_run_co (_data_);
}


static gboolean fso_gsm_at_network_get_calling_id_real_run_co (FsoGsmAtNetworkGetCallingIdRunData* _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_ = NULL;
	_data_->_tmp1_ = fso_gsm_modem_createAtCommand (_data_->_tmp0_, FSO_GSM_TYPE_PLUS_CLIR, (GBoxedCopyFunc) g_object_ref, g_object_unref, "+CLIR");
	_data_->cmd = (FsoGsmPlusCLIR*) _data_->_tmp1_;
	_data_->_tmp2_ = fso_gsm_theModem;
	_data_->_tmp3_ = NULL;
	_data_->_tmp3_ = fso_gsm_simple_at_command_query ((FsoGsmSimpleAtCommand*) _data_->cmd);
	_data_->_tmp4_ = _data_->_tmp3_;
	_data_->_tmp5_ = 0;
	_data_->_state_ = 1;
	fso_gsm_modem_processAtCommandAsync (_data_->_tmp2_, (FsoGsmAtCommand*) _data_->cmd, _data_->_tmp4_, FSO_GSM_MODEM_DEFAULT_RETRIES, fso_gsm_at_network_get_calling_id_run_ready, _data_);
	return FALSE;
	_state_1:
	_data_->_tmp6_ = NULL;
	_data_->_tmp6_ = fso_gsm_modem_processAtCommandAsync_finish (_data_->_tmp2_, _data_->_res_, &_data_->_tmp5_);
	_data_->_tmp7_ = _data_->_tmp6_;
	_data_->_tmp7__length1 = _data_->_tmp5_;
	_g_free0 (_data_->_tmp4_);
	_data_->response = _data_->_tmp7_;
	_data_->response_length1 = _data_->_tmp7__length1;
	_data_->_response_size_ = _data_->response_length1;
	fso_gsm_checkResponseValid ((FsoGsmAtCommand*) _data_->cmd, _data_->response, _data_->response_length1, &_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_);
			_data_->response = (_vala_array_free (_data_->response, _data_->response_length1, (GDestroyNotify) g_free), NULL);
			_g_object_unref0 (_data_->cmd);
			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 {
			_data_->response = (_vala_array_free (_data_->response, _data_->response_length1, (GDestroyNotify) g_free), NULL);
			_g_object_unref0 (_data_->cmd);
			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_->_tmp8_ = ((FsoGsmSimpleAtCommand*) _data_->cmd)->value;
	fso_gsm_network_get_calling_id_set_status ((FsoGsmNetworkGetCallingId*) _data_->self, (FreeSmartphoneGSMCallingIdentificationStatus) GPOINTER_TO_INT (_data_->_tmp8_));
	_data_->response = (_vala_array_free (_data_->response, _data_->response_length1, (GDestroyNotify) g_free), NULL);
	_g_object_unref0 (_data_->cmd);
	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;
}


FsoGsmAtNetworkGetCallingId* fso_gsm_at_network_get_calling_id_construct (GType object_type) {
	FsoGsmAtNetworkGetCallingId * self = NULL;
	self = (FsoGsmAtNetworkGetCallingId*) fso_gsm_network_get_calling_id_construct (object_type);
	return self;
}


FsoGsmAtNetworkGetCallingId* fso_gsm_at_network_get_calling_id_new (void) {
	return fso_gsm_at_network_get_calling_id_construct (FSO_GSM_TYPE_AT_NETWORK_GET_CALLING_ID);
}


static void fso_gsm_at_network_get_calling_id_class_init (FsoGsmAtNetworkGetCallingIdClass * klass) {
	fso_gsm_at_network_get_calling_id_parent_class = g_type_class_peek_parent (klass);
	FSO_GSM_NETWORK_GET_CALLING_ID_CLASS (klass)->run = fso_gsm_at_network_get_calling_id_real_run;
	FSO_GSM_NETWORK_GET_CALLING_ID_CLASS (klass)->run_finish = fso_gsm_at_network_get_calling_id_real_run_finish;
}


static void fso_gsm_at_network_get_calling_id_instance_init (FsoGsmAtNetworkGetCallingId * self) {
}


GType fso_gsm_at_network_get_calling_id_get_type (void) {
	static volatile gsize fso_gsm_at_network_get_calling_id_type_id__volatile = 0;
	if (g_once_init_enter (&fso_gsm_at_network_get_calling_id_type_id__volatile)) {
		static const GTypeInfo g_define_type_info = { sizeof (FsoGsmAtNetworkGetCallingIdClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) fso_gsm_at_network_get_calling_id_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (FsoGsmAtNetworkGetCallingId), 0, (GInstanceInitFunc) fso_gsm_at_network_get_calling_id_instance_init, NULL };
		GType fso_gsm_at_network_get_calling_id_type_id;
		fso_gsm_at_network_get_calling_id_type_id = g_type_register_static (FSO_GSM_TYPE_NETWORK_GET_CALLING_ID, "FsoGsmAtNetworkGetCallingId", &g_define_type_info, 0);
		g_once_init_leave (&fso_gsm_at_network_get_calling_id_type_id__volatile, fso_gsm_at_network_get_calling_id_type_id);
	}
	return fso_gsm_at_network_get_calling_id_type_id__volatile;
}


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


static void fso_gsm_at_network_set_calling_id_real_run (FsoGsmNetworkSetCallingId* base, FreeSmartphoneGSMCallingIdentificationStatus status, GAsyncReadyCallback _callback_, gpointer _user_data_) {
	FsoGsmAtNetworkSetCallingId * self;
	FsoGsmAtNetworkSetCallingIdRunData* _data_;
	FsoGsmAtNetworkSetCallingId* _tmp0_;
	FreeSmartphoneGSMCallingIdentificationStatus _tmp1_;
	self = (FsoGsmAtNetworkSetCallingId*) base;
	_data_ = g_slice_new0 (FsoGsmAtNetworkSetCallingIdRunData);
	_data_->_async_result = g_simple_async_result_new (G_OBJECT (self), _callback_, _user_data_, fso_gsm_at_network_set_calling_id_real_run);
	g_simple_async_result_set_op_res_gpointer (_data_->_async_result, _data_, fso_gsm_at_network_set_calling_id_real_run_data_free);
	_tmp0_ = _g_object_ref0 (self);
	_data_->self = _tmp0_;
	_tmp1_ = status;
	_data_->status = _tmp1_;
	fso_gsm_at_network_set_calling_id_real_run_co (_data_);
}


static void fso_gsm_at_network_set_calling_id_real_run_finish (FsoGsmNetworkSetCallingId* base, GAsyncResult* _res_, GError** error) {
	FsoGsmAtNetworkSetCallingIdRunData* _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 fso_gsm_at_network_set_calling_id_run_ready (GObject* source_object, GAsyncResult* _res_, gpointer _user_data_) {
	FsoGsmAtNetworkSetCallingIdRunData* _data_;
	_data_ = _user_data_;
	_data_->_source_object_ = source_object;
	_data_->_res_ = _res_;
	fso_gsm_at_network_set_calling_id_real_run_co (_data_);
}


static gboolean fso_gsm_at_network_set_calling_id_real_run_co (FsoGsmAtNetworkSetCallingIdRunData* _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_ = NULL;
	_data_->_tmp1_ = fso_gsm_modem_createAtCommand (_data_->_tmp0_, FSO_GSM_TYPE_PLUS_CLIR, (GBoxedCopyFunc) g_object_ref, g_object_unref, "+CLIR");
	_data_->cmd = (FsoGsmPlusCLIR*) _data_->_tmp1_;
	_data_->_tmp2_ = fso_gsm_theModem;
	_data_->_tmp3_ = _data_->status;
	_data_->_tmp4_ = NULL;
	_data_->_tmp4_ = fso_gsm_simple_at_command_issue ((FsoGsmSimpleAtCommand*) _data_->cmd, GINT_TO_POINTER ((gint) _data_->_tmp3_));
	_data_->_tmp5_ = _data_->_tmp4_;
	_data_->_tmp6_ = 0;
	_data_->_state_ = 1;
	fso_gsm_modem_processAtCommandAsync (_data_->_tmp2_, (FsoGsmAtCommand*) _data_->cmd, _data_->_tmp5_, FSO_GSM_MODEM_DEFAULT_RETRIES, fso_gsm_at_network_set_calling_id_run_ready, _data_);
	return FALSE;
	_state_1:
	_data_->_tmp7_ = NULL;
	_data_->_tmp7_ = fso_gsm_modem_processAtCommandAsync_finish (_data_->_tmp2_, _data_->_res_, &_data_->_tmp6_);
	_data_->_tmp8_ = _data_->_tmp7_;
	_data_->_tmp8__length1 = _data_->_tmp6_;
	_g_free0 (_data_->_tmp5_);
	_data_->response = _data_->_tmp8_;
	_data_->response_length1 = _data_->_tmp8__length1;
	_data_->_response_size_ = _data_->response_length1;
	fso_gsm_checkResponseOk ((FsoGsmAtCommand*) _data_->cmd, _data_->response, _data_->response_length1, &_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_);
			_data_->response = (_vala_array_free (_data_->response, _data_->response_length1, (GDestroyNotify) g_free), NULL);
			_g_object_unref0 (_data_->cmd);
			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 {
			_data_->response = (_vala_array_free (_data_->response, _data_->response_length1, (GDestroyNotify) g_free), NULL);
			_g_object_unref0 (_data_->cmd);
			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_->response = (_vala_array_free (_data_->response, _data_->response_length1, (GDestroyNotify) g_free), NULL);
	_g_object_unref0 (_data_->cmd);
	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;
}


FsoGsmAtNetworkSetCallingId* fso_gsm_at_network_set_calling_id_construct (GType object_type) {
	FsoGsmAtNetworkSetCallingId * self = NULL;
	self = (FsoGsmAtNetworkSetCallingId*) fso_gsm_network_set_calling_id_construct (object_type);
	return self;
}


FsoGsmAtNetworkSetCallingId* fso_gsm_at_network_set_calling_id_new (void) {
	return fso_gsm_at_network_set_calling_id_construct (FSO_GSM_TYPE_AT_NETWORK_SET_CALLING_ID);
}


static void fso_gsm_at_network_set_calling_id_class_init (FsoGsmAtNetworkSetCallingIdClass * klass) {
	fso_gsm_at_network_set_calling_id_parent_class = g_type_class_peek_parent (klass);
	FSO_GSM_NETWORK_SET_CALLING_ID_CLASS (klass)->run = fso_gsm_at_network_set_calling_id_real_run;
	FSO_GSM_NETWORK_SET_CALLING_ID_CLASS (klass)->run_finish = fso_gsm_at_network_set_calling_id_real_run_finish;
}


static void fso_gsm_at_network_set_calling_id_instance_init (FsoGsmAtNetworkSetCallingId * self) {
}


GType fso_gsm_at_network_set_calling_id_get_type (void) {
	static volatile gsize fso_gsm_at_network_set_calling_id_type_id__volatile = 0;
	if (g_once_init_enter (&fso_gsm_at_network_set_calling_id_type_id__volatile)) {
		static const GTypeInfo g_define_type_info = { sizeof (FsoGsmAtNetworkSetCallingIdClass), (GBaseInitFunc) NULL, (GBaseFinalizeFunc) NULL, (GClassInitFunc) fso_gsm_at_network_set_calling_id_class_init, (GClassFinalizeFunc) NULL, NULL, sizeof (FsoGsmAtNetworkSetCallingId), 0, (GInstanceInitFunc) fso_gsm_at_network_set_calling_id_instance_init, NULL };
		GType fso_gsm_at_network_set_calling_id_type_id;
		fso_gsm_at_network_set_calling_id_type_id = g_type_register_static (FSO_GSM_TYPE_NETWORK_SET_CALLING_ID, "FsoGsmAtNetworkSetCallingId", &g_define_type_info, 0);
		g_once_init_leave (&fso_gsm_at_network_set_calling_id_type_id__volatile, fso_gsm_at_network_set_calling_id_type_id);
	}
	return fso_gsm_at_network_set_calling_id_type_id__volatile;
}


static void _vala_array_destroy (gpointer array, gint array_length, GDestroyNotify destroy_func) {
	if ((array != NULL) && (destroy_func != NULL)) {
		int i;
		for (i = 0; i < array_length; i = i + 1) {
			if (((gpointer*) array)[i] != NULL) {
				destroy_func (((gpointer*) array)[i]);
			}
		}
	}
}


static void _vala_array_free (gpointer array, gint array_length, GDestroyNotify destroy_func) {
	_vala_array_destroy (array, array_length, destroy_func);
	g_free (array);
}



