Y a-t-il des outils ou des commandes que je peux utiliser pour envoyer des codes USSD pour vérifier l'équilibre et l'équilibre des données de la carte SIM GSM dans mon modem USB (dongle haut débit mobile)?
Voici quelques applications avec prise en charge de la vérification du solde USSD:
Prepaid Manager est une applet pour le bureau GNOME qui vous permet de vérifier et de recharger le solde des cartes SIM prépayées mobiles GSM. C'est une application simple et minimaliste avec vérification de l'équilibre USSD et rechargement étant tout ce qu'elle fait. Mais d'un autre côté, c'est une application très datée et n'a pas reçu de nouvelles mises à jour depuis longtemps. Et si votre fournisseur n'est pas pris en charge, vous devrez le configurer manuellement comme décrit sur leur page d'accueil . Pour l'installer, cliquez ici:
Ou exécutez la commande suivante:
sudo apt install prepaid-manager-applet
L'interface graphique de Modem Manager est une solution complète pour gérer et surveiller les modems basés sur les réseaux mobiles. Il contient de nombreuses fonctionnalités et le support USSD n'est que l'une d'entre elles. Pour une liste complète des fonctionnalités, visitez leur page d'accueil officielle . Pour l'installer, cliquez ici:
Ou exécutez la commande suivante:
sudo apt install modem-manager-gui
V Mobile Broadband est le logiciel Vodafone Mobile Connect original pour Linux réécrit pour être compatible avec Network Manager par l'équipe open source Betavine Connection Manager de Vodafone. Malheureusement, il ne semble pas être maintenu très activement pour le moment et n'est pas disponible dans les dépôts Ubuntu. Cependant, vous pouvez tenter votre chance de construire le projet à partir de la source. Consultez leur page GitHub .
Attention : v-mobile-broadband
dépend de wader
, qui remplace la valeur par défaut d'Ubuntu modemmanager
. Donc, si vous rencontrez des problèmes avec la nouvelle configuration et décidez de désinstaller v-mobile-broadband
, n'oubliez pas de réinstaller le modemmanager
package.
Vous pouvez utiliser l'utilitaire de ligne de commande
gammu
à cet effet. Si le code USSD pour obtenir votre solde est (disons) * 901 #, vous exécuteriez:Pour des instructions d'installation et de configuration et plus de détails, voir ici .
la source
Vous pouvez utiliser les commandes AT directement pour interroger votre solde via USSD. Pour cela, utilisez n'importe quel programme de terminal série qui vous permet de communiquer directement avec votre modem (
putty
,minicom
etc.).J'ai choisi
atinout
car il s'intègre bien avec la ligne de commande. Vous l'installez d'abord:Ensuite, si vous utilisez ModemManager (la valeur par défaut sous Ubuntu Linux), vous devrez peut-être le désactiver d'abord pour permettre
atinout
d'accéder à votre modem:Maintenant, pour envoyer un code USSD pour une requête d'équilibre au réseau (disons, * 901 #) et afficher le résultat, vous utiliseriez cette commande:
Cela suppose que votre modem est à
/dev/ttyUSB1
. LaAT
commande de la deuxièmeatinout
commande consiste simplement à afficher la réponse USSD non sollicitée comme un effet secondaire, qui aurait dû arriver après lesleep
.Dans le cas où l'interrogation de votre solde nécessite l'utilisation d'un menu USSD: c'est également possible avec
atinout
, voir cette réponse .la source
Vous pouvez les faire avec le package
modem-manager-gui
. Mais il n'est disponible que pour 13.10. Dans d'autres versions, vous devez les gérer dans Terminal avec le packagemodemmanager
.Si vous êtes dans Ubuntu 13.10:
Dans d'autres versions d'Ubuntu, vous pouvez le faire avec l'application
prepaid-manager-applet
la source
Vous pouvez utiliser l'outil de ligne de commande Linux
gsm-ussd
pour envoyer des codes USSD, obtenir des réponses et même naviguer dans les menus USSD (bien que ce ne soit pas stable / utilisable pour moi).Pour des instructions d'installation et de configuration détaillées, voir ici . La version 0.4 du paquet Debian qui y est proposé pour l'installation est la dernière version de la branche de développement .
Si le code USSD pour obtenir votre solde est (disons) * 901 # et que votre modem est,
/dev/ttyUSB1
vous l'exécuterez pour envoyer un code USSD simple et afficher la réponse du réseau (sans résultat dans un menu):la source
Vous pouvez utiliser le
mmcli
client de ligne de commande du ModemManager par défaut d'Ubuntu pour envoyer un code USSD et obtenir la réponse:Commencez par la liste de vos modems:
mmcli -L
. Cela montrera un chemin de périphérique de modem comme/org/freedesktop/ModemManager1/Modem/0
. Le numéro à la fin est l'index du modem, souvenez-vous-en.Activez le modem (en supposant que votre index de modem est 0):
mmcli -m 0 -e
Envoyez la demande USSD et affichez la réponse. En supposant que le code USSD de votre opérateur réseau pour obtenir le solde est * 901 #, la commande serait:
Dans le cas où l'interrogation de votre solde nécessite l'utilisation d'un menu USSD: c'est également possible avec
mmcli
, voir cette réponse .la source
error: couldn't initiate USSD session: 'GDBus.Error:org.freedesktop.ModemManager1.Error.Core.Unsupported: Operation not supported.'
Pour moi, les deux solutions basées sur ModemManager et
gammu
ne fonctionnent pas correctement avec la réponse USSD multiligne; par exemple, mon opérateur a une commande USSD*104#
, à laquelle il répond quelque chose comme:Il est décevant de voir que la première ligne inutile:
You have:
.Enfin, j'ai trouvé une solution de contournement avec
picocom
la commande AT manuelle. Donc, chaque fois que je veux vérifier mon solde, je dois faire ce qui suit:Tout d'abord, arrêtez Modem Manager:
Maintenant, vous devez connaître le port de votre modem; dans mon cas, ça l'est
/dev/ttyACM0
.Si vous ne connaissez pas votre port, essayez ceci:
Et recherchez l'entrée avec
Mobile Broadband Modem
. Par exemple, ma sortie ressemble à ceci:Pour plus d'informations sur l'obtention du bon port, consultez ce lien: https://gist.github.com/heyalexej/cc6c97b1ea42736b3ff7
Ensuite, utilisez picocom pour vous connecter à votre port:
Vous devriez voir quelque chose comme ceci:
(si vous ne voyez pas cela
*EMRDY: 1
, cela signifie probablement que vous n'avez pas arrêté Modem Manager, voir ci-dessus)Entrez ensuite:
Et après quelques secondes, vous devriez obtenir votre réponse, qui peut être multiligne:
Pour quitter picocom, utilisez Ctrl-A Ctrl-X
Et redémarrez le gestionnaire de modem:
la source
Vous pouvez utiliser la solution de PBX virtuel open source FreeSwitch avec son extension GSMopen pour envoyer des commandes USSD [ source ].
Par exemple, si le code USSD pour obtenir votre solde est (disons) * 901 #, vous exécuterez:
Il y a bien sûr des solutions plus simples dans les autres réponses, mais si vous utilisez quand même GSMopen (… par exemple parce que c'est le seul moyen de faire des appels vocaux GSM sous Linux…).
la source