USSD codes on the Librem 5

Continuing the discussion from Librem 5 media (photos and videos):

That’s pretty neat. The only one I’m regularly using is *100#, which seems to be non-standard, but retrieves my remaining pre-paid balance (AldiTalk).

I just thought it would be nice if some of those (standardized and custom) codes would be made available via UI. For example “temporary change of the transmission of CLIR” or “Change PIN”


I also use AldiTalk. The Pre Paid Manager (PPM) application made by Guido Günther also works with AldiTalk, can confirm that myself.

Works nice on the Librem 5. But the calls app also works now.


Ah, I had forgotten about that app :slight_smile:
Actually, sometimes I just used the USSD code because the AldiTalk-Android app takes half a minute to start on my Galaxy S3, so may be I won’t even really need that anymore on the Librem 5 :smiley:

That is something I always refused to have. When I bought the card and went home, I flipped out that to activate it I would have to do a video conference with a AldiTalk employee to confirm my identity (that my face matched the one in the ID documents I would have to upload to a website).

I went back to the store and asked to activate the card there. The shop employees where like: really?!? you don’t wanna do this at home? We have other tasks to do…


When I bought mine, video activation was not a thing, luckily :slight_smile:

1 Like

As someone that comes from a country where you can just buy a pre paid SIM in pretty much any store, no questions asked, you can imagine my reaction. In the end I was able to activate the AldiTalk card in the supermarket.


Here is link to approach that already works with *100# over Calls UI, as just installed over wget and tested it as 100% reliable on my PinePhone. And, might be that we already have an (relatively) easy solution here:, same to here related video posted from @dos few days ago, or at least very similar (in purpose and content).

1 Like

Fun fact about the PPM app linked above it was originally designed for laptops. So you can use it with your USB modem or built in modem.

Also the latest version of calls now supports USSD, so these very helpful temporary helper bash scripts, should no longer be necessary.


Yes, thank you and your knowledgeable friends ( so much!

UPDATE: I’ve just entered my CashCode: * 101*XtraCashNummer#:telephone_receiver: and this worked out-of-the-box, after brand new Phosh related install that already included gnome-calls 0.1.9-1 (meaning above script/link of mine is/was obsolete anyway).


I’m having troubles with USSD codes recently. Calls doesn’t send them, the USSD window opens and runs forever. I tried via mmcli, to get some insight. Here is the output:

purism@librem5:~$ mmcli -L
/org/freedesktop/ModemManager1/Modem/0 [QUALCOMM INCORPORATED] 0
purism@librem5:~$ mmcli -m 0 --3gpp-ussd-initiate=##002#
error: couldn't initiate USSD session: 'GDBus.Error:org.freedesktop.ModemManager1.Error.Core.Unauthorized: PolicyKit authorization failed: not authorized for 'org.freedesktop.ModemManager1.USSD''

Will somebody straighten this out?

An attempt with sudo

purism@librem5:~$ sudo mmcli -m 0 --3gpp-ussd-initiate=##002#
sudo: unable to resolve host librem5: Name or service not known
error: couldn't initiate USSD session: 'GDBus.Error:org.freedesktop.libqmi.Error.Protocol.SupsFailureCase: Couldn't originate USSD operation: QMI protocol error (92): 'SupsFailureCase''

the strange error in the output of the command sudo is happening for some time, I don’t know if it matters, but:

purism@librem5:~$ cat /etc/hostname

I can’t help with the actual issue, but I believe the sudo problem is likely due to the /etc/hosts file not having a librem5 rule. Check /etc/hosts for the rule and make sure that it is aliased to librem5. The default hostname is pureos, I believe. So if that alias is there, you are probably safe to remove it.


Yes, this is a problem with quite a few distros. The initial hostname ends up in two places (/etc/hosts and /etc/hostname) but if you change the hostname permanently by editing /etc/hostname (and I think that is the only way) … you also have to edit /etc/hosts

Not a problem if you know that you have to do that but …

The hostname command maybe needs to grow an option to make the change permanent (or maybe all DNS code needs to read /etc/hostname in addition to /etc/hosts and take the hostname out of /etc/hosts but that sounds riskier and more disruptive).

That’s what it was on my Librem 5, before I changed it.

Adding: I put this info in the Tips and Tricks Wiki:


To come back to the main theme, the sudo error actually didn’t affect the outcome of the mmcli command. It doesn’t even work after fixing /etc/hosts.
Any idea?
Would anybody like to try on their phone? Just to make me understand if it’s a common issue (misery loves company :slightly_smiling_face:).

I tried a *124# balance check and also get the endless spinning. I confirmed that my network was selected, sent a successful SMS just to make sure I wasn’t off-network.

And… I just did a test call to my L5. I observed it drop to 3G as if receiving a call, but it didn’t make a sound, although I was getting ringing from the dialing phone. Never connected and the L5 didn’t ring or notify of a missed call. An SMS from another phone didn’t come through to the L5, either, even though the network is active and selected.

P.S. My online account shows a call received, too.

Thanks! So this must be a bug introduced by recent updates. I’m driving nuts my carrier’s technical support (I’m experiencing calls issues too), but it may just turn out to be a L5 problem. @joao.azevedo please help!

From my experience, USSD does not yet work with VoLTE. You can either disable VoLTE or simply go to: Settings > Mobile > Network Mode , and select any option that has 3G as the preferred mode.

In my case, I don’t have a VoLTE setting yet, nor is it active. Also, my L5 already drops to 3G during calls, although this morning when I tried calling or receiving a call, it didn’t actually work. It dropped to 3G, but nothing else happened at all.

Guess what… I just made a successful *124# connection. Incoming/outgoing calls are both working again.

This modem seems to be a bit “bipolar.” :man_shrugging:

Or maybe it’s just afraid of commitment…

1 Like

In that case you should create an issue. (However you will need an account for that first.)