?

Log in

No account? Create an account
Previous Entry Поделиться Next Entry
USSD запрос (узнать состояние баланса) на HUAWEI E1550
linux
linux007 wrote in ru_linux
Дано: модем HUAWEI E1550 подключенный к белорусскому life:) 3G. Ubuntu 9.10 его увидела, включила в меню Network Manager и замечательно работает.

Необходимо: Научиться посылать в прибор USSD запрос (*100#) и получать на него ответ.

Модем открывается в три устройства /dev/ttyUSB0, 1 и 2 и два дисковых накопителя:
Nov 6 13:57:12 beliashou kernel: [15683.744072] usb 1-2: new high speed USB device using ehci_hcd and address 10
Nov 6 13:57:12 beliashou kernel: [15683.887754] usb 1-2: configuration #1 chosen from 1 choice
Nov 6 13:57:12 beliashou kernel: [15683.895391] scsi34 : SCSI emulation for USB Mass Storage devices
Nov 6 13:57:12 beliashou kernel: [15683.895732] scsi35 : SCSI emulation for USB Mass Storage devices
Nov 6 13:57:17 beliashou kernel: [15688.897233] scsi 35:0:0:0: Direct-Access HUAWEI MMC Storage 2.31 PQ: 0 ANSI: 2
Nov 6 13:57:17 beliashou kernel: [15688.898084] sd 35:0:0:0: Attached scsi generic sg2 type 0
Nov 6 13:57:17 beliashou kernel: [15688.913696] sd 35:0:0:0: [sdb] Attached SCSI removable disk
Nov 6 13:57:18 beliashou kernel: [15689.968466] usb 1-2: USB disconnect, address 10
Nov 6 13:57:24 beliashou kernel: [15696.316105] usb 1-2: new high speed USB device using ehci_hcd and address 11
Nov 6 13:57:25 beliashou kernel: [15696.459634] usb 1-2: configuration #1 chosen from 1 choice
Nov 6 13:57:25 beliashou kernel: [15696.469228] option 1-2:1.0: GSM modem (1-port) converter detected
Nov 6 13:57:25 beliashou kernel: [15696.469433] usb 1-2: GSM modem (1-port) converter now attached to ttyUSB0
Nov 6 13:57:25 beliashou kernel: [15696.469661] option 1-2:1.1: GSM modem (1-port) converter detected
Nov 6 13:57:25 beliashou kernel: [15696.469779] usb 1-2: GSM modem (1-port) converter now attached to ttyUSB1
Nov 6 13:57:25 beliashou kernel: [15696.469970] option 1-2:1.2: GSM modem (1-port) converter detected
Nov 6 13:57:25 beliashou kernel: [15696.470087] usb 1-2: GSM modem (1-port) converter now attached to ttyUSB2
Nov 6 13:57:25 beliashou kernel: [15696.475800] scsi39 : SCSI emulation for USB Mass Storage devices
Nov 6 13:57:25 beliashou kernel: [15696.476747] scsi40 : SCSI emulation for USB Mass Storage devices
Nov 6 13:57:30 beliashou kernel: [15701.479589] scsi 40:0:0:0: Direct-Access HUAWEI MMC Storage 2.31 PQ: 0 ANSI: 2
Nov 6 13:57:30 beliashou kernel: [15701.480502] sd 40:0:0:0: Attached scsi generic sg2 type 0
Nov 6 13:57:30 beliashou kernel: [15701.497286] scsi 39:0:0:0: CD-ROM HUAWEI Mass Storage 2.31 PQ: 0 ANSI: 2
Nov 6 13:57:30 beliashou kernel: [15701.506520] sd 40:0:0:0: [sdb] Attached SCSI removable disk
Nov 6 13:57:30 beliashou kernel: [15701.573534] sr1: scsi-1 drive
Nov 6 13:57:30 beliashou kernel: [15701.573986] sr 39:0:0:0: Attached scsi generic sg3 type 5
Nov 6 13:57:37 beliashou kernel: [15708.421364] sd 40:0:0:0: [sdb] 121856 512-byte logical blocks: (62.3 MB/59.5 MiB)
Nov 6 13:57:37 beliashou kernel: [15708.433689] sdb: sdb1
Я пробовал ко всем трём подключаться minicom, но отвечал мне только /dev/ttyUSB2, который постоянно выдаёт что-то вроде вот этого, а на мои команды он невнятно отвечал только один раз, и то я не могу воспроизвести ситуацию:
^RSSI:14

^RSSI:14

^RSSI:14

^RSSI:14

^BOOT:36863271,0,0,0,87

^RSSI:14

^RSSI:14

^RSSI:14

^RSSI:14

^BOOT:36863271,0,0,0,87

^RSSI:14

^BOOT:36863271,0,0,0,87

^RSSI:14
Собственно, изучив несколько описаний на тему того, как это делается с аналогичными моделями, я понял, что у счастливчиков работает и вот такое:
cat /usr/bin/balans
#!/bin/bash
cat /dev/ttyUSB2 & echo AT+CUSD=1,*100#,15 > /dev/ttyUSB0 ; sleep 3; kill %cat
А я вообще никак не могу засунуть строку и получить ответ.
Если чего, то я изучал вот эту ветку и посты вот этот и вот этот.

Господа, полдскажите как разобраться как организован вообще интерфейс с этой железякой (как отправлять команды и получать ответы). И если мусор сыплется в ответы на какие-то запросы от линукса или конкретно network manager, то как запуститься раньше него и поотсылать вопросы - пополучать ответы. Я подозреваю, что потом меня ждут вопросы с кодированием-раскодированием вопросов ответов, но сначала надо наладить диалог. Всем заранее спасибо за идеи.


  • 1
если вам нужно не только отправлять туда *100#, но и настроить линк через модем - вам поможет usb_modeswith - http://www.draisberghof.de/usb_modeswitch/

(без темы) (Анонимно) Развернуть
небольшой оффтоп: очень буду рад, если кто научит, как раскодировать ответ модема на USSD: в ответ на AT+CUSD=1,*100#,15 я получаю что-то типа "+CUSD: 2,"04110430043B0430043D0441003A0031002C00300030044000200...".
Я так понимаю, это каким-то образом закодированный UCS-2?

а почему каким то? обычным USC-2
gammu с ним разбирается на ура.
К то еще - увы не в курсе.
но как мне помнится enca тоже умеет...
ну и как обычно iconv :-)
iconv -l думаю расскажет много. :-)

E1550 не умеет работать в текстовом режиме. Стало быть, спрашивать на /dev/ttyUSB2 нужно AT+CUSD=1,AA180C3602,15 (тут AA180C3602 - PDU-кодированное *100#). Ответ тоже придёт в PDU. Сейчас дописываю декодер, следите за новостями :) Кстати, у лайфа есть одна мерзость - для того, чтобы посмотреть полностью баланс и остатки, нужно два сообщения (1 - dalee)

вы уверены ?
В каком формате вы кодировали?

посмотрите сюда
http://discussion.forum.nokia.com/forum/showthread.php?t=55803
Я понимаю что это не тот типа модема, но стандарт на АТ команды никто не отменял

попробуйти пользоваться
AT+CUSD=1,"*100#",15
" - Это обязательно

запомните когда в АТ комнадах требуется ввести "строку" то она должна ограничиваться кавычками " <----- такими

Уррра! Работает!!!!! Спасибо огромное.

Активизировать пакеты тоже ж как-то так можно будет?

Кстати, ребе, как сильно оно отстаёт от ральности? Я сейчас посмотрел на баланс - система говорит, что я всего-то 30 мег скачал за чуть ли не неделю...

Если автор победил данную проблему, то пусть поделиться. Очень актуальна для меня сейчас.




----
Star Group

save those script in some_file
make sure that you have php installed
type in terminal
# php -f some_file
this must help

рут

(Анонимно)
хм... глупый вопрос, но как дать рутовые права скрипту? он не может достучаться до /dev/ttyUSB2...

Re: рут

(Анонимно)
а! всё! я, дурак, в браузере на локалхосте запускал=). автору скрипта - лучей добра.

Re: Reply to your entry...

У меня не получается поставить модуль. Команда perl -MCPAN -e 'install Device::Gsm::Pdu' не работает с диагнозом:
... (многотекста)
make: *** [pure_site_install] Ошибка 13
  COSIMO/Device-Gsm-1.54.tar.gz
  /usr/bin/make install  -- NOT OK
Warning (usually harmless): 'YAML' not installed, will not store persistent state

А команда $ perl -MCPAN -e 'install YAML'
Can't locate object method "install" via package "YAML" at -e line 1.

Доктор, что я делаю не так?



^RSSI:14

^RSSI:14

^RSSI:14

^RSSI:14

^BOOT:36863271,0,0,0,87

^RSSI:14

^RSSI:14

^RSSI:14

^RSSI:14

^BOOT:36863271,0,0,0,87

^RSSI:14

^BOOT:36863271,0,0,0,87

^RSSI:14

а можно как-то отключить получение этих сообщений? а то они постоянно сыпятся

(Анонимно)
Спасибо автору статьи и spooki !
Скажиите, пожалуйста, кто знает как теперь автоматизировать получения баланса. Например, с помощью кнопки?

кнопки, ярлыки, шорткаты

что делать:
- написать плагин для панели
- написать просто програмку (гуи или нет, решайте сами); поставить лаунчер на панель или десктоп или горячую клавишу
- написать резидент, и в notification area - так даже лучше будет - не надо рута каждый раз, +ещё какие-то возможности прикрутить

(Анонимно)
если кому такое нужно на роутер с openwrt прикрутить,то вот:
баланс

#!/bin/bash

n=2; # задаем порт для запроса

F="/dev/ttyUSB$n"
echo -e "AT+CUSD=1,AA180C3602,15\r">$F
sleep 1
head -n 4 $F | \
perl -ne '@a = m/([0-9A-F]{4})/g; map { eval "print \"\\x{$_}\""; } @a;' 2>/dev/null
echo ""

а вот сигнал сети(правда корявенько начиркал,но работает ;) )

#!/bin/sh
ifdown wan
sleep 2
echo -e "AT+CSQ\r\n" > /dev/ttyUSB0
sleep 1
cat /dev/ttyUSB0 > /tmp/sig &
sleep 1 && killall cat
r=`cat /tmp/sig | cut -c7-8|sed 's/,//'`
rm -f /tmp/sig
m=$((-113))
rur=$((r*2+$m))
if [ $rur -ne $m ]
then
rm -f /tmp/sig1
echo $rur > /tmp/sig1
fi
cat /tmp/sig1
ifup wan
exit 0

power distribution unit in delhi, Such a region is commonly known as a "U", for "unit", or in German "HE" (for Höheneinheit) and heights within racks are measured by this unit. Rack-mountable equipment is usually designed to occupy some integer number of U

A Power distribution unit is a device fitted with multiple outputs designed to distribute electric power, especially to racks of computers and networking equipment located within a data center.
Power distribution unit (PDU). Types of PDU’s - Metered Power Distribution Unit, Intelligent Power Distribution Unit and Normal Power Distribution Unit Manufacturers in India.

Вот еще неплохой универсальный вариант того как отправлять USSD и SMS из под линукса http://www.ionline.by/chasto-zadavaemye-voprosy-f-a-q/kak-nastroit-internet/modem-manager-ili-polnyj-kontrol-nad-3g-modemom-v-linux-27-02-2013/

НА: Ответ на вашу запись "USSD запрос (узнать состояние ба

А консоль там есть? Без гуя?



(без темы) (Анонимно) Развернуть
  • 1