Как использовать услугу UUSD-кода мобильного оператора через автоматизированный процесс? - PullRequest
0 голосов
/ 12 сентября 2018

Если у меня есть SIM-карта от оператора мобильной связи, например, Vodacom в Южной Африке, я могу использовать их USSD-услуги, набрав *111#.Затем я могу перемещаться по параметрам с помощью клавиатуры моего мобильного телефона.

Я хотел бы создать скрипт, который делает это автоматически.Есть ли способ сделать это?

Я вижу, что это возможно в приложении для Android ( Сделайте USSD-вызов в Android ).Есть ли способ воспользоваться услугой UUSD определенного оператора мобильной связи, не купив сначала SIM-карту у этого оператора?(т. е. запуск этого с сервера через http / tcp).

1 Ответ

0 голосов
/ 13 сентября 2018

Для доступа к USSD-меню вы должны быть в сети мобильной связи. USSD - это не интернет и даже сеть передачи данных. USSD транспортируется по мобильной сети сигнализации. Таким образом, вам нужно иметь SIM-карту.

Для навигации по USSD-меню с помощью сценариев может потребоваться несколько шагов.

  • Вам необходимо устройство GSM, подключенное к вашему компьютеру. USB-модем в порядке, но все модемы не имеют этой функции. Я использую модель Huawei 180E.

  • Вам нужно будет поговорить с вашим модемом по последовательной линии. В Linux USB-модемы могут быть доступны как tty устройства, как правило, на /dev/ttyUSB0 (абсолютного правила не существует: некоторые модели определяют только 2 устройства, некоторые модели определяют 4). Для тестов вы можете использовать некоторые терминальные программы. Я использую miniterm.py, программу на Python, но minicom в порядке, как и многие другие. Для автоматизации вам может понадобиться последовательная библиотека для вашего предпочтительного языка. В командной строке есть atinout, но мне не удалось заставить его работать должным образом, socat - /dev/ttyUSB0 также должен работать.

  • Наконец, чтобы поговорить с вашим модемом, вам нужно использовать команды Hayes Modem AT. Вы можете прочитать справочную информацию по команде AT [3GPP 27.007] [1], глава 7.15, для формальной документации, но в основном отправленной на модем (без части #...):

    ATZ                     # to reset the modem
    AT+CUST=2               # to close any ongoing USSD session
    AT+CUSD=1,"#111#",15    # to initiate the navigation
    

    и если вы получите меню, все в порядке; если нет, то все не так отчаянно, но это может быть сложнее, так как вам, вероятно, придется поиграть с кодировкой символов.

    [1]: https://www.etsi.org/deliver/etsi_ts/127000_127099/127007/10.03.00_60 (/ts_127007v100300p.pdf

...