Can't make calls between two Android smart phones. One has SIM card (PH1) and another (PH2) doesn't.
Call frfom PH1 (with SIM) to PH2 (without SIM), scenario 1::
Call frfom PH1 to PH2, scenario 2::
Call from PH2 to PH1 doesn't work at all :
Actual result:
Making call from PH1 to PH2 in both scenarios doesn't work. In second scenario PH2 has to reboot to get rid of notification message ""Incoming Signal call". Call from PH2 to PH1 not possible at all too..
Expected result:
Call is accepted and proceed in both directions.
PH1: Device:* _Samsung Note II
*_Android version: 4.4.2
Signal version: 3.15.2
PH2: Device:* _Samsung InFuse
*_Android version: 2.3.6
Signal version: 3.15.2
First of all, please provide debug logs for both phones in scenario 2 (or both scenarios), if you can. I'd like to see what happens when the blank screen appears on PH2.
Second, this sounds more like a (partially) broken registration, since PH2 does not seem to know that PH1 is on Signal. Does the call icon on PH2 contain a lock? You can try to refresh the contact lists and/or re-register PH1.
Also, did you contact [email protected]? I regularly use a phone without a SIM and that is not a problem.
@cascheberg, thank you for your attention.
I've attached logs collected from both phones in PH1 -> PH2, scenario 2:
Bug5421-SN-Out.txt -- PH1
Bug5421-IF-In.txt -- PH2
In PH1 I see message: "RECIPIENT_UNAVAILABLE". At that time PH2 was waiting for incoming call with opened Signal app...
And here is screen shot of blank screen, that I can see on PH2. Phone reboot is required to get rid of notification line leading to it.

this sounds more like a (partially) broken registration, since PH2 does not seem to know that PH1 is on Signal. Does the call icon on PH2 contain a lock?
I successfully sent couple of secured messages (lock is there) back and force between these phones before making test calls. So, they know each other well and can communicate via those test messages.
Additional note: PH1 was able to make a call to another phone (let say PH3, with SIM). But I was unable to make call to remote phone PH4 (without SIM) under the very similar circumstances (scenario 2). And that's why I'm trying to test that scenario locally, using second test phone (PH2)..
In the log of PH2 there is really nothing Signal-related. Can you try to grab another log? I guess that killing Signal will be necessary to do that, but don't restart the phone before you submit the log.
Also, does the call icon on PH2 contain a lock? I'm asking because you were saying that the standard phone dialer appears, which should not happen for Signal calls. Being able to send secured messages is not relevant in this case.
In the log of PH2 there is really nothing Signal-related.
You mean RedPhone related? I'm sorry, but I don't see it either... From my experience, putting timestamps into debugging logs significantly increases usefulness of those logs for troubleshooting processes. Especially if there are two devices communicating with each others... When troubleshooting telecommunication problems simple time stamps (even without date) is enough in most cases. You'd see that two logs provided earlier were collected at the same time.
Can you try to grab another log? I guess that killing Signal will be necessary to do that, but don't restart the phone before you submit the log.
Sure. When I'm collecting logs on PH2, I always do followed:
Here is the 2 logs collected in the similar scenario form PH2 (followed procedure above):
Bug5421-IF-In2.txt
Bug5421-IF-In3.txt
Also, does the call icon on PH2 contain a lock? I'm asking because you were saying that the standard phone dialer appears, which should not happen for Signal calls. Being able to send secured messages is not relevant in this case.
The answer is - yes. There is lock in the call icon. Here is the picture, collected from phone PH2:

Additional notes:
How do you save the log? Both of the provided logs seem cut off at the end, they end in the middle of a log statement. Signal can create and upload the log to a GitHub gist, so usually you can just post the provided link here.
I have no idea why clicking the secured call icon would show the standard dialer.
The issues with wrong timestamps on missed call notifications is tracked at #4197.
Oh, it's simple. I tap on "Submit debug log". Then, in opened log window, I long tap on the log and tap on "Select all". Then I copy and paste it into a text editor... I have no idea why part of log could be missed in such case. Should I wait for Signal to purge its full log? Or there is a way to purge it into log window manually?
Thank you for the link on wrong timestamps issue. I can see more than 5 min difference. If I missed a call at night, the difference could easily be 12 hours. This functionality requires a fix.
I have no idea if it changes anything, but you could try to just tap the "Submit" button and paste the link instead. That is really all I can say about this absolutely weird issue.
As a matter of a principle, I don't submit / publish anything without perusing it first. Sorry...
Having full control over how potentially personal data is be published on the Internet - isn't that the reason we want to use Signal too? :)
@cascheberg, I'd be glad to help troubleshoot the issue. Jut let me know what and how to do it...
@gh88 That principle is just making it harder for us to help you. If you tap the Submit button it will publish the same content that you see on your screen and which you have already manually copy-pasted here before. Except when you do it manually your clipboard buffer might truncate the content.
https://github.com/WhisperSystems/Signal-Android/wiki/Submitting-useful-bug-reports#debug-log-privacy
Is there any way for me to dump log file locally?
I need to see what I'm sending before I publish it.
@gh88 you can see it on the screen before clicking "submit". Another option would be to copy & paste it in segements. But you can be sure that there are no message contents in the log. Phone numbers are anonymized as well...
@agrajaghh thank you for the idea to check clipboard. Now, clipboard is not the problem here. The Signal app is.
I made several test calls and I suspect in its "Submit debug log" window Signal doesn't show the whole log. The data is always truncated there. So, the resulting log file has size around 8.79KiB (see my logs published here). That explains why I couldn't find out the problem with failing to make calls to my friend and asking them to send me their log to troubleshoot. In most cases there was nothing in those logs... Log doesn't have any timestamps and, moreover, they're truncated... :(
BTW, to rule out Clipboard limitations I specifically tested clipboard on that old device and it can handle more than 100KiB of text data.
Signal should allow users to dump its log into a local file - to help them to troubleshoot potential problems locally (there is no need to open a ticket and request a support here with every problem found).. I'm glad that Signal obfuscates phone numbers, but I have to make sure that what I publish (via "Submit" facility) doesn't contain other personal data (IP addresses, text messages, contacts, etc.) And the only reasonable way to do that is to show me in plain text what I'm going to submit fore before I tap on that button,
btw, the submit button is just creating a secret and anonymous gist which isn't published somewhere else. You could still check that link before posting it here
I continue making text calls from PH1 to PH2. Is there any way to at least get rid of empty page (see picture in my second post above) without rebooting my phone? Is that the bug with UI (and not related to signalling process of accepting incoming calls)?
All incoming calls create in PH2 records like "Missed call from ..." (all with wrong timestamps, telling when I opened Signal app). Is there a way to remove them from the long list of messages now? Long press on each line brings nothing... I can remove text messages though. Is it supposed to work this way?
You can try "Force Stop" in the Android app settings for Signal, instead of reboot.
And since Signal debug log does not seem to work, you could connect your phone to a computer and run adb. There is a very short wiki page paragraph: https://github.com/WhisperSystems/Signal-Android/wiki/Submitting-useful-bug-reports#debug-logs-with-adb. But you can find more information on the internet, or ask in the community forum.
Deleting call log entries is tracked at #4190.
@cascheberg, thank you for suggestion to "Force Stop" Signal. It worked.
I've collected new log with "adb logcat":
Bug5421-IF-In4.txt
Thank you for referring to the opened issue about deleting log entries. I've left my comment there.
There is something in the log, but some log statements are missing. Can you do that again, but remove the logcat filter? Thanks for your effort!
Actually at that time I did not use any filters at all. And as you see the log contained messages from other apps running, which were messing up the log... Now, to help to resolve the issue I've installed Android app, called CatLog. With that app I can collect log from Signal app directly on the phone. And it may filter messages coming form Signal app only. Below are another 2 logs, now collected with the help of CatLog. It used Signal's PID as filter criteria (if you know any other suggestion for the filter to use while collecting log from Signal, please let me know):
Bug5421-IF-In5.txt
Bug5421-IF-In6.txt
If you mean that you need (missed) messages collected before I make the test - let me know. Meantime I run test in this order: 1. Start Signal, 2. Check its PID, 3. Start CatLog log record, filtering events for that PID, 4. Make test (calling PH1 to PH2 and waiting till it ends), 5 Stop CatLog logging and save current log file.
There doesn't seem to be anything new in those logs compared to the previous ones.
There are many open issues with call problems and I'm not sure if the logs in those are any more informative. E.g. the logs I reported in #4835 look somewhat similar to the ones here. Except that _Termination stack_ seems to be normal because it shows up even when successful calls are disconnected.
@2-4601 From your logs I've found a hint for developers why I have to use "Force Stop" to remove notification and empty Signal dialog (see my second post above for picure). Your log has line like:
W/RedPhoneService( 4982): termination stack
while in mine logs it's missing. It means in my phone the RedPhoneService is left running at the time it should be terminated...
OK, I can actually reproduce this behaviour if I make changes to the code, which to me indicates that there is a bug in your ROM of PH2. So I think the problem is this (for whatever reason):
ResponderCallManager is wait()ing in synchronized waitForAnswer()RedPhoneService calls synchronized ResponderCallManager.answer(true) through onIntentReceived, but never returnsResponderCallManager.waitForAnswer() also never returns, so the call will not be initiatedSignalListenerTask on PH2 will notice this and call RedPhoneService.notifyCallDisconnected(), which will hide the call screen, but it cannot call synchronized RedPhoneService.terminate() because it is still stuck in synchronized onIntentReceived since step 2Here is the implementation that I assume is failing.
One could try to work around this by using Lock (and Condition) objects in the ResponderCallManager and just see if that works @moxie0 ?
Also, there is no stopService() anywhere.
GitHub Issue Cleanup:
See #7598 for more information.
Most helpful comment
OK, I can actually reproduce this behaviour if I make changes to the code, which to me indicates that there is a bug in your ROM of PH2. So I think the problem is this (for whatever reason):
ResponderCallManageriswait()ing insynchronized waitForAnswer()RedPhoneServicecallssynchronized ResponderCallManager.answer(true)throughonIntentReceived, but never returnsResponderCallManager.waitForAnswer()also never returns, so the call will not be initiatedSignalListenerTaskon PH2 will notice this and callRedPhoneService.notifyCallDisconnected(), which will hide the call screen, but it cannot callsynchronized RedPhoneService.terminate()because it is still stuck insynchronized onIntentReceivedsince step 2Here is the implementation that I assume is failing.
One could try to work around this by using
Lock(andCondition) objects in theResponderCallManagerand just see if that works @moxie0 ?Also, there is no
stopService()anywhere.