USSD запросы через мобильный широкополосный доступ

В основном я хочу проверить баланс моей предоплаченной SIM-карты, которая находится в 3G-модеме (USB).

Некоторая справочная информация:

  1. Провайдер моего 3G-интернета (так называемый Билайн) также предлагает услуги сотовой связи. Чтобы проверить баланс на любой SIM-карте, я могу просто набрать *102# на любом мобильном телефоне и получить уведомление о моем балансе. Так что всегда работает, чтобы вынуть SIM-карту из модема в мобильный телефон и проверить баланс, "позвонив" *102#
  2. Модем поставлялся с Windows-программой, в которой есть кнопка "Проверить баланс". Я не хочу пытаться эмулировать эту программу вином по разным причинам. И мне не нужно, потому что - спасибо Ubuntu- модем работает без проблем из коробки.

Я бы подумал: есть ли возможность делать эти USSD-запросы (которые, похоже, не являются проблемой для любого случайного телефона) через 3G-модем через Ubuntu?

1 ответ

Решение

Эти "хэш-тег-запрос" называются USSD. При поиске по этому ключевому слову вы найдете различные решения:

  1. Gammu может отправить USSD-запрос и получить его обратно с помощью команды gammu getussd *102#, Как указывалось здесь, некоторые GSM-модемы могут потребовать довольно сложного преобразования USSD-кода. Убедитесь, что у вас есть права на чтение устройства /dev/ttyUSB0 (или похожие). Пример можно найти здесь.

  2. Gsm-ussd, кажется, проще в использовании, чем gammu для ussd, но в целом имеет меньше возможностей. Его нет в официальных репозиториях, скачайте отсюда и настройте его аналогично этому.

  3. Prepaid-manager-applet имеет приятный графический интерфейс и находится в официальных репозиториях. Это, наверное, самое простое и определенно самое хорошее решение. Скорее всего, ваш провайдер уже указан в списке, поэтому вам не нужно ничего делать. Если это не так, добавьте USSD-номер в /usr/share/mobile-broadband-provider-info/serviceproviders.xml. Найдите раздел своей страны и провайдера и добавьте

    <balance-check>
        <ussd>*102#</ussd>
    </balance-check>
    

    в то время как *102# должен быть заменен USSD-кодом вашего провайдера. Это выглядит так изощренно, как это:

Снимок экрана: Prepaid-Manager-Applet

Другие вопросы по тегам