Signal-android: Automatically try domain fronting if direct connection to the Signal service fails

Created on 14 Dec 2017  路  13Comments  路  Source: signalapp/Signal-Android

Hi there,

my father has traveled (from Gemany) to Egypt vor vacation. Although he has a working data connection, my messages over Signal are not delivered (single check marks only).

It looks like domain fronting does not turn on. Just my assumption...

(Btw. displaying connection state and in addition domain fronting on/off would be great.)

I am not sure what exact Signal version he is using. But I suppose one of the latest few (non-beta) releases.

Most helpful comment

@johanw666 thanks for the info. I think we move to an other messaging service in that case.

Binding domain fronting to the phone number makes IMHO no sense since planes have been invented. Why does Signal not automatically try domain fronting when it cannot connect to the service?

Let's use this issue for this request.

All 13 comments

Domain fronting is currently only used when you register with a number from the country for which it is used.

So if your father needs it he should get a local sim and re-register Signal with that number. His identity key and message history will remain the same and after registration he can replace the local sim with his German one. When he is back he can re-register with his German sim.

@johanw666 thanks for the info. I think we move to an other messaging service in that case.

Binding domain fronting to the phone number makes IMHO no sense since planes have been invented. Why does Signal not automatically try domain fronting when it cannot connect to the service?

Let's use this issue for this request.

Duplicate of an existing issue. In any case we're not going to do that, domain fronting is country specific, we don't know where you are, etc.

@moxie0 You could ask the user to select a country from a popup list, after telling them that it looks like Signal has been blocked?

There is no way to know that Signal has been censored. You could be on wifi at the mall without having clicked through the captive portal, there could be a signal outage, there could be a comcast outage, your linksys router might need to be restarted, etc.

You can ask for the current mobile network and check the country code of the operator. If that is not available (wifi only, no simcard, permission denied, ...) a fallback to the number where Signal is registered with would be a logical option.

There is no way to know that Signal has been censored. You could be on wifi at the mall without having clicked through the captive portal, there could be a signal outage, there could be a comcast outage, your linksys router might need to be restarted, etc.

For everything but the network outage/hardware issue, you would be able to ping Google (if you can't get google, there's no connection / domain fronting wouldn't work anyway).

For the signal outage, using domain fronting should still throw an error leaving the user in the same position as before, i.e. unable to send anything.

Imagine the shit storm of a 30 second Signal outage causing millions of people all over the world to get a notification that says "The country you are in may be censoring Signal. Please select your location." Not to mention that it would likely only make the outage worse if people did then try to connect through domain fronting. I'm sorry but we're not going to do this.

@moxie0 I understand. Thanks for your explanation.

This issue popped up, when my wife went to Oman for holidays. Signal suddenly just is not usable anymore.
While I would overall blame badass countries with censorship for that, it still is also an issue for Signalapp itself.
So, in the end, it would be wise to still have auto-domain fronting on numbers (egypt, oman, iran, etc...), and additionally there should be an option for the user to activate domain fronting manually.
Egypt e.g. is a very common country for vacation for european citizens ... might be strange for you, but that's the truth (and think of turkey, even much more common).

On the other hand, domain fronting seems to be blocked by all major cdn's at the moment because Telegram also used it and Google became blocked in Russia because of it. Besides that, the exact details of domain fronting differ per country so your requested functionality (which I certainly understand) would require code to check the country the network you are connected with is in. I'm not sure if this can be done reliably.

Besides that, the exact details of domain fronting differ per country so your requested functionality (which I certainly understand) would require code to check the country the network you are connected with is in. I'm not sure if this can be done reliably.

Add a Button in the extended settings menu: "I am currently in ...", and a dropdown to select one of the countries which is known to censor.
IMHO that's nothing which must be "automagically". It is ok to have some special configuration for it.
I could help by SMS to activate that feature for e.g. my wife.
The situation now is: I simply cannot help. Even if I would add that feature to the signal client on my own, it would be pretty complex to guide her through the process of installing an .apk from one of my servers. ...

Hey @BastianBalthasarBux , we try not to use GH for feature requests or discussion. Please see the forums for that; you're more likely to see a positive outcome there.

Also, you should know that we don't allow verbal abuse, sarcasm, or negative and unhelpful communication here.

Was this page helpful?
0 / 5 - 0 ratings

Related issues

vvug picture vvug  路  3Comments

halb9 picture halb9  路  3Comments

5boro picture 5boro  路  3Comments

hiredgunhouse picture hiredgunhouse  路  3Comments

derWalter picture derWalter  路  3Comments