Address Book problem

Bear in mind that the software itself is changing all the time, so it can be difficult to know whether
a) something changed in the software or
b) you did something differently or
c) there is still a bug and it will still work or fail unpredictably.

I say again though: I have chosen to store (and import) all my contacts without the +country-code and that has always worked for me. I expect it wouldn’t work if I went overseas but that isn’t frequent, is expensive to call from, is ‘impossible’ right now anyway - so not a priority to worry about.

More generally, into whatever is the international access number in the phone’s current location.

The “+” is not just a typing shortcut. It is a syntactic indicator that tells the phone whether the number that is stored is intended to be a full international number (requires one set of rules) or is intended to be a domestic number (requires a different set of rules).

1 Like

I knew there had to be a better reason. Thanks for the clarification.

1 Like

I guess you are right when saying that the software currently changes frequently. Because according to the above, I shouldn’t have the + in front of 30 210 1234567 when dialing from within Greece. But currently this does not work. It only works if the number is written as +30 210 1234567

All I am saying is that the phone should not make any assumptions without my permission. For example, when I dial in Calls 210 123456 it just dials these digits and the call goes through. So Calls works properly. But the address book is the app that makes the assumptions. If I write 210 123456 in AddressBook and press the dial button, the app sends another number to Calls. It sends +12101234567.

So the Address Book and not Calls, makes assumptions. This is a bug to my eyes.

For example, what will happen if I add a 4 or 5 digit number to the AdressBook. Say the number of a service. The telephone carriers have 4 digit numbers. 1314 is the number of my carrier. Maybe it will dial +11314. I will check.

1 Like

I don’t think you fully understood what I meant.

The “+” is about telling the phone that the number as stored is a full and complete international number (which, through the application of rules, is able to be used anywhere in the world).

The “+” does not say to the phone that the number is a foreign number.

In other words, it is perfectly valid to include the “+” and a full international number for all phone numbers that you store, whether the phone number is that of someone in Greece or someone outside Greece, and if you travel outside your country fairly often, this is probably the best approach.

None of this has any relevance to what you actually dial, if you manually dial the number yourself. It is only about what is stored.

I remain open minded about that. Until we understand better what is going wrong, it may or may not be a bug. (I’ve stored all my numbers without +country-code and I don’t have this problem of having “+1” added.)

It clearly isn’t working for you. That much we can see.

Unfortunately that’s not how mobile phones work. If we were talking about a landline, you would be right. On a landline you would expect that what is dialled is nothing more and nothing less than the buttons that you press - and the responsibility is on you to press the right buttons.

Because mobile phones are designed to be portable across international boundaries, they are expected to adapt their behaviour to the country in which they find themselves - and that requires doing things behind the scenes that you didn’t explicitly request.

By the way… can I stop the vibration for incoming calls and leave only the sound?

And in Calls do you know how to delete the list of all the previous made calls (incoming or outgoing) ? I can delete them one by one but not all of them. Can I clear this list maybe from the commandline and the filesystem?

Hah. I asked the same question. You’re not going to like this but:

To me this is a significant gap in the GUI.

Perhaps you’ve looked into this already, but is there some sort of locale setting being missed? Your phone acts like it’s an American phone in Greece, whereas @irvinewade’s phone acts like an Aussie phone in Australia.

1 Like

Good question. Also, whether the locale was set before or after the import?

I can confirm that the standard locale file contains a section LC_TELEPHONE.

I can confirm that I have definitely set my locale on the Librem 5 (to en_AU). (I set this long before I imported any contacts because I was getting annoying error messages, completely unrelated to contacts. I did make calls before setting the locale but those were manually dialled and they were not international calls.)

Yes, I did not change the default locale. Because I prefer English for the interface, as Greek is not always translated nicely. I did however generated the el_GR locale.
Checking LC_TELEPHONE with echo $LC_TELEPHONE returns nothing. If I need to set this to el_GR.UTF-8, how do I do it properly?

That might be your problem then. Nice one, @Gavaudan.

LC_TELEPHONE is a section within the locale file.
view /usr/share/i18n/locales/el_GR

For me that section says:

LC_TELEPHONE
tel_int_fmt    "+%c %a %l"
int_prefix     "30"
int_select     "00"
END LC_TELEPHONE

but obviously I am not set to el_GR.

At this stage, it may be better to select el_GR.

If you are really keen, you could create a new locale that is en_GR, which is a copy of e.g. en_US but with the LC_TELEPHONE section copied in from the el_GR locale. However this may be a can of worms. It’s not something I have tried.

If you have created a locale (or it already exists) then you can change locale using

sudo dpkg-reconfigure locales

This is a slightly clunky character cell UI. See the Community Wiki Tips & Tricks for how to use it if you have not used it before (or work out what the corresponding GUI is!).

2 Likes

Ah yes! I see. Great. Indeed in locale en_US it says

LC_TELEPHONE                                                                    
tel_int_fmt    "+%c (%a) %l"                                                    
tel_dom_fmt    "(%a) %l"                                                        
int_select     "11"                                                             
int_prefix     "1"                                                              
END LC_TELEPHONE

Where in el_GR it says:

LC_TELEPHONE                                                                    
tel_int_fmt    "+%c %a %l"                                                      
int_prefix     "30"                                                             
int_select     "00"                                                             
END LC_TELEPHONE   

I have to think what to do … :thinking: I never had a chance to use this variable on pc-desktop. So it did not cross my mind it would be that. But it is a phone! Hmmm…

1 Like

I think @irvinewade’s suggestion to make a en_GR locale is a good idea, though I also have never done that. Alternatively, you could swap out the LC_TELEPHONE stuff so that the el_GR numbers are there. Make a backup of what you have now in case it does end up losing its mind.

Trying to change the language to Greek from the Settings, the list is empty. There is only US English and some arabic one. No other languages are available on my L5. I guess this means I need to install some packages. Which ones?

?

My phone came with six languages as standard (Arabic, German, American, Spanish, French and Russian) so nothing for me :rofl:.

I used the shell to persuade it to speak Australian. Refer my previous post. I don’t think you need to install any additional packages but I am not certain on the commands to use as it is kind of the thing that you do once in the life of a computer, very early on, and then forget about it.

I found that /etc/environment is depreciated in favor of /etc/default/locale
This file contains LANG set to en_US.UTF-8 and other LC variables set to el_GR.UTF-8, but it does NOT contain LC_TELEPHONE. Moreover
echo $LC_TELEPHONE returns nothing. So I added to this file the line
LC_TELEPHONE=el_GR.UTF-8
and rebooted. Checked in the terminal that the system picked up the change:
echo $LC_TELEPHONE returns el_GR.UTF-8

But the surprise is that now the address book can not dial any number. No matter what is the number you click on the dial button and does nothing.

I remove the LC_TELEPHONE and reboot. Calling works again from the address book. I try a second time to set LC_TELEPHONE and reboot. Now the address book passes the number to Calls but again with the +1. But Calling does not work at all. Even if I use the dialpad Calls can not start the call.

I remove the LC_TELEPHONE again, reboot and the system works as it was before making calls either from the dialpad or from the address book with numbers starting with +30.

So my conclusion is that Calls does not like the el_GR.UTF-8 string for LC_TELEPHONE and the address book it still passes +1 to Calls for numbers not starting with +30. :frowning_face:

For some reason all locales were erased (I have no idea how this happened). I regenerated locales including el_GR.UTF-8 and switched again: LC_TELEPHONE=el_GR.UTF-8
Now things work but it does not solve the problem. Dialing 2101234567 from the address book it dials +12101234567
LC_TELEPHONE in el_GR.UTF-8 file is correct (it adds 30). But the address book sends +1 to the Call application.

I am not setting LC_TELEPHONE.

My copy of the above file says:

#  File generated by update-locale
LANG=en_AU.UTF-8

That’s it.

So straight off, I wouldn’t be editing the file at all. I would be switching locale using the appropriate command.

I have the feeling that if you set LANG but none of the other LC variables then the LC variables will default as per the LANG. It still may be valid to set LC variables independently of LANG (in order to override selectively) but it may also be unnecessarily complicated.

I can not make it work. The chat app has the same type of automatism with the address book and there it works as expected. So in the chat app if I type 2101234567 and press the + button on its screen to type an SMS, it auto corrects the previous number to +302101234567.

but the address book insists on adding +1 instead of +30. I will file a bug report (if I find the link to the project…)

1 Like

Maybe this: https://source.puri.sm/Librem5/calls/-/issues/167 or other issues linked from it is relevant.

If you are running amber then perhaps some (or even many) issues will go away once byzantium is released.

So it turns out that this IS a bug. I was informed by the developers that it is patched and it will appear soon in byzantium. The sad thing is that I am in amber. But I am afraid to switch to byzantium since I hear people complaining for problems with wifi.

1 Like