dwight - 2007-02-26

I'm pleased to announce the release of version 0.2.0 of libgsmc. This is a major revision with a number of new features and frameworks.

One key feature is that you don't need to actually have a GSM chip in order to develop your phone applications. You can instead develop your software on your PC, and then move it over when your hardware is ready.

This might be of interest to all the people currently developing Open Linux phones, who don't yet have their hardware. Or to people who just want to play around with Linux phone software, before investing in a mobile phone.

That is, a GSM emulator process is included, which is intended to allow you to do normal development on your PC. Once you actually have hardware, you can then just cross-compile your applications for your phone.

There are even more new features. Several frameworks and subsystems have been added, which lay the foundation for implementing all of the rather ambitious goals I have (for security, quality, ETSI spec coverage and manufacturer support).

The functionality of some of these is currently limited. But this will be expanded in the next release.

Here are the specifics of what has been added:

- Configurable debugging output. The library debugging level can be set either via a command-line option to an application, or via a signal(2) to the application process while it's running.

- Sample CLI application code, for making a phone call at the shell command line.

- A GSM Modem emulator. This backend is used for testing, and for the example application code.

  Current support is limited, but will obviously be expanded as further support of the ETSI spec is implemented.

  Note that in principle a GSM chip manufacturer could use this back end framework for actually implementing a GSM modem interface, if they so desired.

- A framework for supporting the full ETSI 07.07 GSM standard.

- A plugin framework allowing straightforward support for any other GSM modem that adheres to the ETSI 07.07 standard.

- Telit support for the basics of making a call and hanging up.

  Note that the full ETSI 07.07 specification has 86 different primary commands (and probably at least an equal number of subcommands).

  Coding up support for the entire specification is a non-trivial task; especially when at least one test case has to be provided for each bit of functionality. Consequently, only a limited number of ETSI/telit commands are presently supported. Just enough to make a call and hang up. Obviously more will be added, as needed. In order to really do things right, one does need much of the ETSI commands. These will come along, as the sample applications grow in sophistication.

  And, as I mentioned, the intent is to ultimately support the full ETSI standard.

- The beginning of cutting over the code to reduce exposures to buffer overflows. This is not complete, but it will be a continual ongoing effort.

- Added support for the DejaGNU testing framework. And added positive testcases for each of the currently supported modem commands.

- Bug fixes: Quite a few. The testing framework has proven its worth by quickly uncovering these.