Yes, my tarif is a normal one, not pre-paied.
We have had this thread here already in 2023, see How to manage Caller ID setting - #26 by guru
and there are pointers to gitlab too.
The version of our app gnome-calls is 45.alpha.0, recent is today 49.1.1 from October this year, i.e. outdated. Is there any chance to update this, @dos , @guido.gunther ?
I asked ChatCPT to get more background about USSD and QMI, here is what it spilled out:
Here is a clear explanation of USSD codes and QMI codes, what they are used for in mobile networks, and where their specifications come from:
1. USSD Codes (Unstructured Supplementary Service Data)
What USSD is
USSD is a signaling protocol used in GSM, UMTS, and LTE networks to send short interactive text messages between a mobile device and the mobile operator’s network.
Example codes:
*#06#– show IMEI*100#– prepaid balance*123*5#– operator-specific services
How USSD works
- It uses the GSM control channel, not SMS.
- The communication is real-time and session-based (like a short text-based menu).
- Often used for balance checks, mobile banking, and provisioning menus.
Technical Specification
USSD is defined by 3GPP:
- 3GPP TS 22.090 – Stage 1 (service description)
- 3GPP TS 23.090 – Stage 2 (architecture, message flows)
- 3GPP TS 24.090 – Stage 3 (protocol-level details)
USSD messages are carried over the MAP (Mobile Application Part) protocol in SS7 networks.
2. QMI (Qualcomm MSM Interface) Codes
What QMI is
QMI stands for Qualcomm MSM Interface.
It is a proprietary control protocol used between Qualcomm modems (baseband processors) and the operating system (Linux, Android, Windows).
QMI provides API commands for:
- SIM management
- Network registration
- Data call setup (PDP context)
- SMS
- Radio configuration (LTE bands, 5G settings)
- Firmware updates
- Diagnostics
Where QMI is used
Devices that use QMI:
- Qualcomm Snapdragon smartphones
- Qualcomm-based 4G/5G USB modems
- Qualcomm M.2 data cards (e.g., Sierra Wireless, Telit)
- Linux routers using ModemManager or libqmi
What “QMI codes” are
QMI is structured into services, each with numbered request/response messages.
Examples:
QMI_WDS— Wireless Data ServiceQMI_DMS— Device Management ServiceQMI_NAS— Network Access ServiceQMI_UIM— UICC/SIM accessQMI_RF— Radio frequency control
Each QMI message has:
- A service ID
- A message ID
- A TLV (Type-Length-Value) encoded payload
Example (simplified):
QMI_NAS_GET_SIGNAL_STRENGTH = service 0x04, message ID 0x0020.
Official Specifications?
Qualcomm does not publicly publish full official QMI specifications.
However, reverse-engineered and partially documented sources exist:
Public Documentation
-
libqmi documentation (by ModemManager / Linux community)
→ https://www.freedesktop.org/software/libqmi/ -
Sierra Wireless AT + QMI guides
-
Some Qualcomm Open Interface specifications (rare, partial)
Inside Qualcomm’s QCN/SDM developer programs, more complete documents exist, but access requires NDAs.
Summary
| Feature | USSD | QMI |
|---|---|---|
| Layer | Network signaling (SS7/MAP) | Device-to-modem interface |
| Purpose | User/operator interactive menus | Modem control & configuration |
| Used in | GSM/UMTS/LTE networks | Qualcomm-based devices |
| Standardized by | 3GPP | Not fully public (Qualcomm proprietary) |
| Accessibility | Open specification | Partials via libqmi, NDA for full docs |
If you want, I can also provide:
List of common QMI commands
How QMI compares to MBIM and AT commands
Code examples (Linux qmicli, mmcli)
An overview of how Android communicates with the modem via QMI
Just tell me!