How to manage Caller ID setting

I tried to dial from the app Calls the USSD string *#06# which should report the own IMEI, but nothing is returned.

1 Like

So I’m not the only one having this issue :face_with_raised_eyebrow:

1 Like

I suggest you review the Wikipedia page on this: https://en.wikipedia.org/wiki/Unstructured_Supplementary_Service_Data

Summary: USSD is a mess.

Slightly longer summary:

There are codes that are not technically USSD codes that are standardized but which may or may not work (on the Librem 5).

There are codes that are USSD codes and these are not standardized (i.e. vary between network operators) and which may or may not work (on the Librem 5).

The above page specifically notes that for the “not technically USSD codes”, they are interpreted first by the handset. So I would suggest that the problem here is that Calls doesn’t have (all) the necessary functionality.

I expect you were just using “IMEI” as an example but if you actually want to find your IMEI on the Librem 5: https://source.puri.sm/Librem5/community-wiki/-/wikis/Tips%20&%20Tricks#imei

1 Like

Yes, this was just used as an example. I will check the pointers, though. Thanks.

You can use modem manager to send USSD codes, but that fails too.
Sending is reported as success but the returned response is “UNKNOWN APPLICATION”

I’m not sure if Modem Manager uses Calls for sending these codes.

1 Like

Please open this post: USSD codes on the Librem 5, especially if *135# (inserted SIM card number) not working with your provider/phone.

Based on the other topic linked above, I should say Calls or the modem.

“they are interpreted first by the handset” doesn’t specify exactly where on the handset i.e. the division of labour i.e. application software and other software on the phone itself v. firmware in the modem.

1 Like

I tried *135#(simcard number), but it did not work.

OK, so it boils down to how to modem handles the USSD codes.

That isn’t accurate because some codes that are called USSD codes are not USSD codes and because being handled on the handset could mean in the modem but could mean on the host CPU.

Try one of the non-USSD codes listed in the table at: https://en.wikipedia.org/wiki/Unstructured_Supplementary_Service_Data#Code_table (i.e. one of the variations using 31).

I’ve checked the USSD page of my provider (Fonic in Germany). They support the following codes related to switch-off call transfer:

deactivate on no answer: ##61#
deactivate on not reachable: ##62#
deactivate on busy: ##67#

I tried them all with the Call app. After entering the above code and pressing the dial button, a new window appears labeled USSD and a rotating circle, but no other message or visible reaction. But it seems that the switch-off in the network worked.

1 Like

I went to the log files and from my attempts this morning it shows:

Jan  5 07:55:57 pureos gnome-calls[1295]: Using origin '4917600000000' for call to '##61#'
Jan  5 07:55:59 pureos gnome-calls[1295]: USSD Error: GDBus.Error:org.freedesktop.libqmi.E
rror.Protocol.SupsFailureCase: Couldn't originate USSD operation: QMI protocol error (92):
 'SupsFailureCase'
Jan  5 07:56:48 pureos gnome-calls[1295]: Using origin '4917600000000' for call to '##62#'
Jan  5 07:56:51 pureos gnome-calls[1295]: USSD Error: GDBus.Error:org.freedesktop.libqmi.E
rror.Protocol.SupsFailureCase: Couldn't originate USSD operation: QMI protocol error (92):
 'SupsFailureCase'
Jan  5 07:57:27 pureos gnome-calls[1295]: Using origin '4917600000000' for call to '##67#'
Jan  5 07:57:30 pureos gnome-calls[1295]: USSD Error: GDBus.Error:org.freedesktop.libqmi.E
rror.Protocol.SupsFailureCase: Couldn't originate USSD operation: QMI protocol error (92):
 'SupsFailureCase'

Time to file a bug issue (will do later).

Issue created as https://gitlab.gnome.org/GNOME/calls/-/issues/545

2 Likes

Thanks Guru.

That is promising in a sense i.e. it is at least attempting to recognise the USSD code and do something with it. :wink:

When I do the same with my beloved Ubuntu BQ E4.5 its dialer app shows:


with this reaction after 12- secs:

screenshot20230106_081520066

1 Like

updated

I used a terminal app kermit to talk directly to the modem; dial strings must be terminated by ; to make them work:


purism@pureos:~$ sudo kermit ~purism/.kermrc
C-Kermit 9.0.305 OPEN SOURCE: Alpha.02, 19 Sep 2020, for Linux+SSL+KRB5 (64-bit)
 Copyright (C) 1985, 2020,
  Trustees of Columbia University in the City of New York.
Type ? or HELP for help.
(/home/purism/) C-Kermit>c
Connecting to /dev/ttyUSB3, speed 9600
 Escape character: Ctrl-U (ASCII 21, NAK): enabled
Type the escape character followed by C to get back,
or followed by ? to see other options.
----------------------------------------------------
atd##62#;
OK

^MODE: 3

+DISC: 5,0,0,31,"##62#",129


NO CARRIER


^MODE: 9

...

it also does work to dial a valid number:

atd0170xxxxxxxxx;
NO CARRIER

^MODE: 3

+DISC: 15,0,1,69,"0170xxxxxx",129

^MODE: 9

NO CARRIER

^MODE: 3

+DISC: 15,0,1,69,"0170xxxxxxxx",129

^MODE: 9
2 Likes

Is Fonic inside of this package: How will APN settings work? Also, thanks for bringing this issue forward!

apt list mobile-broadband-provider-info
apt list prepaid-manager-applet
sudo apt install prepaid-manager-applet

For example, after installation of prepaid-manager-applet might (at least) recognize which provider used there:


As @guido.gunther already wrote to us: “It uses ModemManager (the GSM and 3G helper of NetworkManager) to talk to the modem and mobile-broadband-provider-info to determine the necessary USSD codes for your provider.

Today I’ve received confirmation that USSD codes aren’t working due to a bug.
Purism support has created a ticket for the issue here

1 Like

We did not created the ticket; @guru did