I've made it a couple of scripts to make this stuff easier to use:
Identify the modem (the number increases every suspend/resume).
ussdIdent
Code:
#!/bin/bash
modem=`dbus-send --system --print-reply --dest=org.freedesktop.ModemManager /org/freedesktop/ModemManager org.freedesktop.ModemManager.EnumerateDevices|grep "object path"`
modem=`echo $modem | sed 's/.*object path "//' | sed 's/"//'`
echo $modem
Send a message to the provider, "*100#" queries my current balance on my pay as you go card.
ussdQuery
Code:
#!/bin/bash
modem=`ussdIdent`
if [ "x" = "x$1" ]
then
qry="*100#"
else
qry=$1
fi
echo "Sending $qry to $modem ..."
resp=`dbus-send --system --print-reply --dest=org.freedesktop.ModemManager $modem org.freedesktop.ModemManager.Modem.Gsm.Ussd.Initiate string:$qry`
resp=`echo $resp | sed 's/.* string "//' | sed 's/"//'`
echo $resp
If the send fails this will cancel any outstanding requests.
ussdCancel
Code:
#!/bin/bash
modem=`ussdIdent`
resp=`dbus-send --system --print-reply --dest=org.freedesktop.ModemManager ${modem} org.freedesktop.ModemManager.Modem.Gsm.Ussd.Cancel`
echo $resp
Send a "top up" code. My provider uses "*101*TopUpCode#" for this.
ussdTopup
Code:
#!/bin/bash
modem=`ussdIdent`
if [ "x" = "x$1" ]
then
echo Need to give me a top up code!
exit -1
fi
qry="*101*$1#"
echo "Sending $qry to $modem ..."
resp=`dbus-send --system --print-reply --dest=org.freedesktop.ModemManager $modem org.freedesktop.ModemManager.Modem.Gsm.Ussd.Initiate string:$qry`
resp=`echo $resp | sed 's/.* string "//' | sed 's/"//'`
echo $resp
Bookmarks