Czy są jakieś narzędzia lub polecenia, których mogę użyć do wysłania kodów USSD w celu sprawdzenia równowagi i bilansu danych karty SIM GSM w moim modemie USB (mobilny klucz szerokopasmowy)?
Oto niektóre aplikacje z obsługą sprawdzania salda USSD:
Prepaid Manager to aplet dla GNOME Desktop, który pozwala sprawdzać i uzupełniać saldo przedpłaconych kart SIM GSM. Jest to prosta i minimalistyczna aplikacja z sprawdzaniem salda USSD i doładowaniem. Ale z drugiej strony, jest to bardzo przestarzała aplikacja i od dawna nie otrzymała żadnych nowych aktualizacji. A jeśli Twój dostawca nie jest obsługiwany, musisz go ręcznie skonfigurować zgodnie z opisem na stronie głównej . Aby zainstalować, kliknij tutaj:
Lub uruchom następujące polecenie:
sudo apt install prepaid-manager-applet
Modem Manager GUI to kompletne rozwiązanie do zarządzania i monitorowania modemów mobilnych w sieci. Zawiera wiele funkcji, a obsługa USSD jest tylko jedną z nich. Aby uzyskać pełną listę funkcji, odwiedź ich oficjalną stronę główną . Aby zainstalować, kliknij tutaj:
Lub uruchom następujące polecenie:
sudo apt install modem-manager-gui
V Mobile Broadband to oryginalne oprogramowanie Vodafone Mobile Connect dla systemu Linux, przepisane w celu zachowania zgodności z Network Managerem przez zespół Open Source firmy Betodine Connection Manager firmy Vodafone. Niestety, obecnie nie wydaje się, aby był bardzo aktywnie utrzymywany i nie jest dostępny w repozytoriach Ubuntu. Możesz jednak spróbować szczęścia, budując projekt ze źródła. Sprawdź ich stronę GitHub .
Ostrzeżenie : v-mobile-broadband
zależy od tego wader
, co zastępuje domyślną wersję Ubuntu modemmanager
. Jeśli więc napotkasz problemy z nową instalacją i zdecydujesz się odinstalować v-mobile-broadband
, nie zapomnij ponownie zainstalować modemmanager
pakietu.
W
gammu
tym celu można użyć narzędzia wiersza polecenia . Jeśli kod USSD, aby uzyskać saldo, to (powiedzmy) * 901 #, należy wykonać:Aby uzyskać instrukcje dotyczące instalacji i konfiguracji oraz więcej szczegółów, zobacz tutaj .
źródło
Możesz użyć poleceń AT bezpośrednio, aby sprawdzić saldo za pomocą USSD. W tym celu użyć dowolnego terminala szeregowego program, który pozwala komunikować się z modemem bezpośrednio (
putty
,minicom
etc.).Wybrałem,
atinout
ponieważ ładnie zintegrowało się z wierszem poleceń. Najpierw zainstaluj:Następnie, jeśli korzystasz z ModemManager (domyślny w Ubuntu Linux), być może będziesz musiał go najpierw wyłączyć, aby umożliwić
atinout
dostęp do modemu:Teraz, aby wysłać kod USSD dla zapytania o saldo do sieci (powiedzmy, * 901 #) i wyświetlić wynik, użyłbyś tego polecenia:
Zakłada się, że modem jest w stanie
/dev/ttyUSB1
.AT
Poleceń w drugimatinout
polecenia jest tylko, aby uzyskać niezamówionych odpowiedź USSD wyświetlany jako efekt uboczny, który powinien przybył posleep
.W przypadku, gdy zapytanie o saldo wymaga obsługi menu USSD: jest to również możliwe
atinout
, patrz: ta odpowiedź .źródło
Możesz to zrobić za pomocą pakietu
modem-manager-gui
. Ale jest dostępny tylko dla 13.10. W innych wersjach musisz nimi zarządzać w Terminalu z pakietemmodemmanager
.Jeśli korzystasz z systemu Ubuntu 13.10:
W innych wersjach Ubuntu możesz to zrobić za pomocą aplikacji
prepaid-manager-applet
źródło
Możesz użyć narzędzia wiersza poleceń Linuksa,
gsm-ussd
aby wysyłać kody USSD, uzyskiwać odpowiedzi, a nawet poruszać się po menu USSD (chociaż nie było to dla mnie stabilne / użyteczne).Szczegółowe instrukcje instalacji i konfiguracji znajdują się tutaj . Pakiet 0.4 Debiana oferowany tam do instalacji jest najnowszą wersją oddziału deweloperskiego .
Jeśli kod USSD, aby uzyskać saldo, to (powiedzmy) * 901 #, a modem jest
/dev/ttyUSB1
, wykonaj to, aby wysłać prosty kod USSD i wyświetlić odpowiedź sieci (bez wyświetlania menu):źródło
Możesz użyć
mmcli
klienta wiersza poleceń domyślnego ModemManager Ubuntu, aby wysłać kod USSD i uzyskać odpowiedź:Zacznij od listy modemy:
mmcli -L
. Spowoduje to wyświetlenie ścieżki modemu/org/freedesktop/ModemManager1/Modem/0
. Liczba na końcu to indeks modemu, pamiętaj o tym.Włącz modem (zakładając, że indeks modemu wynosi 0):
mmcli -m 0 -e
Wyślij żądanie USSD i wyświetl odpowiedź. Zakładając, że kod USSD operatora sieci w celu uzyskania równowagi wynosi * 901 #, polecenie wyglądałoby następująco:
W przypadku, gdy zapytanie o saldo wymaga obsługi menu USSD: jest to również możliwe
mmcli
, patrz: ta odpowiedź .źródło
error: couldn't initiate USSD session: 'GDBus.Error:org.freedesktop.ModemManager1.Error.Core.Unsupported: Operation not supported.'
Dla mnie oba rozwiązania oparte na ModemManager i
gammu
nie działają poprawnie z wielowierszową odpowiedzią USSD; np. mój operator ma polecenie USSD*104#
, na które odpowiada coś takiego:To rozczarowujące, aby zobaczyć tylko pierwszy bezużyteczny wiersz:
You have:
.W końcu znalazłem obejście
picocom
i ręczne polecenie AT. Dlatego za każdym razem, gdy chcę sprawdzić saldo, muszę wykonać następujące czynności:Najpierw zatrzymaj Modem Manager:
Teraz musisz znać swój port modemu; w moim przypadku tak jest
/dev/ttyACM0
.Jeśli nie znasz swojego portu, spróbuj tego:
I poszukaj wpisu za pomocą
Mobile Broadband Modem
. Np. Moje dane wyjściowe wyglądają następująco:Aby uzyskać więcej informacji na temat uzyskania właściwego portu, zobacz ten link: https://gist.github.com/heyalexej/cc6c97b1ea42736b3ff7
Następnie użyj picocom, aby połączyć się z portem:
Powinieneś zobaczyć coś takiego:
(jeśli tego nie widzisz
*EMRDY: 1
, prawdopodobnie oznacza to, że nie zatrzymałeś Modem Managera, patrz wyżej)Następnie wprowadź:
Po kilku sekundach powinieneś otrzymać odpowiedź, która może być wieloliniowa:
Aby wyjść z Picocom, użyj Ctrl-A Ctrl-X
I uruchom ponownie menedżera modemu:
źródło
Możesz używać wirtualnego rozwiązania PBX typu open source FreeSwitch wraz z jego rozszerzeniem GSMopen do wysyłania poleceń USSD [ źródło ].
Na przykład, jeśli kod USSD w celu uzyskania salda wynosi (powiedzmy) * 901 #, należy wykonać:
Oczywiście w innych odpowiedziach są prostsze rozwiązania, ale na wypadek, gdybyś mimo to używał GSMopen (… na przykład, ponieważ jest to jedyny sposób wykonywania połączeń głosowych GSM pod Linuksem…).
źródło