# Info

const unsigned char *GSM_GetNetworkName(const char *NetworkCode)

  Find network name from given network code.

const unsigned char *GSM_GetCountryName(const char *CountryCode)

  Find country name from given country code.

const char *GSM_FeatureToString(GSM_Feature feature)

  Converts feature value to string.

  Parameters:

    - feature – GSM_Feature to convert.

  Returns:

    Pointer to static string with string for specified feature, NULL on failure.

GSM_Feature GSM_FeatureFromString(const char *feature)

  Converts feature string to value.

  Parameters:

    - feature – GSM_Feature string to convert.

  Returns:

    GSM_Feature value, 0 on failure.

gboolean GSM_IsPhoneFeatureAvailable(GSM_PhoneModel *model, GSM_Feature feature)

  Checks whether phone supports features.

  Parameters:

    - model – Model information (you can get it using GSM_GetModelInfo).

    - feature – GSM_Feature to check for.

  Returns:

    True if phone has defined this feature.

gboolean GSM_AddPhoneFeature(GSM_PhoneModel *model, GSM_Feature feature)

  Adds feature to phone configuration.

  Parameters:

    - model – Model information (you can get it using GSM_GetModelInfo).

    - feature – GSM_Feature to check for.

  Returns:

    True if phone has defined this feature.

GSM_Error GSM_GetManufacturer(GSM_StateMachine *s, char *value)

  Reads manufacturer from phone.

  Parameters:

    - s – State machine pointer.

    - value – Pointer where to store manufacturer name

  Returns:

    Error code.

GSM_Error GSM_GetModel(GSM_StateMachine *s, char *value)

  Reads model from phone.

  Parameters:

    - s – State machine pointer.

    - value – Pointer where to store model name

  Returns:

    Error code.

GSM_PhoneModel *GSM_GetModelInfo(GSM_StateMachine *s)

  Reads model info from state machine.

  Parameters:

    - s – State machine pointer.

  Returns:

    Pointer to phone information structure.

GSM_Error GSM_GetFirmware(GSM_StateMachine *s, char *value, char *date, double *num)

  Reads firmware information from phone.

  Parameters:

    - s – State machine pointer.

    - value – Pointer where to store revision text

    - date – Pointer where to store revision date

    - num – Pointer where to store revision number

  Returns:

    Error code.

GSM_Error GSM_GetIMEI(GSM_StateMachine *s, char *value)

  Reads IMEI/serial number from phone.

  Parameters:

    - s – State machine pointer.

    - value – Pointer where to store IMEI, NULL to ignore.

  Returns:

    Error code.

GSM_Error GSM_GetOriginalIMEI(GSM_StateMachine *s, char *value)

  Gets date and time from phone.

GSM_Error GSM_GetManufactureMonth(GSM_StateMachine *s, char *value)

  Gets month when device was manufactured.

GSM_Error GSM_GetProductCode(GSM_StateMachine *s, char *value)

  Gets product code of device.

GSM_Error GSM_GetHardware(GSM_StateMachine *s, char *value)

  Gets hardware information about device.

GSM_Error GSM_GetPPM(GSM_StateMachine *s, char *value)

  Gets PPM (Post Programmable Memory) info from phone (in other words for Nokia get, which language pack is in phone)

GSM_Error GSM_GetSIMIMSI(GSM_StateMachine *s, char *IMSI)

  Gets SIM IMSI from phone.

GSM_Error GSM_GetBatteryCharge(GSM_StateMachine *s, GSM_BatteryCharge *bat)

  Gets information about batery charge and phone charging state.

GSM_Error GSM_GetSignalQuality(GSM_StateMachine *s, GSM_SignalQuality *sig)

  Reads signal quality (strength and error rate).

GSM_Error GSM_GetNetworkInfo(GSM_StateMachine *s, GSM_NetworkInfo *netinfo)

  Gets network information.

GSM_Error GSM_GetDisplayStatus(GSM_StateMachine *s, GSM_DisplayFeatures *features)

  Acquired display status.

enum GSM_NetworkInfo_State

  Status of network logging

  Values:

  enumerator GSM_HomeNetwork

    Home network for used SIM card.

  enumerator GSM_NoNetwork

    No network available for used SIM card.

  enumerator GSM_RoamingNetwork

    SIM card uses roaming.

  enumerator GSM_RegistrationDenied

    Network registration denied - card blocked or expired or disabled.

  enumerator GSM_NetworkStatusUnknown

    Unknown network status.

  enumerator GSM_RequestingNetwork

    Network explicitely requested by user.

enum GSM_GPRS_State

  Status of GPRS connection.

  Values:

  enumerator GSM_GPRS_Detached

    GRPS is detached.

  enumerator GSM_GPRS_Attached

    GRPS is attached.

struct GSM_NetworkInfo

  Structure for getting the current network info.

  Public Members

  char CID[10]

    Cell ID (CID)

  char NetworkCode[10]

    GSM network code.

  GSM_NetworkInfo_State State

    Status of network logging. If phone is not logged into any network, some values are not filled

  char LAC[10]

    LAC (Local Area Code).

  unsigned char NetworkName[20 * 2]

    Name of current network returned from phone (or empty). The buffer needs to have twice the capacity of the longest supported network name to account for decoding.

  GSM_GPRS_State GPRS

    GPRS state.

  char PacketCID[10]

    Cell ID (CID) for packet network

  GSM_NetworkInfo_State PacketState

    Status of network logging for packet data. If phone is not logged into any network, some values are not filled

  char PacketLAC[10]

    LAC (Local Area Code) for packet data.

struct GSM_SignalQuality

  Information about signal quality, all these should be -1 when unknown.

  Public Members

  int SignalPercent

    Signal strength in percent.

  int BitErrorRate

    Bit error rate in percent.

enum GSM_ChargeState

  Power source

  Values:

  enumerator GSM_BatteryPowered

    Powered from battery

  enumerator GSM_BatteryConnected

    Powered from AC, battery connected

  enumerator GSM_BatteryCharging

    Powered from AC, battery is charging

  enumerator GSM_BatteryNotConnected

    Powered from AC, no battery

  enumerator GSM_BatteryFull

    Powered from AC, battery is fully charged

  enumerator GSM_PowerFault

    Power failure

enum GSM_BatteryType

  Power source

  Values:

  enumerator GSM_BatteryUnknown

    Unknown battery

  enumerator GSM_BatteryNiMH

    NiMH battery

  enumerator GSM_BatteryLiIon

    Lithium Ion battery

  enumerator GSM_BatteryLiPol

    Lithium Polymer battery

struct GSM_BatteryCharge

  Battery status

  Public Members

  int BatteryPercent

    Signal strength in percent, -1 = unknown

  GSM_ChargeState ChargeState

    Charge state

  int BatteryVoltage

    Current battery voltage (in mV).

  int ChargeVoltage

    Voltage from charger (in mV)

  int ChargeCurrent

    Current from charger (in mA)

  int PhoneCurrent

    Phone current consumption (in mA)

  int BatteryTemperature

    Battery temperature (in degrees Celsius)

  int PhoneTemperature

    Phone temperature (in degrees Celsius)

  int BatteryCapacity

    Remaining battery capacity (in mAh)

  GSM_BatteryType BatteryType

    Battery type

enum GSM_DisplayFeature

  Display feature

  Values:

  enumerator GSM_CallActive
  enumerator GSM_SMSMemoryFull

    blinking envelope

  enumerator GSM_FaxCall
  enumerator GSM_UnreadSMS
  enumerator GSM_DataCall
  enumerator GSM_VoiceCall
  enumerator GSM_KeypadLocked

struct GSM_DisplayFeatures

  Display features

enum GSM_Feature

  Phone features definition. This is usually used for things, which can not be determined on run time.

  Values:

  enumerator F_CAL33

    Calendar,3310 style - 10 reminders, Unicode, 3 coding types

  enumerator F_CAL52

    Calendar,5210 style - full Unicode, etc.

  enumerator F_CAL82

    Calendar,8250 style - “normal”, but with Unicode

  enumerator F_RING_SM

    Ringtones returned in SM format - 33xx

  enumerator F_NORING

    No ringtones

  enumerator F_NOPBKUNICODE

    No phonebook in Unicode

  enumerator F_NOWAP

    No WAP

  enumerator F_NOCALLER

    No caller groups

  enumerator F_NOPICTURE

    No Picture Images

  enumerator F_NOPICTUREUNI

    No Picture Images text in Unicode

  enumerator F_NOSTARTUP

    No startup logo

  enumerator F_NOCALENDAR

    No calendar

  enumerator F_NOSTARTANI

    Startup logo is not animated

  enumerator F_POWER_BATT

    Network and battery level get from netmonitor

  enumerator F_PROFILES33

    Phone profiles in 3310 style

  enumerator F_PROFILES51

    Phone profiles in 5110 style

  enumerator F_MAGICBYTES

    Phone can make authentication with magic bytes

  enumerator F_NODTMF

    Phone can’t send DTMF

  enumerator F_DISPSTATUS

    Phone return display status

  enumerator F_NOCALLINFO

    Phone does not return call info

  enumerator F_DAYMONTH

    Day and month reversed in pbk, when compare to GSM models

  enumerator F_PBK35

    Phonebook in 3510 style with ringtones ID

  enumerator F_PBKIMG

    Phonebook in 7250 style with picture ID

  enumerator F_PBKTONEGAL

    Phonebook with selecting ringtones from gallery

  enumerator F_PBKSMSLIST

    Phonebook with SMS list

  enumerator F_PBKUSER

    Phonebook with user ID

  enumerator F_6230iCALLER

    Caller groups like in 6230i

  enumerator F_RADIO

    Phone with FM radio

  enumerator F_TODO63

    ToDo in 6310 style - 0x55 msg type

  enumerator F_TODO66

    ToDo in 6610 style - like calendar, with date and other

  enumerator F_NOMIDI

    No ringtones in MIDI

  enumerator F_BLUETOOTH

    Bluetooth support

  enumerator F_NOFILESYSTEM

    No images, ringtones, java saved in special filesystem

  enumerator F_NOMMS

    No MMS sets in phone

  enumerator F_NOGPRSPOINT

    GPRS point are not useable

  enumerator F_CAL35

    Calendar,3510 style - Reminder,Call,Birthday

  enumerator F_CAL65

    Calendar,6510 style - CBMM, method 3

  enumerator F_WAPMMSPROXY

    WAP & MMS settings contains first & second proxy

  enumerator F_CHAT

    Phone with Chat settings

  enumerator F_SYNCML

    Phone with SyncML settings

  enumerator F_FILES2

    Filesystem version 2

  enumerator F_NOFILE1

    No filesystem version 1

  enumerator F_6230iWAP

    WAP, MMS, etc. settings like in 6230i - unknown now

  enumerator F_PROFILES

    Profiles support available

  enumerator F_SERIES40_30

    Series 40 3.0

  enumerator F_SMS_FILES

    SMS are read from filesystem files like in Series 40 3.0

  enumerator F_3220_MMS

    MMS storage as in 3320

  enumerator F_VOICETAGS

    Voice tags available

  enumerator F_CAL62

    Calendar,6210 style - Call,Birthday,Memo,Meeting

  enumerator F_NOTES

    Notes supported

  enumerator F_SMSONLYSENT

    Phone supports only sent/unsent messages

  enumerator F_BROKENCPBS

    CPBS on some memories can hang phone

  enumerator F_M20SMS

    Siemens M20 like SMS handling

  enumerator F_SLOWWRITE

    Use slower writing which some phone need

  enumerator F_SMSME900

    SMS in ME start from location 900 - case of Sagem

  enumerator F_ALCATEL

    Phone supports Alcatel protocol

  enumerator F_OBEX

    Phone can switch to OBEX protocol from AT mode

  enumerator F_IRMC_LEVEL_2

    Phone supports IrMC level 2 even if it doesn’t report it

  enumerator F_MODE22

    Switching to OBEX mode is done using AT+MODE=22

  enumerator F_SMS_LOCATION_0

    Locations of SMS memories start from 0

  enumerator F_NO_UCS2

    Phone does not support UCS2 even if it reports it.

  enumerator F_FORCE_UTF8

    Phone returns strings in utf-8 even if it reports GSM.

  enumerator F_SMS_SM

    Phone supports SM storage for SMS even if it does not report so.

  enumerator F_SMS_ME

    Phone supports ME storage for SMS even if it does not report so.

  enumerator F_XLNK

    Switching to OBEX mode is done using AT+XLNK.

  enumerator F_SUBMIT_SIM_ONLY

    Submit messages can be saved on SM memory only.

  enumerator F_PBK_UNICODE

    Prefer Unicode for phone book manipulations.

  enumerator F_SQWE

    Switching to OBEX mode using AT^SQWE=3.

  enumerator F_NO_ATOBEX

    Do not use OBEX/AT switching even if available.

  enumerator F_LENGTH_BYTES

    Length of text for contact is in bytes and not chars.

  enumerator F_BROKEN_CMGL

    CMGL does not list real locations for CMGR, these should be sequential.

  enumerator F_EXTRA_PBK_FIELD

    Phonebook has extra numeric field at the end.

  enumerator F_CKPD_NO_UNICODE

    Key presses can not be in unicode.

  enumerator F_CPROT

    OBEX switching using AT+CPROT even if phone does not report it properly.

  enumerator F_PBKFAVORITEMESSAGE

    Phonebook with favorite messaging numbers

  enumerator F_PBKNOPOSTAL

    No support for postal entry in phonebook.

  enumerator F_PBK_ENCODENUMBER

    Encode number in HEX charset.

  enumerator F_NO_CLIP

    Do not use CLIP (phone hangs on it).

  enumerator F_ENCODED_USSD

    USSD propmts and responses are encoded like PDU in SMS (packed 7-bit GSM encoding).

  enumerator F_USE_SMSTEXTMODE

    Phone has better support for SMS text mode (rather than PDU mode)

  enumerator F_CPIN_NO_OK

    Phone does not end CPIN reply with OK/ERROR.

  enumerator F_FOUR_DIGIT_YEAR

    Phone require four digit year in time.

  enumerator F_SMS_NO_ME

    Phone does not have a phone SMS memory even if it reports so.

  enumerator F_SMS_NO_SM

    Phone does not have a SIM SMS memory even if it reports so.

  enumerator F_SIEMENS_PBK

    Phone supports Siemens style phonebook even if it does not tell so.

  enumerator F_NO_ATSYNCML

    Disable AT+SYNCML probing.

  enumerator F_MOBEX

    Phone supports m-obex (usually Samsung phones).

  enumerator F_TSSPCSW

    Phone supports m-obex (usually Samsung phones) using AT$TSSPCSW=1.

  enumerator F_DISABLE_GETNEXT

    Disable GetNext* operations on the dummy phone.

  enumerator F_DISABLE_GETNEXTSMS

    Disable GetNextSMS operations on the dummy phone.

  enumerator F_DISABLE_CMGL

    CMGL hangs, so should not be used.

  enumerator F_NO_UTF8

    Phone does not support UTF8 even if it reports it.

  enumerator F_SAMSUNG_UTF8

    Samsung B2100 in UCS-2 mode provides a garbled UTF-8 instead.

  enumerator F_SMS_UTF8_ENCODED

    SMS text is always UTF-8 encoded.

  enumerator F_NO_STOP_CUSD

    Avoid forcibly stopping CUSD session.

  enumerator F_READ_SMSTEXTMODE

    Reading og SMSes in text mode.

  enumerator F_RESET_AFTER_TIMEOUT

    Reset phone after timeout.

  enumerator F_HUAWEI_INIT

    Huawei style init.

  enumerator F_ZTE_INIT

    ZTE style init.

  enumerator F_USSD_GSM_CHARSET

    Prefer GSM charset for USSD (default is unicode).

  enumerator F_SMS_SR

    Phone supports SR storage even if it does not report so.

  enumerator F_SMS_NO_SR

    Phone does not have a SR memory even if it reports so.

  enumerator F_LAST_VALUE

    Just marker of highest feature code, should not be used.

struct GSM_PhoneModel

  Model identification, used for finding phone features.

  Public Members

  const char *model

    Model as returned by phone

  const char *number

    Identification by Gammu

  const char *irdamodel

    Model as used over IrDA

  GSM_Feature features[GSM_MAX_PHONE_FEATURES + 1]

    List of supported features