Michal Čihař - Blog Archives for English

Wammu 0.20

I just released version 0.20 of Wammu. This is mostly bugfix release, which fixes various bugs reported by users.

  • Improve locales behaviour (and require wxPython with Unicode).
  • Show time in call listings.
  • Fixed infinite loop in searching.
  • Fixed displaying of messages with special chars.
  • Fixed locale detection on system without configured locales.
  • Use different approach for detecting home directory on Windows.
  • Now requires PyWin32 on Windows.

Why do people buy non documented phones?

While working on Gammu, I still wonder why people who want to connect their phone to computer buy phones from vendors who use own proprietary protocol or do not share any documentation. Then they come to Gammu mailing list and/or bug tracker and want Gammu to support their phone. Sometimes the fix is easy, but usually it is quite lot of work to debug unknown protocol.

I know this situation quite good from past. I had Alcatel phone, which was using proprietary protocol for access to in phone contacts and events. Fortunately Alcatel released synchronisation software for these phones (it of course runs only on Windows) which had enabled debugging and it was quite easy to understand protocol thanks to logs it could produce. But as newer phones with some extensions appeared, maintaining this became harder and harder.

When I looked for new phone, I decided to buy Sony-Ericcsson K750i phone. Writing support for most of functionality (well in fact all I need) was just matter of few days. The reason why it was so fast was that this phones is using open standards (e.g. OBEX, IrMC) and vendor specific AT commands are documented in freely available documents.

It's your choice how good will your phone interoperate with computer. If you buy well documented piece of hardware, chance to have it fully supported is much higher.

python-gammu 0.20

python-gammu 0.20 has been just released. New features:

  • Fixed call information conversion.
  • Support for last modified field.
  • Support for latest Gammu version.
  • Added python wrapper around C module, C module is now gammu.Core.
  • Moved some generic data from Wammu.
  • Added asynchronous wrapper around StateMachine.
  • Added example for async operations, see examples/worker.py.
  • Main library is now gammu.Core, but gammu.* still works.
  • Support for service numbers.
  • New example for service numbers, see examples/service-numbers.py.

Gammu stable version 1.11.0

I just released new version of Gammu, you can download it from download server. Changes to latest testing version are relatively small:

  • Do not use asynchronous I/O on Windows.
  • Make USSD work with AT phones.
  • Fix setting date on Siemens MC75 (Rudolf Cejka).
  • Config file on Windows is now searched in Application Data folder.
  • Avoid corrupting vCard when some fields are empty.
  • Properly handle OBEX error codes (bug #298).

Stay tuned, release evening will continue ;-).

Service numbers in python-gammu

python-gammu now supports service numbers dialogue. How it is useful for you depends on services your network provides. For example with Vodafone in Czech republic, you can use it to configure various services:

$ ./service-numbers.py 
This example shows interaction with network using service codes
Enter code (empty string to end): *111#
Talking to network...
Network reply:
Status: ActionNeeded
Vitejte v Kapesni Samoobsluze!
1 Muj ucet
2 Me sluzby
3 Nastaveni telefonu
4 Info a zabava
5 Oblibene

Enter code (empty string to end): 1
Talking to network...
Network reply:
Status: ActionNeeded
Muj ucet
1 Vyuct. a platby
2 Vydaje pod kontrolou
3 Osobni udaje
4 PIN a PUK kod
------
0 Zpet
00 Uvod

Enter code (empty string to end):

Python code which can be used for this is available as example. It will be probably one time integrated to Wammu, but it needs a bit more time than hacking this simple script :-).

Mailing lists for SVN commits

If you want to follow SVN commits on some of my SVN repositories, you can subscribe to appropriate maling list, which gets notification on each SVN commit. I hope I set up mailman correctly and everything will work as I expect :-).

This list is also automatically forwared to packages.qa.debian.org, so you can also subscribe there for Debian package changes.

python-gammu has asynchronous wrapper

Yesterday I hacked asynchronous wrapper for python-gammu. It is start of progress to make Wammu behave better while talking to phone. My plan is that all operations will go through this asynchronous wrapper and will be completely non blocking to Wammu. This means no progress bar will pop up to front, but entries will appear in window as they are being read. Progress will be of course still shown, but only in status bar.

The current code is only first step, next thing which has to be implemented in python-gammu are virtual commands. Those will be used for things like getting all calendar events from phone, so all you will have to do for getting all is enqueue GetAllCalendar event and worker will do all for you including progress reporting.

If you want to write own application using this new wrapper, you can look at example which is in sources. It shows all current possibilities, but it will be enhanced in future.

Website improvements, videos from Gammu talk

I just spent some time on improving my website. Well I'm not graphic designer, so the site won't ever be according to latest trends and won't look sexy.

Anyway I tried to improve visibility of some things a bit. The main page now includes small screenshots of some programs I want to point out, small screenshots on application page are clickable and there is more visible download link on some pages as users complained they have problems finding this. While working with stylesheets, I also added maximal width of main content. This probably does not work with all browsers, but I don't care, the text is still visible.

Other thing I updated is information about last year talk about Gammu, which now contains links to videos. I haven't seen them yet, but they might contain interesting information for Czech speaking people :-).

Versioning scheme troubles

Current Gammu versioning scheme confuses people a lot. For some time 1.x.0 versions are stable and 1.x.y are testing. However when somebody sees 1.10.5, he things this is updated version of Gammu 1.10.0. So it's probably time to move to something more obvious starting from next development cycle.

To stay as much compatible as possible with current scheme, I thing about minor change - so start testing releases on something like 1.11.90. I thing this is also quite often used (I've seen such versions in PyGTK in past) and nobody will confuse it with patch releases. Or should I switch to something completely different? I currently do not consider 1.11.0-rc1 as I'd like to keep version only numeric.