вообщем есть результат для модема HUAWEI E219 / E220:
1. необходимо поставить minicom (apt-get install minicom)
2. настроить его на модем minicom -s (последовательный порт /dev/ttyUSB1, скорость 460800), сохранить настройки.
3. запустить скрипт ./utel *100#
ну и собственно скрипт:
#!/bin/bash
#
# ----------EXAMPLES----------
#
# ./utel *100#
# ./utel *111*код_пополнения#
# ----------------------------
#
SCR=/tmp/ussdscp
OST=/tmp/lastcheck
echo -n $1 > $OST
PARCEL=$(perl -e '@a=split(//,unpack("b*",`cat /tmp/lastcheck`)); for ($i=7; $i < $#a; $i+=8) { $a[$i]="" } print uc(unpack("H*", pack("b*", join("", @a))))."\n"')
(
echo 'send "ATZ"'>$SCR
echo 'send ""' >>$SCR
echo "send \"AT+CUSD=1,$PARCEL,15\"">>$SCR
echo 'expect {'>>$SCR
echo '"\"," ! killall -9 minicom'>>/$SCR
echo ' }'>>$SCR
echo '! killall -9 minicom'>>$SCR
minicom -w -S $SCR -C $OST >/dev/null 2>&1
) >/dev/null 2>&1
reset
grep '".*"' $OST | sed -e "s/\(.*\"\)\(.*\)\(\".*\)/\\2/" > $SCR
perl -e '@a=split(//,unpack("b*", pack("H*",`cat /tmp/ussdscp`))); for ($i=6; $i < $#a; $i+=7) {$a[$i].="0" } print pack("b*", join("", @a))."
"'
echo ""
unlink $OST
unlink $SCR