-
-
Notifications
You must be signed in to change notification settings - Fork 6.2k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Error messages in Argentina #1511
Comments
This sounds incredibly complicated. So, you have different numbers when being called from outside Argentina than when being called from the inside? How do other apps that do verification (like WhatsApp etc.) circumvent this problem? |
Hi, tinloaf. What you say is correct. If anybody outside Argentina call to somebody in Argentina, is necessary to add the nine. I don't know how Whatsapp works, but when I want to register there , I put 11245678 (the +54 is fixed in Whatsapp App for Argentina). When I want to send a message to a friend (both in Argentina), just with the number 11245678 works perfectly. If I want to send a message to a friend who live in Poland, for example, my number arrive there with the nine. (+54911245678). |
I don't know how TextSecure works internally, but a possible solution to this goes as follows: The server should be aware when someone from Argentina is sending a push message to a cellphone with abbreviated number (11-xxxx-xxxx OR 15-xxxx-xxxx) , and complete the number accordingly (that would be +54-11-xxxx-xxxx in the first case OR +54-[own city code]-xxxx-xxxx in the second case ) (this fixes problem 3) If I understand problem 5 correctly, this happens because you are sending an SMS to a number with the 9 (to circumvent problem 2). With the fix nº2, it will fix this problem also, as you will not have added the 9 to your friend's number in the first place. Problem nº6. Someone from poland search for an Argentina number. The poland client will have the number with the 9. So the server should be aware that that's an Argentinean number, when searching for the contact in the server database (by removing the number when searched). This also happens when the poland client sends a push message. This will solve problem 6. (The SMSs from the poland client will arrive fine since he has the number with the 9). The good news about this is that the solution is completely server side I think. (I'm not sure if "message incorrect cipher" is a reply from the server after failing to find the number in his db, but if it is, it is server side problem.) After fixing this, it would be a good idea to find all the numbers from Argentina that registered by adding the 9, and remove the 9 from the number). It would be odd if Argentina was the only country with these anomalies. We should find out all the other countries magic numbers. |
@a7359324 we just pushed 2.1.0 to the Play store which may resolve this problem. Can you try creating a conversation with a contact in the updated version and report back on the issue's status after that? |
@mcginty I started testing problem 1 (registering without adding the 9) |
Coming from #5270, Could authors indicate sourcecode files which manage phone number schemes in order to pass it to phone-based contact search? There is methods for phone number i18n: Looking at Argentina datafiles it should be straightforward on the Signal side. NB: this bug in libphonenumber: https://github.com/googlei18n/libphonenumber/issues/684 is somehow related but is not blocking (it's about people omitting the "15" when calling from mobile phone) |
Same problem here. |
+1
but a precision about this specific sentence:
they register with a different number (eg `+54 123 4567891`, missing **`9`**)
they couldn't call either. Argentina international phonenumber notation
MUST contains the "9" whatever the network used at the time they call.
|
That's true. But I have two friends that registered their numbers (in Signal) without the I think the logic to force full international numbers is not complicated: At register time, you must force to use full international number to send the SMS: Taking in mind that all full international numbers for a given country must have same length. I can see two scenarios regarding the numbers in your contact list:
In this way you just need to match full international numbers. And, taking in mind that they are unique, I think that it should solve the problem of missing contacts in Signal. |
@tandiljuan Please look at #4378, this issue is about the registration, the other is about other users who cannot see you as a Signal user, which you describe. Also, in my experience, adding the "9" does not guarantee proper detection. In fact, I had the exact opposite situation (had to suppress the "9" for the number to work). Right now I have some contacts with the "9" and others without it. Signal should redundantly search for any possible combinations to properly register a number, i.e. if I register any of these numbers (or have them in the contact list), Signal should search for all of them: Telegram does not have this issue AFAIK, perhaps it is possible to look at the code to see how it handles numbers from Argentina. |
Imagine a contact is saved in the phonebook using this syntax: 15XXXXXXXX
AFAICT Signal has no hint about the country (there are 281)
... + what happens when traveling abroad?
Even then, the issue lay down to the ambiguous Argentina numbering
scheme which make a number depends upon caller position.
Signal has no hint about the zone (they are ~250 of them!).
= it's like if Argentina was adding 250 country-codes.
The only way to workaround the issue is the make Signal (or related
library) either:
* 1) fetch information from the SIM-card provider in order to
determine the prefix code (in the event it's consistently offered but
Android's API *AND* claro/movistar/personnal implement it)
* 2) fetch the owner's phone number, attempt to extract the zone, assume
this zone for all un-zoned contact phone number searches.
Again, this may better fit an upstream library like:
https://github.com/googlei18n/libphonenumber/blob/master/resources/PhoneNumberAlternateFormats.xml
https://github.com/googlei18n/libphonenumber/blob/master/resources/geocoding/en/54.txt
(217 zones according to them)
Telegram does not have this issue AFAIK
From what I can remember I was having the same issue with Telegram, in
Argentina in 2016: if there was a mismatch in the phonenumber notation,
Telegram wouldn't find the contact (it may have changed since btw)
The only related file found client-side sourcecode in the sourcecode of TG is here:
https://github.com/DrKLO/Telegram/blob/master/TMessagesProj/src/main/assets/countries.txt
(but not much interpolation attempt)
|
@Pesebrero You have to remove the 9 because your contacts registered their cellphone number without the 9. You have them in your contact list as +5491231234567 but they registered as +541231234567. I can confirm, in the registration process, the international number for Argentina is @mcginty Is this a Twilio issue? Or is something that you could force in the application side? @drzraf If Signal properly force the users to register with international numbers (using the 9), there shouldn't be mayor issues to detect contacts. I've already explained the logic to do it. All countries have an international number, (almost all have?) an area code and then the phone number. Worth to mention that I've worked on a mobile application service, where we fixed this issue with the logic that I've mentioned. So far, I think the only issue is the 9. Of course, it's needed to test other combinations. |
@Pesebrero You have to remove the *9* because your contacts registered
their cellphone number without the *9*. You have them in your contact
list as *+5491231234567* but they registered as *+541231234567*.
thank for clarifying this.
That means that Argentina phone numbers registered in the Signal
server database are *not* reachable (contrary to all other countries' numbers)
Not that it annoy me in any way but it mean it's assumed as raw unique
client ID without a (strong) dialing/reachability semantic.
Should I be able to register using an email address then ;)
|
> Signal has no hint about the zone (they are ~250 of them!).= it's like if Argentina was adding 250 country-codes. > From what I can remember I was having the same issue with Telegram, in Argentina in 2016: if there as a mismatch in the phonenumber notation, Telegram wouldn't find the contact (it may have changed since btw) > You have to remove the 9 because your contacts registered their cellphone number without the 9. You have them in your contact list as +5491231234567 but they registered as +541231234567. |
GitHub Issue Cleanup: |
For example I live in Buenos Aires and my friend too, so when I need to send a sms to my friend (In Buenos Aires), I have 4 numbers to send it:
11-245678
15-245678
11-15-245678
+54-11-245678
+54: Code for country
11: Code for Buenos Aires (Sometimes is posible using 011)
15: This is a prefix for mobile phones.
When I must register in Texsecure to use push message, I must add a number, the 9. So, if you want to call to me o want to send a message to me, you need add a 9. This is only for people outside Argentina.
Example:
+54-9-11245678 (+54 Argentina Code, get off the code 15, and put the code 11)
Possible problems for this:
I hope this help you. Thanks for all.
Best regards.
The text was updated successfully, but these errors were encountered: