MM qmi USSD callbacks

Dan Williams dan at ioncontrol.co
Tue Jun 24 13:30:22 UTC 2025



> On Jun 23, 2025, at 4:51 AM, Mark Hindley <mark at hindley.org.uk> wrote:
> 
> Hi,
> 
> I am working on issues with USSD responses on Oneplus 6T (fajita). The
> installation is Mobian trixie with modemmanager 1.24.0 and qmi 1.36.0.
> 
> Dialling USSD to request balance in gnome-calls produces no response in the UI
> once the USSD spinner closes.
> 
> Using the terminal:
> 
> $ mmcli -m any --3gpp-ussd-initiate="*669#"
> error: couldn't initiate USSD session: 'GDBus.Error:org.freedesktop.ModemManager1.Error.Core.Aborted: Aborted: USSD terminated by network'
> 
> However, the response *has* been recieved and is visible in mmcli:
> 
> $ mmcli -m any --3gpp-ussd-status
>  ---------------------------------
>  General   |                 path: /org/freedesktop/ModemManager1/Modem/0
>  ---------------------------------
>  3GPP USSD |               status: idle
>            | network notification: Your Balance is £x.xx GBP 
> 
> This appears to be caused by ussd_release_indication_cb() being called before
> ussd_indication_cb() has processed the response.
> 
> I tried blocking the release-ussd signal in ussd_indication_cb(), but couldn't
> get it to help. However, returning immediately from ussd_release_indication_cb()
> if self->priv->pending_ussd_action is set does help, but I am unsure it is the
> right fix.
> 
> Or is this something to address in qmi?
> 
> Alternatively, am I missing something more obvious?

Mark,

Thanks for filing the issue too so this doesn’t get lost. For a wider audience I’ll respond here too.

I think this is a general issue with qtr/qcom_soc, as opposed to QMI over USB or PCI/MHI transport.

MM receives the indication immediately after sending the command to enable it, before the command response has been received. Most of the code in MM does not expect this situation, and we need to adjust every place MM registers for QMI indications to handle it. This isn’t a bad thing, just a chunk of code that needs to be worked through.

Richard Acayan started some work in https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/merge_requests/1340 and I had MR https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/merge_requests/1303 too. Neither of them are correct but Richard and I arrived at https://gitlab.freedesktop.org/mobile-broadband/ModemManager/-/merge_requests/1340#note_2872665 if anyone wants to help out. I can also do an example MR that others can follow.

Dan

> 
> Thanks
> 
> Mark
> -- 
> Mark Hindley
> GPG: 506C 15A4 2B0A F5A0 A854  23EE D28A 45BF 3287 D649
> 
> 



More information about the ModemManager-devel mailing list