LINUX.ORG.RU

Как отправить USSD-запрос с 3G свистка?

 , ,


0

2

Есть модем Huawei E398 LTE/UMTS/GSM.
Подключение поднимается с помощью wvdial.

Как оправить USSD-запрос (для проверки баланса)?

Поставил gsm-ussd.
/dev/ttyUSB0 занят wvdial'ом.
на /dev/ttyUSB1 /dev/ttyUSB2 не хочет работать.

★★

sudo gsm-ussd -m /dev/ttyUSB2 --no-cleartext '*100#' два модема нафиг повесило :) Чувствую, к дороге...

SaBo ★★
() автор топика
Ответ на: комментарий от Stanson

Что делает cat /dev/ttyUSB1?

Ничего

SaBo ★★
() автор топика

У МегаФона подключил в личном кабинете услугу «баланс близких». Контролирую баланс с основного телефона.

Jurik_Phys ★★★★★
()
Последнее исправление: Jurik_Phys (всего исправлений: 1)
Ответ на: комментарий от Jurik_Phys

Ну с телефонами близких я тоже так сделал.
А тут сборная солянка из Мегафона / Ростелекома + оформление на юрика.
И вообще я хочу баланс в Zabbix вывести, а то достало гадать - это модем не работает или просто проплатить забыли...

SaBo ★★
() автор топика
Ответ на: комментарий от SaBo

gsm-ussd -m /dev/ttyUSB2 --no-cleartext -d -l LOG1 '*100#' 2>LOG2

и оба лога на pastebin.com (таймаут там по умолчанию 20 сек, так что если висит 30 - ^C)

ABW ★★★★★
()
Последнее исправление: ABW (всего исправлений: 1)
Ответ на: комментарий от SaBo

sudo gsm-ussd -m /dev/ttyUSB2 --no-cleartext '*100#' два модема нафиг повесило :)

Сейчас не виснет...

> sudo gsm-ussd -m /dev/ttyUSB2 --no-cleartext '*105#'
USSD session open, to cancel use "gsm-ussd -c".
USSD session open, to cancel use "gsm-ussd -c".
O=:M«éePÚm~ËÛáq:_ÙAÓæ
> sudo gsm-ussd -m /dev/ttyUSB2 --no-cleartext '*105#'                          
»▒5H}.A8
> sudo gsm-ussd -m /dev/ttyUSB2 --no-cleartext '*100#'
USSD session open, to cancel use "gsm-ussd -c".
USSD session open, to cancel use "gsm-ussd -c".
O=:M«éePÚm~ËÛáq:_ÙAÓæ

Не пойму только кодировку...

SaBo ★★
() автор топика
Ответ на: комментарий от SaBo
> sudo gsm-ussd -m /dev/ttyUSB2 --no-cleartext '*105#' | hexdump -C
00000000  c3 8f 21 35 48 7d 2e 41  38 c2 97 0d 07 c2 82 c2  |..!5H}.A8.......|
00000010  bb 1a 0a                                          |...|
00000013
SaBo ★★
() автор топика
Ответ на: комментарий от SaBo
> sudo gsm-ussd -m /dev/ttyUSB2 '*105#'
GSM equipment error: Unknown error (100)
> sudo gsm-ussd -m /dev/ttyUSB2 '*100#'
GSM equipment error: Unknown error (100)
SaBo ★★
() автор топика
Ответ на: комментарий от SaBo

Подключил модем к ноуту и запустил modem-manager-gui.

На *105# отвечает теми же краказябами.
На *201# вернул номер телефона (на латинице).

Но gsm-ussd на *201# опять вернул кракозябы.

SaBo ★★
() автор топика
Ответ на: комментарий от SaBo

Ну вот, opsos отвечает:

+CUSD: 0,«CF2135487D2E4138970D0782BB1A»,0

т.е. «отваета не надо», текст, схема кодирования - GSM DA.
Причём gsm-ussd это распознаёт:

[DEBUG][GSMUSSD::UssdQuery] Expected answer received.
[DEBUG][GSMUSSD::UssdQuery] USSD response type: No further action required (0)
[DEBUG][GSMUSSD::UssdQuery] Encoding «0» says response is in default alphabet

Т.о., он должен выдать тебе на stdout

OCTATOK 8.68 p.

(заметь, латинскими буквами).
Почему эта perl-овая скотина этого не делает, не знаю точно, но есть подозрение, что из-за того, что не учитывает, что по этому стандарту кодирования сообщения из 8 * n - 1 символов дополняются символом CR (0x0a, возврат каретки), который должен игнорироваться при декодировании.
Попробуй послать какой-нибудь другой запрос, о доп. услугах, например.

ABW ★★★★★
()
Ответ на: комментарий от ABW

Спасибо, понял!

Другой запрос пробовал посылать (*201#) - тоже в неверной кодировке.
При этом в modem-manager-gui на запрос *201# верно отвечает, а на запрос *105# та же кодировка, что и в gsm-ussd.

А, может быть, есть ещё какая-то консольная утилита для USSD-запросов?

SaBo ★★
() автор топика
Ответ на: комментарий от SaBo

Там же в Arch-е в AUR был ещё huawei-ussd, тоже perl и кривой по-своему.
Но поскольку он делался под российскую реальность, может и прокатить. Там на самом деле надо и для исходящего, и для входящего устройства указывать /dev/ttyUSB2.
А если не получится, сделай мне отладочный вывод gsm-ussd, как выше, для вариантов с кракозяблами, может быть, смогу свой скрипт доработать.

ABW ★★★★★
()
Ответ на: комментарий от SaBo

тогда почитай как работает modem-manager и его api, там d-bus, а его мессаги можно и из консольки слать.

pon4ik ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.