Are USSD now working in the L5 Dial app?

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:


:white_check_mark: 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.


:white_check_mark: 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 Service
  • QMI_DMS — Device Management Service
  • QMI_NAS — Network Access Service
  • QMI_UIM — UICC/SIM access
  • QMI_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:

:blue_book: Public Documentation

Inside Qualcomm’s QCN/SDM developer programs, more complete documents exist, but access requires NDAs.


:magnifying_glass_tilted_left: 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:

:white_check_mark: List of common QMI commands
:white_check_mark: How QMI compares to MBIM and AT commands
:white_check_mark: Code examples (Linux qmicli, mmcli)
:white_check_mark: An overview of how Android communicates with the modem via QMI

Just tell me!

1 Like