¿Hay algunas herramientas o comandos que pueda usar para enviar códigos USSD para verificar el saldo y el saldo de datos de la tarjeta SIM GSM en mi módem USB (dongle de banda ancha móvil)?
Estas son algunas aplicaciones con soporte de verificación de saldo USSD:
Prepaid Manager es un applet para el escritorio GNOME que le permite verificar y recargar el saldo de las tarjetas SIM prepagas móviles GSM. Es una aplicación simple y minimalista con verificación de saldo USSD y recarga que es todo lo que hace. Pero por otro lado, es una aplicación muy anticuada y no ha recibido ninguna actualización nueva en mucho tiempo. Y si su proveedor no es compatible, deberá configurarlo manualmente como se describe en su página de inicio . Para instalar, haga clic aquí:
O ejecute el siguiente comando:
sudo apt install prepaid-manager-applet
Modem Manager GUI es una solución completa para administrar y monitorear módems basados en redes móviles. Incluye muchas funciones, y el soporte USSD es solo una de ellas. Para obtener una lista completa de características, visite su página web oficial . Para instalar, haga clic aquí:
O ejecute el siguiente comando:
sudo apt install modem-manager-gui
V Mobile Broadband es el software original de Vodafone Mobile Connect para Linux reescrito para ser compatible con Network Manager por el equipo de código abierto Betavine Connection Manager de Vodafone. Desafortunadamente, no parece mantenerse de forma muy activa en este momento y no está disponible en repositorios de Ubuntu. Sin embargo, puedes probar suerte construyendo el proyecto desde la fuente. Echa un vistazo a su página de GitHub .
Advertencia : v-mobile-broadband
depende de wader
, lo que reemplaza el valor predeterminado de Ubuntu modemmanager
. Por lo tanto, si encuentra problemas con la nueva configuración y decide desinstalar v-mobile-broadband
, no olvide volver a instalar el modemmanager
paquete.
Puede usar la utilidad de línea de comandos
gammu
para este propósito. Si el código USSD para obtener su saldo es (digamos) * 901 #, debe ejecutar:Para obtener instrucciones de instalación y configuración y más detalles, consulte aquí .
fuente
Puede usar comandos AT directamente para consultar su saldo a través de USSD. Para eso, use cualquier programa de terminal en serie que le permita comunicarse con su módem directamente (
putty
,minicom
etc.).Elegí
atinout
porque se integraba muy bien con la línea de comando. Primero lo instalas:Luego, si usa ModemManager (el predeterminado en Ubuntu Linux), es posible que primero deba deshabilitarlo para permitir el
atinout
acceso a su módem:Ahora, para enviar un código USSD para la consulta de saldo a la red (por ejemplo, * 901 #) y mostrar el resultado, usaría este comando:
Esto supone que su módem está en
/dev/ttyUSB1
. ElAT
comando en el segundoatinout
comando es solo para que la respuesta USSD no solicitada se muestre como un efecto secundario, que debería haber llegado después delsleep
.Para el caso de que consultar su saldo requiera operar un menú USSD: esto también es posible con
atinout
, vea esta respuesta .fuente
Puedes hacerlos con el paquete
modem-manager-gui
. Pero solo está disponible para 13.10. En otras versiones, debe administrarlos en la Terminal con el paquetemodemmanager
.Si estás en Ubuntu 13.10:
En otras versiones de Ubuntu puedes hacerlo con la aplicación
prepaid-manager-applet
fuente
Puede usar la herramienta de línea de comandos de Linux
gsm-ussd
para enviar códigos USSD, obtener respuestas e incluso navegar por los menús USSD (aunque eso no era estable / utilizable para mí).Para obtener instrucciones detalladas de instalación y configuración, consulte aquí . El paquete Debian de la versión 0.4 que se ofrece allí para la instalación es la última versión de la rama de desarrollo .
Si el código USSD para obtener su saldo es (digamos) * 901 # y su módem es
/dev/ttyUSB1
, ejecutará esto para enviar un código USSD simple y mostrar la respuesta de la red (que no da como resultado un menú):fuente
Puede usar el
mmcli
cliente de línea de comandos del ModemManager predeterminado de Ubuntu para enviar un código USSD y obtener la respuesta:Comience haciendo una lista de los módems:
mmcli -L
. Esto mostrará una ruta de dispositivo de módem como/org/freedesktop/ModemManager1/Modem/0
. El número al final es el índice del módem, recuérdelo.Habilite el módem (suponiendo que su índice de módem sea 0):
mmcli -m 0 -e
Envíe la solicitud de USSD y muestre la respuesta. Suponiendo que el código USSD de su operador de red para obtener el saldo es * 901 #, el comando sería:
Para el caso de que consultar su saldo requiera operar un menú USSD: esto también es posible con
mmcli
, vea esta respuesta .fuente
error: couldn't initiate USSD session: 'GDBus.Error:org.freedesktop.ModemManager1.Error.Core.Unsupported: Operation not supported.'
Para mí, ambas soluciones basadas en ModemManager y
gammu
no funcionan correctamente con la respuesta USSD multilínea; Por ejemplo, mi operador tiene un comando USSD*104#
, al que responde algo como:Es decepcionante para ver sólo la primera línea inútil:
You have:
.Finalmente encontré una solución alternativa con
picocom
un comando AT manual. Por eso, cada vez que quiero consultar mi saldo, tengo que hacer lo siguiente:Primero, detenga Modem Manager:
Ahora, necesita saber su puerto de módem; en mi caso, lo es
/dev/ttyACM0
.Si no conoce su puerto, intente esto:
Y busca la entrada con
Mobile Broadband Modem
. Por ejemplo, mi salida se ve de la siguiente manera:Para obtener más información sobre cómo obtener el puerto correcto, consulte este enlace: https://gist.github.com/heyalexej/cc6c97b1ea42736b3ff7
Luego, use picocom para conectarse a su puerto:
Debería ver algo como esto:
(si no ve esto
*EMRDY: 1
, probablemente significa que no ha detenido el Administrador de módem, consulte más arriba)Luego ingrese:
Y después de varios segundos, debería obtener su respuesta, que puede ser multilínea:
Para salir de picocom, use Ctrl-A Ctrl-X
Y vuelva a iniciar el administrador del módem:
fuente
Puede usar la solución PBX virtual de código abierto FreeSwitch junto con su extensión GSMopen para enviar comandos USSD [ fuente ].
Por ejemplo, si el código USSD para obtener su saldo es (digamos) * 901 #, debería ejecutar:
Por supuesto, hay soluciones más simples en las otras respuestas, pero en caso de que use GSMopen de todos modos (... por ejemplo, porque es la única forma de hacer llamadas de voz GSM en Linux ...).
fuente