Further technical details and API documentation in progress, is available [[Gsmd/document |here]].

Further technical details and API documentation in progress, is available [[Gsmd/document |here]].

+

+

Note that this does not hold for phones running [[Om2008.08]] - then gsmd has been replaced with [[Qtopia]]'s mobile stack. Installing gsmd and related tools will conflict with qpe and things may not work.

From host PC

With recent uboot (svn > r2885), the gsm modem can be powered on and connected to uboot's serial console from uboot itself. Thus allowing the host PC to interact directly with the modem. Some notes about getting gsmd running in this manner is here.

libgsmd

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

libgsmd-tool is a small demo application that can be used to demonstrate the usage of the libgsmd API.

Usage of atcmd mode

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.

Implementation Thoughts

Testing framework

State tracking

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

From host PC

With recent uboot (svn > r2885), the gsm modem can be powered on and connected to uboot's serial console from uboot itself. Thus allowing the host PC to interact directly with the modem. Some notes about getting gsmd running in this manner is here.

libgsmd

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

libgsmd-tool is a small demo application that can be used to demonstrate the usage of the libgsmd API.

Usage of atcmd mode

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.

Implementation Thoughts

Testing framework

State tracking

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