войти зарегистрироваться поиск по сайту Посты Q&A Блоги Люди Компании Телекомы индекс 164,53 Захабренные Новые Отхабренные Выполнение USSD запросов под Linux Спасибо автору топика Проверка счета Киевстар модема в Linux который помог мне понять принцип работы модемов и способ работы с ними в линуксе. Мне как раз нужно было решить задачу отображения уровня сигнала, проверки баланса, пополнения счета с использованием 3ж модема. Но так как ставить на домашние машины пхп ради такой мелочи мне не хотелось, решил переписать скрипт под себя на Python, который есть в любом десктоп-линуксе из коробки. Работать данный скрипт будет на любых модемах/телефонах которые поддерживают USSD без PDU кодирования. Для модемов требующих PDU-кодировку команд нужно написать функции-обертки аналогично php-скрипту из указаного выше топика. У меня к сожалению нету такого модема и проверить я бы не смог — потому писать не стал. Проверена работа на 3G модеме ZTE MF100(должно работать с mf620, mf622, mf626, mf628) и тарифе Интернет 3G от Киевстара. Сам скрипт ussd.py #!/usr/bin/python import binascii import sys f = open "/dev/ttyUSB2" "r+" data= '' error= "Usage: python ussd.py action (code) \r \n Actions: balans, popolnit, data-status, 3g-data-status, signal" if len sys argv print error sys exit if sys argv == 'balans' print >> f, "AT+CUSD=1,*111#,15 \r \n while data "+CUSD" data=f. readline data = data 10 :- print binascii unhexlify data elif sys argv == 'signal' print >> f, "AT+CSQ \r \n while data "+CSQ:" data=f. readline data = data :- sig_str = - 113 int data sig_per = int data 100 31 print unicode sig_str "dBm / " unicode sig_per "%" elif sys argv == 'popolnit' print >> f, "AT+CUSD=1,*123*" sys argv "#,15 \r \n while data "+CUSD" data=f.
Выполнение USSD запросов под Linux / Телекомы / Хабрахабр
Материал перенесён из старой базы знаний ATC-IP и оформлен в едином стиле нового сайта.