Existem algumas ferramentas ou comandos que posso usar para enviar códigos USSD para verificar o equilíbrio e o equilíbrio de dados do cartão SIM GSM no meu modem USB (dongle de banda larga móvel)?
Estes são alguns aplicativos com suporte à verificação de saldo USSD:
O Gerenciador pré-pago é um miniaplicativo para o GNOME Desktop que permite verificar e completar o saldo dos cartões SIM pré-pagos móveis GSM. É um aplicativo simples e minimalista, com verificação e recarga de saldo USSD sendo tudo o que faz. Mas, por outro lado, é um aplicativo muito antigo e não recebe novas atualizações há muito tempo. E se o seu provedor não for suportado, você deverá configurá-lo manualmente, conforme descrito na página inicial . Para instalar, clique aqui:
Ou execute o seguinte comando:
sudo apt install prepaid-manager-applet
A GUI do Modem Manager é uma solução completa para gerenciar e monitorar modems baseados em rede móvel. Ele contém muitos recursos, e o suporte ao USSD é apenas um deles. Para obter uma lista completa dos recursos, visite a página oficial deles . Para instalar, clique aqui:
Ou execute o seguinte comando:
sudo apt install modem-manager-gui
V Mobile Broadband é o software Vodafone Mobile Connect original para Linux, reescrito para ser compatível com o Network Manager pela equipe Betavine Connection Manager da Vodafone, de código aberto. Infelizmente, ele não parece ser mantido ativamente no momento e não está disponível nos repositórios do Ubuntu. No entanto, você pode tentar a sorte criando o projeto a partir da fonte. Confira a página do GitHub .
Aviso : v-mobile-broadband
depende wader
, o que substitui o padrão do Ubuntu modemmanager
. Portanto, se você encontrar problemas com a nova instalação e decidir desinstalar v-mobile-broadband
, não se esqueça de reinstalar o modemmanager
pacote.
Você pode usar o utilitário de linha de comando
gammu
para esse fim. Se o código USSD para obter seu saldo for (digamos) * 901 #, você executaria:Para instruções de instalação e configuração e mais detalhes, consulte aqui .
fonte
Você pode usar os comandos AT diretamente para consultar seu saldo via USSD. Para isso, use qualquer programa de terminal serial que permita a comunicação direta com o modem (
putty
,minicom
etc.).Eu escolhi
atinout
porque ele se integrava perfeitamente à linha de comando. Primeiro você o instala:Então, se você usa o ModemManager (o padrão no Ubuntu Linux), pode ser necessário desativá-lo primeiro para permitir o
atinout
acesso ao modem:Agora, para enviar um código USSD para consulta de saldo à rede (por exemplo, * 901 #) e exibir o resultado, você usaria este comando:
Isso pressupõe que seu modem esteja em
/dev/ttyUSB1
. OAT
comando no segundoatinout
comando é apenas para obter a resposta USSD não solicitada exibida como um efeito colateral, que deveria ter chegado após osleep
.No caso de consultar sua balança exigir a operação de um menu USSD: isso também é possível
atinout
, consulte esta resposta .fonte
Você pode fazê-los com o pacote
modem-manager-gui
. Mas está disponível apenas para 13.10. Em outras versões, você precisa gerenciá-los no Terminal com o pacotemodemmanager
.Se você estiver no Ubuntu 13.10:
Em outras versões do Ubuntu, você pode fazer isso com o aplicativo
prepaid-manager-applet
fonte
Você pode usar a ferramenta de linha de comando do Linux
gsm-ussd
para enviar códigos USSD, obter respostas e até navegar nos menus USSD (embora isso não fosse estável / utilizável para mim).Para instruções detalhadas de instalação e configuração, consulte aqui . O pacote Debian da versão 0.4 oferecido lá para instalação é a versão mais recente do ramo de desenvolvimento .
Se o código USSD para obter seu saldo for (digamos) * 901 # e seu modem for,
/dev/ttyUSB1
você o executará para enviar um código USSD simples e exibir a resposta da rede (não resultando em um menu):fonte
Você pode usar o
mmcli
cliente de linha de comando do ModemManager padrão do Ubuntu para enviar um código USSD e obter a resposta:Comece listando seus modems:
mmcli -L
. Isso mostrará um caminho do dispositivo de modem como/org/freedesktop/ModemManager1/Modem/0
. O número no final é o índice do modem, lembre-se.Habilite o modem (assumindo que o índice do seu modem seja 0):
mmcli -m 0 -e
Envie a solicitação USSD e exiba a resposta. Supondo que o código USSD da sua operadora de rede para obter o saldo seja * 901 #, o comando seria:
No caso de consultar sua balança exigir a operação de um menu USSD: isso também é possível
mmcli
, consulte esta resposta .fonte
error: couldn't initiate USSD session: 'GDBus.Error:org.freedesktop.ModemManager1.Error.Core.Unsupported: Operation not supported.'
Para mim, as duas soluções baseadas no ModemManager e
gammu
não funcionam corretamente com a resposta USSD multilinha; por exemplo, meu operador possui um comando USSD*104#
, ao qual responde algo como:É decepcionante ver apenas a primeira linha inútil:
You have:
.Finalmente, encontrei uma solução alternativa com o
picocom
comando AT manual. Portanto, toda vez que quero verificar meu saldo, tenho que fazer o seguinte:Primeiro, pare o Modem Manager:
Agora, você precisa conhecer a porta do modem; no meu caso, é
/dev/ttyACM0
.Se você não conhece sua porta, tente o seguinte:
E procure a entrada com
Mobile Broadband Modem
. Por exemplo, minha saída é a seguinte:Para obter mais informações sobre como obter a porta correta, consulte este link: https://gist.github.com/heyalexej/cc6c97b1ea42736b3ff7
Em seguida, use picocom para conectar-se à sua porta:
Você deve ver algo assim:
(se você não vê isso
*EMRDY: 1
, provavelmente significa que não parou o Modem Manager, veja acima)Em seguida, digite:
E após alguns segundos, você deve receber sua resposta, que pode ser multilinha:
Para sair do picocom, use Ctrl-A Ctrl-X
E inicie o gerenciador de modem novamente:
fonte
Você pode usar a solução de PBX virtual de código aberto FreeSwitch juntamente com sua extensão GSMopen para enviar comandos USSD [ origem ].
Por exemplo, se o código USSD para obter seu saldo for (digamos) * 901 #, você executaria:
É claro que existem soluções mais simples nas outras respostas, mas no caso de você usar o GSMopen de qualquer maneira (… por exemplo, porque é a única maneira de fazer chamadas de voz GSM no Linux…).
fonte