2

For a personal project, I'd like to use an MF920V modem. It's a mobile 4G modem made by ZTE. (Not to be confused with USB dongles).

The idea is to code an api with Python or Nodejs to remote control the Raspberry PI 3B+ through SMS. Using the same modem cell number. That could be used as a workaround for global network problems (IP, DNS...) and perform remote actions like rebooting the PI or rebooting the Modem itself... The pi would check sms messages received on the modem line and react based on instructions found in a preset sms models.

Remote network control using modem cell

Anybody tried working on that layer of communication with those modems? I'm sure it's possible because their Android app ZTE Link displays received sms and capable of other settings functions like rebooting, managing wifi settings... What protocol you think is being used to sync the App to the modem? SSH is possible but HTTP API is also possible like a manufacturer API right?

My first approach, was trying to use the SMSsync app on an old GalaxyS4. That network expects the phone to be both an SMS Gateway and an IR transmitter. It's a plus but with more equipments.

Remote network using another mobile cell

[UPDATE] I'm getting close! just by using Developer Console with the modem WebInterface, using their server built-in "server", I found some interesting data in clear jSon format:

enter image description here

And when I googled "goform/goform_get_cmd_process", I found this interesting project who used a similar project with a similar modem from ZTE !

And now, I received the same Data on terminal by using CURL. I could check new sms... :)

curl -s "http://<MODEMIP>/goform/goform_get_cmd_process?isTest=false&cmd=sms_capacity_info" -H "Host: <MODEMIP>" -H "Referer: http://<MODEMIP>/index.html#home" --compressed

What's missing now is those SMS in readable format, because when I do the command to fetch all sms :

curl -s "http://<MODEMIP>/goform/goform_get_cmd_process?isTest=false&cmd=sms_data_total&page=0&data_per_page=500&mem_store=1&tags=10&order_by=order+by+id+desc"  -H "Host: <MODEMIP>" -H "Referer: http://<MODEMIP>/index.html#home" --compressed

I receive them in an encrypted format:

enter image description here

It's a start ! I'll keep working on that... Any idea of what encryption is being used here?

1
4

If the content of the message comprises only characters 0-9 A-F then the message is in all likeliness encoded in hexadecimal.

If you copy and paste the message payload into a utility that translate hexadecimal to ASCII you might be pleasantly surprised with a message.

3
  • 1
    Thanks ! I just came from this to announce the same result onlineutf8tools.com/convert-hexadecimal-to-utf8 ! Yep it was just Hexadecimal code with no hash and no encryption... Me going through those USSD, UCS2 and mobile codes was just complicating things!!! I need to go back to primary school :) Thank you – Bilel Feb 1 '20 at 1:52
  • 1
    Please consider marking the answer as correct. You may also wish to consider using a SMS service like Twilio if you wish to reduce the complexity / part count (enables removal of SMS gateway from your design) – gatorback Feb 1 '20 at 2:11
  • 1
    Thanks for the suggestion... But in this design, SMS could work independently from global internet. I do remember mentioning that :) When internet fails, commands go through Global GSM network and local Wifi network. I started to think about that after DynDns and ISP cache issues... This API just adds an "Indoor" in case of failure :) – Bilel Feb 1 '20 at 2:27

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.