signalapp / Signal-Android

A private messenger for Android.
https://signal.org
GNU Affero General Public License v3.0
25.32k stars 6.08k 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.

jknockaert commented 4 years ago

This is a pretty persistant issue. Have been trying a little bit everything (like disabling battery optimization for Signal), but I couldn't make incoming calls working reliably. Am running Signal on a Motorola with fully updated Android One, so on that side it's as stock as it gets.

DemiMarie commented 4 years ago

@moxie0 I strongly suspect the problem is with Signal’s TURN servers. Can you confirm?

Signal needs to ensure that its TURN servers can handle the load even if every call uses them.

donfn commented 4 years ago

@ioogithub @DemiMarie @szakib @quantizzed I checked the issue mentioned above and setting my phone's time to "Automatic" solved the issue for good! The problem for me was indeed very stupid, though I think signal should independently keep its own time to avoid such sync issues (especially if incoming calls depend on it!) ... I don't know though if this is practically feasible or at all possible.

At least, please make the app check on start-up whether the device's time has a high margin of error when compared to a NTP server and warn users to check their time settings.

Thanks.

quantizzed commented 4 years ago

@donfn

I checked the issue mentioned above and setting my phone's time to "Automatic" solved the issue for good!

I'm not sure the issue is caused exclusively by time synchronization problem. My phone's clock is set to synchronize with network time by default, yet the problem persists.

But even if it is a time synchronization problem, how am I supposed to control other peoples' phones? And why are other messaging platforms not affected?

iexos commented 4 years ago

But even if it is a time synchronization problem, how am I supposed to control other peoples' phones?

You can select a message, and see the details with (i). Then compare their sent timestamp to your received timestamp. This is how I found about a 3 min difference, because they didn't synchronize their time. Explain the problem, and that they have to synchronize their time. Make sure the their messages are sent from the device you are trying to call with, and not from another linked device.

That said, of course it should not happen like this, its far from the "easy" usability Signal is trying to achieve.

mfn commented 4 years ago

That fixed it for me too. Had a friends phone who complained about this, all incoming calls (voice, video) immediately appeared as "you missed a call" or so.

Turns out his time was not synced and off by 2 minutes in the future. Went to settings, synced time, issue fixed.

Of course no one knows why this wasn't enabled 😄

szotsaki commented 4 years ago

Since this bug report is specifically about the non time-sync issue, I have created a new 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 https://github.com/signalapp/Signal-Android/issues/9633. Thank you.

Gorkde commented 4 years ago

We had the same problem. Reason was the person on the receiving end had set the time on her Phone 5 minutes before the actual time.

codethief commented 4 years ago

@Gorkde: As @szotsaki mentioned right in the comment above yours, the present bug is not about the time synchronization issue. For that one please refer to #9633.

Champion0081 commented 4 years ago

@greyson-signal @alan-signal @moxie-signal can devs have a look at possible cause pointed here? https://github.com/signalapp/Signal-Android/issues/7733#issuecomment-574279071

joe564338 commented 4 years ago

I have this same issue. Times between me and the other person are synchronized. I don't know how to fix here is debug log: https://debuglogs.org/7f169d0b20d25ab9e1b58482cf950f7a25deafb8685bc8a1d518e70f3a2406b8 The issue only started happening last weekend on June 6th. I have no idea what changed to cause this.

joe564338 commented 4 years ago

Here's my contact's debug log https://debuglogs.org/4d45f370921f9a354f4adf79591b003a820a61589fad82993657895f98cc7137.zip

morphine00 commented 4 years ago

Possibly related (Android), I had a missed Signal call from some half an hour ago, but just got a new notification about that very same call, and when I tapped the contact in the app, it showed two missed calls, marked as "now."

loxK commented 4 years ago

Same issue. It happens randomly, when both phones are connected on a fast network, with sound enabled, do not disturb disabled. I double check with the Troubleshooting page

When calling the client should have two different ringing feedback in the earpiece: one when trying to make the other phone ring, one when the other phone actually rings.

secbug commented 4 years ago

Having this issue with my bosses phone and mine right now. Can communicate to literally anyone else on the app, and same with him to others, but calls seem to be entirely missed. Like today, I received no notification and there was no call missed receipt left but yet my boss says it couldn't get through.

trochdewei commented 3 years ago

I faced similar problem. Signal calls almost unusable. I granted app all permissions, check everything - no luck. No one can call me. On my phone i have crDroid 6.9 firmware based on Android 10

ghost commented 3 years ago

@greyson-signal I am still experiencing this issue that I reported awhile ago (#10058) and also here. This has been going on for at least half a year. Incoming Signal calls used to work fine for me, but now when I am receiving incoming calls, I can hear the call ringing, but no notification box and the phone screen does not change to enable me to answer the call. If I open Signal, open a message and select the call icon only then does the incoming call screen appear and allow me to answer the call. This issue is reproduceable for me and happens with every incoming call, whether on wifi or network.

Device info

Device: OnePlus 7 OS: Oxygen OS 10.3.4.GM21AA Signal version: 4.75.4

Closed related ticket #10058 Related to #8302

gab81 commented 3 years ago

hello, i have the same problem https://github.com/signalapp/Signal-Android/issues/10281 and our 2 phones that call each other have the very same time setting (although i think using this to make it work is a bit crazy), so that does not work.

cawauk commented 3 years ago

Same problem here, experiencing for the last few months. Huawei Mate 20 pro. Latest version of signal (today's), Android 10.1

For some reason it always happens at night when my partner calls between 9pm and midnight, at which point my DND switches on. I don't think AI is that advanced (yet) to not ring my phone...

However, this issue never happens during the day (that I can remember) and as I tend to use my phone less often in the evenings, wondering if signal is having trouble waking my phone from deep sleep (even though all options are on in Android for signal to run in the background)?

gab81 commented 3 years ago

Same problem here, experiencing for the last few months. Huawei Mate 20 pro. Latest version of signal (today's), Android 10.1

For some reason it always happens at night when my partner calls between 9pm and midnight, at which point my DND switches on. I don't think AI is that advanced (yet) to not ring my phone...

However, this issue never happens during the day (that I can remember) and as I tend to use my phone less often in the evenings, wondering if signal is having trouble waking my phone from deep sleep (even though all options are on in Android for signal to run in the background)?

interesting, yeah it's something happening across the board.... i also noticed that Signal doesn't send the edge light notifications (those lights on the edges of Samsungs) when the phone screen is off for messages only.... so with messages he cannot wake up the phone from deep sleep. i used a 3rd party app and works now. Strangely enough with phone calls, he wakes up the phone and shows the fancy lights....

So i think they need to up some permissions. Similar to what you experienced that if the phone is in deep sleep probably in the evenings, you don't get the calls. I tested with yesterday's update to 5.xxx and so far didn't lose any calls but didn't call much 👍

haffenloher commented 3 years ago

@cawauk

For some reason it always happens at night when my partner calls between 9pm and midnight, at which point my DND switches on. [...] However, this issue never happens during the day

Sorry if I'm being dumb, but does this mean that for you, Signal calls ring when DND is off and they don't ring when DND is on? That sounds like the expected behavior. Unless your partner is a starred contact for whom DND should be ignored, but that would be a separate issue.

cawauk commented 3 years ago

@cawauk

For some reason it always happens at night when my partner calls between 9pm and midnight, at which point my DND switches on. [...] However, this issue never happens during the day

Sorry if I'm being dumb, but does this mean that for you, Signal calls ring when DND is off and they don't ring when DND is on? That sounds like the expected behavior. Unless your partner is a starred contact for whom DND should be ignored, but that would be a separate issue.

Sorry, didn't explain that well. DND starts at midnight, partner calls before midnight. Usually 11pm. Never rings. But when she calls at 9am, it always always rings.

jknockaert commented 3 years ago

Signal calls ring when DND is off and they don't ring when DND is on? That sounds like the expected behavior. Unless your partner is a starred contact for whom DND should be ignored, but that would be a separate issue.

I'm not sure this is to be expected behaviour. With DND on you can tweak android settings such that regular phone calls still ring (regardless of a contact being starred or not). But Signal wouldn't respect these settings. Incoming Signal calls seem to follow the settings for notifications rather than phonecalls. So if DND mutes notifications incoming Signal calls don't ring.

major-mayer commented 3 years ago

Same problem here, calling itself is working just fine, but calls are not ringing, neither on my phone nor on two other phones that I tried. Our clocks are definitely synced, so that's not the problem here. The problem itself happens reproducible on LTE and on our WIFI. We have an IPV4 connection at home and IIRC the providers here in Germany are using IPV4 too, if that's relevant.

I don't know if the debug logs help, but I will link to them anyway here: https://debuglogs.org/3759d2673c14913f32a2ad3c50369be10d718cff45b1e860954b2a0f78aa15e3

I was called at January 13. at about 23:00. The app did not ring until I directly opened it, which is obviously not optimal.

I am really becoming a great fan of Signal but it's a shame that this issue is open for such a long time. How should I recommend a new messenger app to my friends, if the calls are not even ringing...? WhatsApp is getting this done too, so can't be impossible

StephaneAdeso commented 3 years ago

same problem. my friend sitting 2 meters from me. we both have full phone signal and all permissions given to signal app. He is calling me and my phone is not even ringing. i tried to make a vide call to him, and the same. His phone not even ringing. I then tried to call my brother and its not ringing y my brothers phone too. Me and my friend have android phones. My brother iphone. This app is really unstable when it comes about voice calls and videocalls. This feature should work till minute one without the need of any configuration. we all got a "lost voice call" message after the video call failed. same issue for both video calls and normal calls

erik55 commented 3 years ago

I think in this case it is due to the current extreme increase in new users of Signal. See https://mobile.twitter.com/signalapp/status/1350118809860886528

gab81 commented 3 years ago

no it is not, i mean, the capacity of course, but this is an issue i am reporting since 2 months now :( constantly happening between my phone and my wife's ,having to call twice etc etc.

It looked like a problem between the "clocks" of the phones that if they dont have same identical time alignment it fails, i think, but it's not consistent.

All in all, i love Signal but i'd hope they can fix for good the calling and video calling, which all the other apps get right, i mean, never had this issue with whatsapp or telegram. bit disappointing but i know they have vounteers, etc etc... but i mean if you cannot ensure the very basic functionality works well?

ask some donations to Elon M! after all he's responsible for the flood of users, i am sure he can shell out 500k, just sell 10 Teslas :)

MoctezumaDev commented 3 years ago

Same here, signal doesn't ring... also calling from Germany

manescul commented 3 years ago

Same here, over wifi, all looks good, voice calls not getting trough, I can only see incoming notification, no sound or vibration, the other phone is not reachable at all. May be because new users, may not. Here's my log: https://debuglogs.org/e4bbc4c2a04732d06f24770858359440faf016b700ad85ff207a6ddebdb0ec35

DemiMarie commented 3 years ago

Is a lack of TURN servers the problem? @moxie-signal I wonder if the unifying factor in the failed cases is that Signal is unable to establish a peer-to-peer connection. A lack of TURN servers might then show this behavior.

raindropsfromsky commented 3 years ago

Nowadays I miss most of the incoming calls, but then I always get the "missed call" notification after the call.

I face the "missed call" problem regardless of how BOTH phones are connected: WiFi or GSM (4G). I tried this with several friends across city, who are connected to different GSM operators. Both sides have the same issue.

FanIT commented 3 years ago

Same problem. I have two a devices with Android. A phone Android 9 and a tablet Android 8.1. I tried to call through wifi and lte.

  1. Both connect to wifi. Calling from device to device. No ringing.
  2. One device connect to wifi, another to lte. No ringing.

During a calling, a notification about a missed call comes.

K-g-R commented 3 years ago

For me problem with missed calls is solved by correcting system clock. When I check time at https://time.is I found out that my clock is off for 1,5 seconds. Apparently it was enough for Signal to be doing "missed call". I manually correct phone clock to the point, when time was out of sync only for 0,2 seconds. Before that I believe my cellular carrier provides my phone with incorrect time. At the same time I did not have any problems with calling from/to iPads without cellular module.

jknockaert commented 3 years ago

@K-g-R That's a good find. I noticed my phone was off by 0,8s. After disabling network time and reenabling there seems to be some syncing done; now my phone is off by 0,3s. There do not seem to be any settings that allow you to control the syncing parameters (or to switch away from cellular clocks to an ntp server). Anyone any idea as to what the tolerance is for Signal with respect to time sync?

gab81 commented 3 years ago

hi guys

cmon, i have heard this story about the clock syncronization many times and i have tested it on our android s8s and does NOT work here, they are both set on auto time yet i still have the same issue.

i call my wife's phone in the morning, so no call has been made up to that point in time that day and i get network failed, after a few rings, or network failed! right away,then i have to call again and her phone rings. few times i thought hey why didnt you pick up :) but i have seen in front of me with both phones that hers does not ring first time, or even second and third sometimes.

Also do you think the average dad or uncle can do the phone time syncronization? that will never happen, it's ok for testing if that is the issue and they need to do some workaround.

I am seriously considering using signal only for messages and using telegram for voice calls since this situation is really unacceptable. I mean how can telegram and whatsapp do around this problem ? if the phone clock is the issue? can't they ask their developers or copy the code bit or something?

I have reported this so many times to support@signal.org and i can imagine they will have only more complaints moving forward with the new flux of users they just got after Elon's tweet.

What i can suggest guys is click on help from the app and submit a report there, tick attach logs and submit every time you see the issue maybe they will fix it or hire a better developer at some point. We are also donating to the app now, hopefully they can afford better infrastructure too.

I really want to use it but it's not possible not having voice calls not working in 2021. And the sad part is that the quality is perfect, also video calls.

Oh another minor thing i am annoyed is that if you dont have super strong connection then it will not even connect, whereas whatsapp and telegram connect, even if it's a choppy connection or bad video, so it means we cannot rely on Signal on situations when one is on poor connectivity for example in the forest etc.

These days with more people going off grid and out of the cities, it's also very important, with the crap happening in the cities. I dont want to be near a bloody 5G and having my balls fried :-)

gab81 commented 3 years ago

@K-g-R That's a good find. I noticed my phone was off by 0,8s. After disabling network time and reenabling there seems to be some syncing done; now my phone is off by 0,3s. There do not seem to be any settings that allow you to control the syncing parameters (or to switch away from cellular clocks to an ntp server). Anyone any idea as to what the tolerance is for Signal with respect to time sync?

as i just said that is not a viable solution for normal users, they need to get it together like whatsapp and telegram deal with this situation, which i am sure they had to in one way or another.

gab81 commented 3 years ago

imagine you are out in the field and need to make an important call, no time..... use signal, the other end you get network failed! you had a little battery and no time to sync the clocks...what you do? you cannot call for help, etc.. .ok edge case but you see my point?

gab81 commented 3 years ago

just to add to context here are my phone time clocks from the website time.is

phone 1

0.029 seconds

phone 2

0.028 seconds

this is when you load the website, however if you leave that running for a minute or so, the time delay expands, i wonder if this affects. if you reload the site again, then the time difference is again very small.

as i am writing this, without reloading the website, i can see the delay is growing. like a good solid second,

so is it what happens that if you call first time and get network failed! that's when the clock is out by say 1 second, yet when you call again, it has been pinged so it can hook correctly next time?

K-g-R commented 3 years ago

imagine you are out in the field and need to make an important call, no time..... use signal, the other end you get network failed! you had a little battery and no time to sync the clocks...what you do? you cannot call for help, etc.. .ok edge case but you see my point?

I agree, that's why I'm almost not using Signal, so I making calls with Wire. Android not allow to use NTP servers for correcting system clock. Only cellular carriers is able to do it automatically, but they sucks at it. I belive there is no solution for Android. There is only for Signal and/or cellular carriers to resolve this issue.

gab81 commented 3 years ago

imagine you are out in the field and need to make an important call, no time..... use signal, the other end you get network failed! you had a little battery and no time to sync the clocks...what you do? you cannot call for help, etc.. .ok edge case but you see my point?

I agree, that's why I'm almost not using Signal, so I making calls with Wire. Android not allow to use NTP servers for correcting system clock. Only cellular carriers is able to do it automatically, but they sucks at it. I belive there is no solution for Android. There is only for Signal and/or cellular carriers to resolve this issue.

but seriously, how do whatsapp and telegram do it then?

jknockaert commented 3 years ago

@gab81 the time sync is needed for entd-to-end encryption as far as I know. I'm not sure how WhatsApp encrypts calls. They may use a different algorithm. They may use different parameters. They may not be encrypted end-to-end as it is the case in Signal.

mcpeixoto commented 3 years ago

Hey I'm having this exact same issue on android, want to migrate from whatsapp to signal. Is there any way to fix this issue?

gab81 commented 3 years ago

For now i only see this:

Call one time, put down. Then call back again immediately, that works 99% of the time.

And report to the devs everytime you sre stuck


Sent from Android

On Sun, 17 Jan 2021, 13:08 Playground, notifications@github.com wrote:

Hey I'm having this exact same issue on android, want to migrate from whatsapp to signal. Is there any way to fix this issue?

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/signalapp/Signal-Android/issues/7733#issuecomment-761801653, or unsubscribe https://github.com/notifications/unsubscribe-auth/AM75AF4NP4AU24SNH2NWAN3S2LHMRANCNFSM4E4N37RQ .

StephaneAdeso commented 3 years ago

I think developers need to redesign the way calls and video calls work so that they work right out of the box without having to configure anything or need to be an engineer to figure it out. If I tell my parents that they must resynchronize the phone clock for the calls to work, they will send me to hell and uninstall the application. Personally, I think that Signal has been presented with an unrepeatable opportunity and if they do not take advantage of it soon by solving this type of malfunction, they will lose a lot of public. Amazing this issue is open since 2018

gab81 commented 3 years ago

Totally agree 100%


Sent from Android

On Sun, 17 Jan 2021, 13:39 Stephane, notifications@github.com wrote:

I think developers need to redesign the way calls and video calls work so that they work right out of the box without having to configure anything or need to be an engineer to figure it out. If I tell my parents that they must resynchronize the phone clock for the calls to work, they will send me to hell and uninstall the application. Personally, I think that Signal has been presented with an unrepeatable opportunity and if they do not take advantage of it soon by solving this type of malfunction, they will lose a lot of public.

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/signalapp/Signal-Android/issues/7733#issuecomment-761805817, or unsubscribe https://github.com/notifications/unsubscribe-auth/AM75AF2QJLMO5HQUSXSYF23S2LLBHANCNFSM4E4N37RQ .

halorium commented 3 years ago

Same problem. I've donated to Signal. Please fix this.

strugee commented 3 years ago

@gab81 it's probably a bad idea to use time.is to measure clock drift because (at least AFAIK) JavaScript does not have high-precision timing APIs or the kind of network APIs you'd need to make a website like that work well - I wouldn't really trust the results. If you refreshed the page and the drift went down, then you're clearly seeing JavaScript drift, not actual system clock drift. (Someone please correct me if I'm wrong though!)

gab81 commented 3 years ago

Ohhhh interesting!! Well someone heee earlier suggested using that site for ref... lets hopw they fix this.

For now i will do manual fix: ring once put down, call again. It works usually


Sent from Android

On Sun, 17 Jan 2021, 19:02 AJ Jordan, notifications@github.com wrote:

@gab81 https://github.com/gab81 it's probably a bad idea to use time.is to measure clock drift because (at least AFAIK) JavaScript does not have high-precision timing APIs or the kind of network APIs you'd need to make a website like that work well - I wouldn't really trust the results. If you refreshed the page and the drift went down, then you're clearly seeing JavaScript drift, not actual system clock drift. (Someone please correct me if I'm wrong though!)

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/signalapp/Signal-Android/issues/7733#issuecomment-761853457, or unsubscribe https://github.com/notifications/unsubscribe-auth/AM75AF534N6RWCX74PZCMXLS2MQ4NANCNFSM4E4N37RQ .

DemiMarie commented 3 years ago

Suggestion: do what Kerberos does, and implement time syncing into the protocol itself.

raindropsfromsky commented 3 years ago

For now i will do manual fix: ring once put down, call again. It works usually

Well, this fits with my own experience: After failing to connect, I used to call the other party on WhatsApp or GSM, and tell them that I would be calling them again. This took a few seconds at most. After that, I used to call the same party on Signal. This time my call went through. (But then I ran into another bug, where the "Accept" and "Reject" buttons on the screen are unresponsive.)

After reading this workaround, I tried it. Sure enough, the second call goes through.

So the following method works indeed:

  1. make a dummy call to the same party, and let it ring at least once.
  2. Cut the line (the other party does not receive a ring at all)
  3. Call the same party again. This time the called party gets the ring.