Устаноавливаю pyserial
apt-get install python-serial
За основу взял скипт http://smart-talk.ru/2009/07/script-get-balanse-usb-gprs-modem/
cat ussd.py
#!/usr/bin/python2
# coding: UTF-8
import sys
import serial
import string
S_PORT='/dev/ttyUSB2' # Девайс
S_REQ = '*100#' # Номер
S_SPEED=115200
sp = serial.Serial(S_PORT, S_SPEED, timeout=3) # Пытаемся открыть порт
if __name__ == '__main__':
s_query = 'AT+CUSD=1,AA180C3602,15\015'
sp.write(s_query) # Отправляем запрос
rst = ""
c = 0
while not(rst.startswith('+CUSD:') or rst.startswith('+CME ERROR:')):
rst=sp.readline() # читаем пока не получим ответ
c+=1
if c>20: break
try:
s=string.replace(rst.split(',')[1],'"','')
except IndexError:
s="Ответа не дождались..."
ss=unicode(s.decode("hex"), "utf-16-be").encode("utf8") # преобразую из PDU в нормальный текст
ss=ss.split(' ')[0]
print(ss) # выводим результат
sp.close() # закрываем порт
sys.exit(0) # выход
Результат работы моего скрипта.
./ussd.py 92.46р.
Ссылки:
http://smart-talk.ru/2009/07/script-get-balanse-usb-gprs-modem/
http://www.ab-log.ru/forum/viewtopic.php?f=1&t=219&start=20
http://mrcat.ru/sms-send-receive
https://github.com/gnomeby/ussd
http://hardisoft.ru/soft/poluchenie-i-dekodirovanie-sms-soobshhenij-v-formate-pdu/
http://subscribe.ru/archive/comp.soft.freebsd/201408/15100619.html
http://www.linux.org.ru/forum/development/5901636