gsmd is the GSM daemon running in background of the GTA01 phone, managing the actual 'phone' part of the phone :)
gsmd is usually started as a daemon in background, but can be run in foreground mode for debugging.
The options can be queried like:
> src/gsmd/gsmd --help gsmd - (C) 2006 by Harald Welte <laforge@gnumonks.org> This program is FREE SOFTWARE under the terms of GNU GPL Usage: -v --version Display program version -d --daemon Deamonize -h --help Display this help message -p dev --device dev Specify serial device to be used -s spd --speed spd Specify speed in bps (9600,38400,115200,...) -F --hwflow Hardware Flow Control (RTS/CTS) -L --leak-report Leak Report of talloc memory allocator -l file --logfile file Specify a logfile to log to
If your GSM modem is attached to ttySAC0 (like in the Neo1973), you can e.g. use:
gsmd -p /dev/ttySAC0 -s 115200 -F
libgsmd is a library with C language API for application programs. Programs using this library can use the phone, e.g. make phone calls, receive incoming calls, register to the network, etc.
libgsmd-tool is a small demo applicaiton that can be used to demonstrate the usage of the libgsmd API.
libgsmd-tool has multiple modes.
Shell mode provides a simple text-based command interface for making voice calls.
The shell mode can be started using
libgsmd-tool -m shell
It can be used like in the following example:
> src/util/libgsmd-tool -m shell libgsm-tool - (C) 2006 by Harald Welte This program is Free Software and has ABSOLUTELY NO WARRANTY ? # A Answer incoming call D Dial outgoing number H Hangup call O Power On o Power Off R Register Netowrk O # EVENT: PIN request (type=1) Please enter PIN: 6582 R # EVENT: Netreg searching for network EVENT: Netreg registered (home network) D03024033902 # Dial 03024033902 EVENT: Call Progress: UNKNOWN EVENT: Call Progress: PROCEED EVENT: Call Progress: SYNC EVENT: Call Progress: ALERT H # Hangup EVENT: Call Progress: DISCONNECT EVENT: Call Progress: RELEASE EVENT: Incoming call type=2! EVENT: Incoming call clip=`"03024033902"' EVENT: Incoming call type=2! A # Answer RSTR=`OK' H # Hangup RSTR=`OK'
The atcmd mode is a passthrough-mode. Passthrough means that it accepts GSM 07.07 commands, passes them through the daemon to the phone, and returns you the response. this is very useful for debugging.
The atcmd mode can be started using
libgsmd-tool -m atcmd
Usage is like in the following example:
> src/util/libgsmd-tool -m atcmd libgsm-tool - (C) 2006 by Harald Welte This program is Free Software and has ABSOLUTELY NO WARRANTY AT+CPAS STR=`AT+CPAS' RSTR=`+CPAS: 0' AT+COPS=? STR=`AT+COPS=?' RSTR=`+COPS: (2,"E-Plus","E-Plus","26203"),(3,"o2 - de","o2 - de","26207"),(3,"Vodafone.de","Vodafone","26202"),(3,"T-Mobile D","TMO D","26201")'
(please add items to this list if you're missing more features)
gsmd needs to do apropriate state tracking of the underlying GSM hardware. For many of the state transition we only get events from the GSM Modem, but don't have apropriate query commands. Thus, assuming gsmd runs all the time, applications can come and go, but still have an idea about the current state of the modem, even if they missed the initial state transitions.
Also, gsmd state tracking allows us to allow for safer interoperability of multiple applications. If i.e. one applications has just started an outgoing call, gsmd can detect another application who intends to interfere with that and deny access
Sources of gsmd are kept in OpenMoko svn in src/target/gsm directory.
Languages: |
English • العربية • Български • Česky • Dansk • Deutsch • Esperanto • Eesti • Español • فارسی • Suomi • Français • עברית • Magyar • Italiano • 한국어 • Nederlands • Norsk (bokmål) • Polski • Português • Română • Русский • Svenska • Slovenčina • Українська • 中文(中国大陆) • 中文(台灣) • Euskara • Català |