signalapp / Signal-Android

A private messenger for Android.
https://signal.org
GNU Affero General Public License v3.0
25.16k stars 6.06k forks source link

Calls always income as missed ones without ringing and Signal doesn't report the call failed #7733

Open szotsaki opened 6 years ago

szotsaki commented 6 years ago

Please, report issues only from version 5.6 upwards!

General complaints forum and user help-out on this issue: https://community.signalusers.org/t/make-signal-calls-reliably-ring-on-the-receiver-side/18510


Bug description

Users are welcome to re-submit bug reports

When Signal is opened in front of me on my phone and via Hangouts PC I hear the other party while his Signal is actually ringing me. My Signal shows no sign that I'm being called. At the end of ringing, when the network automatically disconnects, I immediately receive a "You have a missed call" notification in the chat.

Reproduced on three different WiFi networks with the same person.

The time difference between the two phones is approximately 5 seconds. Both phones are set to synch to carrier time.

Steps to reproduce

Actual result: Call arrives as missed one. Expected result: Phone B rings.

Screenshots

Device info

Device: Sony F5121 Android version: 7.1.1 Signal version: 4.14.10

Link to debug log

Callee debug log: https://gist.github.com/anonymous/9984ab543d85a181b06b02954564c060 Caller debug log: https://gist.github.com/anonymous/5eae662fee114e5e07a72dbd02c0e92d

Original report: #7314

@moxie0:

According to the logs in the issue, the devices are not able to find a valid ICE candidate.

Please, unambiguously tell the user there is an error happening during the call and the call has never been initiated.

References: #7603

Since this bug report is specifically about the non time-sync issue, there's another one for the time-sync problem. Please, don't clog this report with NTP-timing issues anymore but you're more than welcome to add your comments in and subscribe to #9633. Thank you.

moxie0 commented 6 years ago

Do either of you have a VPN enabled?

cegg1 commented 6 years ago

In my case I don't have a VPN or Tor enabled on any of the phones and neither do my contacts.

szotsaki commented 6 years ago

In my case I have DNS66 enabled (which is an "in-phone" VPN for ad-blocking) but several times applications circumvent it. My contact doesn't have a VPN.

moxie0 commented 6 years ago

@szotsaki Can you try disabling and retest?

alandom commented 6 years ago

i have the exact same issue with my signal. please let me know if you solve the issue.

erik55 commented 6 years ago

I have the same issue. Sometimes calls work, sometimes I only get a missed call message (Samsung S7 phone and Samsung S5 mini on the other side).

Another thing: When we are calling each other at the same time, no connection is achived/no call is coming in, neither is there a callee busy sign/tone.

How could I help improve this?

hbasold commented 6 years ago

I can confirm that the same happens also for calls between a Fairphone 1 (Android 4.2.2) and an iPhone in both directions. Please let me know if you need anything.

szotsaki commented 6 years ago

If you want this fixed sooner, please provide:

I myself can retest the VPN-less solution a bit later.

erik55 commented 6 years ago

When I experienced this, both phones were connected via WiFi, no VPN. At the moment I can’t reproduce this. (maybe one of the WiFis was bad, slow?).

But still: When we are calling each other at the same time, no connection is achived/no call is coming in, neither is there a callee busy sign/tone. It just submarine echoes for ever. Separate bug?

haffenloher commented 6 years ago

@erik55

When we are calling each other at the same time, no connection is achived/no call is coming in, neither is there a callee busy sign/tone. It just submarine echoes for ever. Separate bug?

Yep. You could open a new report for that if you like.

erik55 commented 6 years ago

The last thing, I mean when we are calling each other at the same time, seems to work now: I hear that the busy sign/tone.

And now I can always call, but the other person can't call me anymore (I only get messages: Missed call). When I read that I can at least call back.

szotsaki commented 6 years ago

@erik55: could you please answer the comment above you to make it easier to fix this bug?

erik55 commented 6 years ago

OK, both phones are now in the same WiFi. The Samsung S7 has always the Signal beta version, the Samsung S5 Mini the regular version.

Problem: S7 can call S5 Mini, but S5 Mini can't call S7.

Successful call from S7 to S5 Mini

Now try to call from S5 Mini to S7

I hear submarine echo on the S5 Mini, and immediately get a message of a missed call on the S7, while the S5 Mini continues to submarine echo.

erik55 commented 6 years ago

This is all so buggy!!!

I tried the same with the mobile network, WiFi deactivated. No connection at all. And messages from S7 to S5 Mini arrive quite fast, but messages from S5 Mini to S7 take 5 or 10 minutes (some only arrived after putting the S5 Mini in the WiFi again). But the mobile network on the S5 Mini seems bad, because it changes from H+ to 3G every few seconds.

I put both phones in the WiFi again, send some messages in both directions and was then able to establish a call from S5 Mini to S7!!

erik55 commented 6 years ago

It seems to work now in both directions both with WiFi and mobile network. Messages also are sent and received immediately.

S5 Mini log

S7 log still not possible, it always crashes. That seems to be the solution: If the logging on the S7 crashes, then connection is working.

I will now restart the S7 phone to make it work again (the logging).

S7 log right after restarting

erik55 commented 6 years ago

Still seems to work in both directions after restart of S7. The connectivity seems to be somehow established.

mpiffault commented 6 years ago

Same problem here :

Sometime call pass, sometime not. I'll come back with logs later.

mirasPL commented 6 years ago

I cant call to my contacts all the time conecting but my contact can call me not every time but they can. Text is ok. Android 8.1.0 One plus one Ireland

szotsaki commented 6 years ago

@mirasPL Please, attach logs right after the failed call attempt described in the comment above. Do you have VPN enabled?

mirasPL commented 6 years ago

https://debuglogs.org/6926f8a7ed3e901e2aef5f86aed86317ba7040827fe1944eb06b8d8c6f08fe3b This is my logs after failed call no VPN

szotsaki commented 6 years ago

Now I could reproduce the issue. The following logs are from the receiver side.

"Didn't work" means that only the notification arrived that I have a missed call. You can compare the two logs and possibly find out whether VPN has any importance regarding this issue.

Countries: don't block apps and sites.

Android: latest 8.0 Signal: latest version.

Do you need any other information we can provide to you?

Frejr commented 5 years ago

I have this problem too. Almost. I can make and receive calls, when I'm connected to WiFi . My phone operator seems to give me only IPv6 address (IPv4 available over tunnel), so maybe somewhere here's the problem (or Android version).

Testing: Two phones with the same mobile operator (no VPN connections).

Others unintentional "tests" shows, that problems appears only when I'm not WiFi connected. All other function works fine (messages, pictures and attachments) and are not network type dependent.

Apps on both ends were killed and started again - I found it helped to someone. No positive results.

Here's first log (my phone): https://debuglogs.org/764d4007a185cdc40ad90f8afcc356091abcb5e861e2c4a76bf8be0eab54589d

And the second after reboot (without connect to WiFi on start - also my device): https://debuglogs.org/b588786285c1e2031d3e7bd1f6e91722bb2dc966181d216bf33669b9274ce578

Please let me know if I could give any more data, because problem is little bit annoying.

kuala-lumpur1 commented 5 years ago

I can confirm the problem. I have the same problem and tried on both Android and IOS and Signal is not blocked on my country and i don't use VPN or Tor on both devices.

For me to solve this issue, I just switch between the Wifi and Mobile network and trying to call about 3 to 4 times until the call established successfully.

Sometimes it works when both phones are connecting to Wifi .. and sometimes it works when one device is on WiFi and the other one is on Mobile network.

ghost commented 5 years ago

This issue seemed to resolve itself for me when I stopped using a DNS changer. I was using the application DNSChanger and with it enabled calls did not work on neither LTE or WiFi. I suppose this may be he same issue as it working with VPNs. This shouldn't be the case though. My Wi-Fi network uses a local DNS and it seems to work fine, but when I try to change the DNS on the device specifically (Android phone), Signal calls fail.

Champion0081 commented 5 years ago

@kuala-lumpur1 @Frejr @szotsaki Hey guys, i believe i observed similar problem and it seemts to be ipv6 related. The issue described above is visible on my Orange LTE in Poland . By default the APN is "internetipv6" which provides the phone IPv6 address ONLY to the phone. You can change the apn to "internet" and get an IPv4 address (private one).

In both scenarios text messaging works fine, the issue is with the calls.

On ipv6 only APN on android :

On ipv4 only APN on andoid:

Can someone look into this? Seems like the ipv6 only connection seem to make a difference. The carrier (Orange Poland) claims they do not shape traffic in any way that can cause Signal or any other app to malfunction. Please note that Orange has a long story of routing all traffic outside it's network from Poland through Germany (Frankfurt) and to the other ISPs from there.

Device: Samsung Galaxy S7 SM-G930F OS: Oreo 8.0 (XEO unbranded official rom for Poland)

Frejr commented 5 years ago

@mattimac: Yes! YES! YEEEEEEESSSS! It is! This helped! Tank you! I din't know, that I can change it!

So… We have one thing what causes problems. ONLY IPv6 protocol.

kuala-lumpur1 commented 5 years ago

@mattimac
Can you explain how to change the apn to "internet" and get an IPv4 address (private one) ?

I'm having this issue with both Wifi and Mobile Network !

@moxie0 Is there any update regarding this issue ? maybe the reply of @mattimac can help ?!

vipulparashar commented 5 years ago

Go to seetings - click on 'more' - Click on 'Mobile Networks' - Click on 'Access Point Names' - Click on your 'APN' - Click on 'APN PROTOCOL', Update it to 'ipv4'

This is valid for mobile networks only.

Champion0081 commented 5 years ago

Anything more we can do to draw devs attention to it?

kuala-lumpur1 commented 5 years ago

I just checked my mobile and actually it's By Default set to IPv4.

Still hope to find solution for this problem

cegg1 commented 5 years ago

@moxie0 I can confirm that setting the mobile access point to IPv4-only has fixed Signal calls for me. Thanks @mattimac for finally figuring it out!

Signal 4.24.7, Pixel 2 stock 8.1 Oreo, on the EE UK network

szotsaki commented 5 years ago

A gentle ping.

In my language of Google Play all Signal comments are about of this bug (of course without explicitly mentioning it). They cannot initiate a call, only missed call sign is reported etc.

I would like to ask if you have any ETA for fixing this issue.

The application is, otherwise, great but this makes using it a bit erratic. Thank you!

erik55 commented 5 years ago

For me the problem is fixed, I don’t know what happened, but it’s not reproducible anymore. But a problem I still have is: Sometimes when I make a call, it echoes for ever. But when I send a message and then start calling, it works almost immediately. Somewhat of a workaround.

Champion0081 commented 5 years ago

For me problem still exists and chaning APN IP mode to IPv4 seems to be quite reliable workaround.

ghost commented 5 years ago

Mine is already on IPv4 and even with wifi it fails too

omd10 commented 5 years ago

I can confirm this. IPv4 may be workaround for some, but it is not a real fix. I even doubt that it is related to this issue, mine was always on IPv4. The application receives the push but has issues with power management and/or notifications. Logs provided in #8302.

dorakas commented 5 years ago

This issue started on my phone after they changed something in the signal notification system

rabsonic commented 5 years ago

will test today IPv4 settings, but there is another thing After maby last app update. Signal refuses other calls (gsm normal calls) without any notification. Example: I'm talking with person A on Signal while person B is calling me via phone app, after two normal signals person B get bussy tone, moreover I did not get any information about that somebody is calling me. In previus Signal version I could provide even 3way communication, when I was talking with sbd on signal, other people could call me and I could answaer or not the call.

1301051906 commented 5 years ago

Can anyone just tell me how can I do to make the voice call? Yesterday I used an iPhone 6 IOS 11 adding a new friend on signal for the first time and then I made the call successfully. However today I can't. Why? NO VPN, version 2.30.2.16, SAME WIFI, TWO PHONES ON MY HANDS

erik55 commented 5 years ago

A workaround that I use is:

ozgurakyazi commented 5 years ago

A workaround that I use is:

* Start a call, then write a message. Then switch back to the call (works on Android).

* Or write a message shortly before calling, like “will call now”.

I tried these workarounds before for many times but it did not work for me. But this one, constantly works and makes me able to talk via Signal. Here it is:

If I wait in that person's conversation, I mostly see Missed Call as a new message in the feed.

dorakas commented 5 years ago

The most akward part is that sometimes calls work perfectly and sometimes under the same conditions don't work at all

Champion0081 commented 5 years ago

@dorakas @ozgurakyazi @rabsonic can you check if you whitelist signal in power optimization - set to "do not optimize" if receiving the calls is more reliable?

dorakas commented 5 years ago

It seems that this problem resolved for me. The bad thing is nothing changed. There was no update for pixel 3 and no relevant commit in signal

five-c-d commented 5 years ago

these appear to be exceptional cases we're looking at that seem to arise from specific device configurations. I have 10 Android devices on my desk right now, and sadly I'm unable to reproduce... --https://github.com/signalapp/Signal-Android/issues/8302#issuecomment-437759492

@greyson-signal , suggest trying the following, since in my experience there is a latency-related aspect. (Meaning, worse latency worsens the problem i.e. makes it somewhat more reproducible when it is known to sometimes happen with a given device-pair... but there is no guarantee that call-setup will fail, nor a guarantee that call-setup will work either... unfortunately I cannot pinpoint a truly reproducible set of steps, even on a device which 'often' experiences the trouble I go for weeks at a time with no issues, then have a rash of no-ring-just-see-missed-call type of problems... but usually just with one or two other persons, both devices typically cryptocall fine 99.3% of the time with 99.8% of contacts).

This setup should allow you to place a cryptocall from android#C3 to android#D4 which has a lot of latency, and will exercise the regional STUN/TURN servers of your choice (recommend you try western EU per the four androids below), and make the selection of ICE candidate(s) take a significant amount of handshaking.

If you STILL cannot get call-setup-failure, try broadband noise: insert microwave oven #M5 physically in between android#C3 and the 'ISP' thereof android#A1, and cook some ramen whilst attempting cryptocalls (you can also use a large electric motor such as a washing machine... or aluminum foil as DIY reflectors... if you dislike ramen). You can also run CPU-intensive or RAM-intensive apps on your two hotspot-providing-devices, to further exacerbate things.

It may help if android#C3 is a newer flagship samsung, s8 / s9 and friends with at least android v8+ running, whereas android#D4 is a cheap older smartphone running an older version of android v4/v5/v6/v7 ...that might be circumstantial though, i.e. not be essential

p.s. Some additional debuglogs captured 2019-01-22 on four androids that saw problems in various crypto-call attempts, are discussed here == https://community.signalusers.org/t/calls-take-a-long-time-to-connect/4954/8 In particular, shellSignal in one of their cryptocall attempts has a suspiciously-close-to-exactly-60-seconds pause happening "just" after handleCallOfferMessage and "just" before WebRtcCallService: onStartCommand on the recipient-device. Which suggests a timeout, though no exception was thrown.

I don't think these are config-specific device-specific bugs

Another thread, which is more general and has no debuglogs but does have some mention of the removal of sonar-ping MP3 recently, is here == https://community.signalusers.org/t/why-do-signal-calls-take-much-longer-than-wa-calls-before-ringing/5871 I realize that OWS is hampered in the ability to see call-setup-troubles across the userbase of signalapp, because you do NOT spy on endusers :-) Thank you for that, greatly. But I strongly suspect, having run into the never-rings-just-throws-missed-call problem on multiple devices with multiple contacts at various times during the past six months, that the trouble is not device-specific config-specific. All my contacts are using stock ROMs, almost none of them enable any non-default settings (within signalapp nor within the underlying OS of the smartphone), and so on. There is some kind of root cause here, in the webRTC layer or the wrapper around it -- since invariably, in my anecdotal experience at least, the "missed call" textual-message sent via signal-protocol arrives without ANY trouble -- regardless of whether there are 'network errors' according to the logfile that seemed to be the 'proximate cause' of the webrtc failure. Like dorakas, my cryptocalling woes periodically resolve themselves despite no relevant client-side commits... and I can reliably make calls for days or even weeks, even to contacts that used to be problematic... but later the problems always crop back up again. So the problem is either server-side (and if so almost certain TURN/STUN/ICE/similar stuff and not signal-server proper), or a subtle timing-related condition client-side, maybe?

Champion0081 commented 5 years ago

Hey guys, it seems that we did not clearly isolated the issue and ensured this is actually one issue. This is extremely frustrating, devs keep on adding new features while we still do not have reliability regarding one of the most basic features - calls. They have exceptional quality once established but i still observe this issues with no ringing on the other side.

This is extremely frustrating as I spend days trying to track down the cause but with no luck. Any ideas what approach can bring us more progress on this?

@dorakas @ozgurakyazi @rabsonic @erik55 @szotsaki @vipulparashar @kuala-lumpur1 do you still experience this issue? any workarounds seem solid for any of you?

Please note that android firmware updates seem to clear APN settings for me, i can see i had again ipv6 by default! Please recheck this one and test if switching to ipv4 fixes this until the next firmware update!

ozgurakyazi commented 5 years ago

Hey, I am still using the workaround I mentioned before. I am having the other side call me, instead of me calling them. Before they call me, I go to the main(home) screen of Signal, to my limited experience, if I wait in the conversation screen of the caller, call does not arrive to me(again, this is just limited experience).

Another point I would like to add is, I am having this issue only with 1 specific smartphone model(Samsung Galaxy Trend S7560, 2 different phones same problem. I can provide with logs, if needed, in 2 weeks).

Sorry to inform that, I did not check power optimization in those phones. Will do it and write down the result.

About ipv6 configuration, I dont have currently access to both phones, so I cant really change anything. But they are able to call my phone, does ipv6 configuration somehow blocks the connection just one way? Also, they are always connected to wifi(wifi only), ipv6 is only for mobile networks, isn't it? In any case, I will try this.

Is there any other simple tests you would like me to do?

Best,

szotsaki commented 5 years ago

This bug is still present on the latest version of Signal (4.33.5).

@greyson-signal @moxie-signal : Do you need any specific information from us in order to make Signal calls working?

five-c-d commented 5 years ago

@basketas , there seem to be at least four different manifestations... the symptom is the same, "missed call", but the gory details, as revealed in the debuglogs, are very different. Can you please upload some debuglog-pairs, one from the caller and one from the callee, where you experience the problem? And ideally, some debuglogs from successful calls, for comparison, from those two devices.

does ipv6 configuration somehow blocks the connection just one way?

@ozgurakyazi -- Yes, this seems to be the case, at least with some configurations. One person that was receiving no calls on dataplan, but got them to work on wifi or by using the VPN with their dataplan (which typically ADDS latency and HURTS cryptocalling but in this situation helped), traced the difficulty to enabling a non-default DNS-lookup service. https://community.signalusers.org/t/calls-not-connecting-possible-issue-with-dns-over-tls-and-or-ipv6/6286/31 This was different from the usual 7733 type of bug, but methinks related to some flavours thereof. The workaround was to return to using the normal DNS-lookup service of the carrier... does anybody who is experience 7733 buggy behavior, have cloudflare or dns.google 1.1.1.1 or 8.8.4.4 or 8.8.8.8 enabled, perhaps?

@ozgurakyazi -- And if you have those debuglogs you spoke of, which were to become available after a couple weeks... well, it has been a couple of weeks. You can post them here if you prefer, or for easier discussion, start a new thread at https://community.signalUsers.org -- you can login with your github credentials, or signup with another email if you prefer

@szotsaki -- my understanding is that the troubleshooting is hard, because is Greyson is unable to reproduce the problem on any of his dozen test-devices. Most of the people who experience the problem intermittently (including myself), find it to be very hard to pin down, i.e. it cannot be reproduced on demand, even with their own devices. Sometimes my one contact that has trouble cryptocalling me, gets through right away, other times it takes two tries, and SOMETIMES it takes five tries... but quite often it picks up in under five seconds total, which is just peachy. We cannot determine what the difference is, on the peachy-superb call-setup incidents, versus the sour-note-takes-thirty-seconds incidents. Networks the same, devices the same, often the same day, no obvious changes to signalapp nor to the handsets/OSes. It is a critical bug though, for most people that are impacted by it.

erik55 commented 5 years ago

Just wanted to tell, that the bug disappeared on my phones. I am using several phones, and all the calls in either direction work now: Samsung S5 mini, Samsung S7, Samsung S9, iPhone SE.

Unfortunately I don’t know, when the bug disappeared.