Prepaid-manager-applet (ppm) is an applet for the GNOME Desktop that allows you to check and top up the balance of GSM mobile prepaid SIM cards.
Ppm is currently beta quality software.
Prepaid SIM cards are a cheap way to get internet access when traveling abroad. However you need to check and top up your balance from time to time. Most carriers allow to do this via Unstructured Supplementary Service Data (USSD) messages.
If you have the prepaid SIM in your laptop, netbook or in an USB GSM/3G stick you would need to take out the SIM card, stick it into a mobile phone and enter the correct USSD sequence to check or top up the balance (or you would need to use the Windows only software supplied by your provider). With ppm you can do this straight from your laptop without removing the card under Linux.
USSD messages are not standardized and vary between providers. They usually look like
to query the balance and
to top up the balance. The 12 digit number after the second star is the top-up code which can usually be bought in e.g. supermarkets or from your provider to top-up a certain amount of credit.
- It can check the remaining balance via USSD
- It can top up the balance with a given code via USSD
The source code is available via:
git clone https://git.sigxcpu.org/cgit/ppm
and can be browsed here.
Fetch the source code from git then do a:
./autogen.sh make make install
Running ppm is a bit tricky at the moment since you need git versions of ModemManager. Once these things end up in your favorite distro things will get much easier. You need:
- ModemManager git, the 0.5 release contains the necessary USSD support. The version in Debian unstable is recent enough.
- mobile-broadband-provider-info with support for top-up information. The version in Debian Wheezy (>= 20110424) is recent enough.
- python 2.6 or 2.7
- PyGI >= 2.28.3, Debian package: python-gobject
- GTK+ >= 3.0.0, Debian package: libgtk+-3-0
The GNOME wiki explains how to run and debug ModeManager from the command line.
To run ppm and point it to a current mobile-broadband-provider-info database use:
In case ppm can't determine your provider from the information on the SIM card it will allow you to select a provider from the list.
If the information about your mobile broadband provider is incomplete ppm will complain. In order to complete this information just get the mobile-broadband-info-provider source as described above, look for your provider in the serviceproviders.xml. Search for your provider in the file and add the balance-check and balance-top-up information, e.g.:
<balance-check> <ussd>*130#</ussd> </balance-check> <balance-top-up> <ussd replacement="CODE">*130*CODE#</ussd> </balance-top-up>
Then check if the XML is still valid via:
xmllint --noout --dtdvalid file://$PWD/serviceproviders.2.dtd serviceproviders.xml
Here are screenshots of the balance check and top up dialogs:
In this case the messages returned from the provider are in German. This is because USSD messages are free text and the provider doesn't localise things.
This video shows ppm in action:
For a list of TODOs see the TODO file in the source code
The following GSM/3G modems were tested with the listed prepaid providers:
|Nokia N900||m:tel||USB||yes||Needs mobile-broadband-provider-info git for BiH|
|Nokia N900||Tchibo Mobil||USB||yes|
|Nokia 3120||Swisscom||Bluetooth||yes||BT connection via rfcomm|
|Huawei E1750||Tchibo Mobil||USB||yes||Needs ModemManager >= 0.5|
|Huawei E1690||Aldi||USB||maybe||Needs ModemManager >= 0.5|
|Huawei E1820||USB||yes||Needs ModemManager >= 0.5|
|ZTE MF190||O2||USB||yes||Needs ModemManager >= 0.5|
These tools support sending USSD messages but don't use any provider info:
prepaid-manager-applet was written by Guido Günther <firstname.lastname@example.org>.
ppm is free software and licensed under the GPL Version 3.