问题
If I have a SIM card from a mobile operator - for example, Vodacom in South Africa, I can use their USSD services via dialling *111#
. Then I can navigate the options via using my mobile phone keyboard.
I would like to create a script that does this in an automated way. Is there a way to do this?
I see this is possible on an Android application (Make USSD call in android). Is there a way to consume a specific mobile operator's UUSD service without first purchasing a SIM card from that operator? (i.e. running this from a server over http/tcp).
回答1:
To access the USSD menu you need to be on the mobile network. USSD is not internet, nor even data network. USSD is transported on mobile signaling network. Thus you need to have a SIM.
To navigate on a USSD menu via scripts, you may need few steps.
You need a GSM device connected to your computer. A USB Modem is OK but all modems don't have this functionality. I have been using a Huawei 180E model.
You'll need to talk to your modem over a serial line. On Linux, USB Modems can be reached as
tty
devices, typically on/dev/ttyUSB0
(there is no absolute rule: some models only define 2 devices, some models define 4). For tests, you can use some terminal software. I useminiterm.py
, a Python program, butminicom
is OK as probably many others. For automation you may need a serial library for your preferred language. On the command line, there isatinout
but I didn't manage to make it work properly,socat - /dev/ttyUSB0
should also work.Finally, to talk to your modem, you need to use the
Hayes Modem AT
commands. You can read theAT
command reference [3GPP 27.007][1], chapter 7.15 for a formal documentation, but basically, sent to the modem (without the#...
part):ATZ # to reset the modem AT+CUST=2 # to close any ongoing USSD session AT+CUSD=1,"#111#",15 # to initiate the navigation
and if you get the menu, you're fine; if not, well, things are not desperate, but it may be more difficult as you'll probably need to play with character encoding.
[1]: https://www.etsi.org/deliver/etsi_ts/127000_127099/127007/10.03.00_60 (/ts_127007v100300p.pdf
来源:https://stackoverflow.com/questions/52290487/how-to-use-a-mobile-providers-uusd-code-service-via-an-automated-process