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.

  • feature – GSM_Feature to convert.


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

GSM_Feature GSM_FeatureFromString(const char *feature)

Converts feature string to value.

  • feature – GSM_Feature string to convert.


GSM_Feature value, 0 on failure.

gboolean GSM_IsPhoneFeatureAvailable(GSM_PhoneModel *model, GSM_Feature feature)

Checks whether phone supports features.

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

  • feature – GSM_Feature to check for.


True if phone has defined this feature.

gboolean GSM_AddPhoneFeature(GSM_PhoneModel *model, GSM_Feature feature)

Adds feature to phone configuration.

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

  • feature – GSM_Feature to check for.


True if phone has defined this feature.

GSM_Error GSM_GetManufacturer(GSM_StateMachine *s, char *value)

Reads manufacturer from phone.

  • s – State machine pointer.

  • value – Pointer where to store manufacturer name


Error code.

GSM_Error GSM_GetModel(GSM_StateMachine *s, char *value)

Reads model from phone.

  • s – State machine pointer.

  • value – Pointer where to store model name


Error code.

GSM_PhoneModel *GSM_GetModelInfo(GSM_StateMachine *s)

Reads model info from state machine.

  • s – State machine pointer.


Pointer to phone information structure.

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

Reads firmware information from phone.

  • 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


Error code.

GSM_Error GSM_GetIMEI(GSM_StateMachine *s, char *value)

Reads IMEI/serial number from phone.

  • s – State machine pointer.

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


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


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.


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.


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


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


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


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.


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


No phonebook in Unicode

enumerator F_NOWAP


enumerator F_NOCALLER

No caller groups

enumerator F_NOPICTURE

No Picture Images


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


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.


Phonebook with favorite messaging numbers

enumerator F_PBKNOPOSTAL

No support for postal entry in phonebook.


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).


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.


Disable GetNext* operations on the dummy phone.


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.


Reading og SMSes in text mode.


Reset phone after timeout.

enumerator F_HUAWEI_INIT

Huawei style init.

enumerator F_ZTE_INIT

ZTE style init.


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