ChatSecure / ChatSecure-iOS

ChatSecure is a free and open source encrypted chat client for iOS that supports OTR and OMEMO encryption over XMPP.
https://chatsecure.org
Other
3.13k stars 1.03k forks source link

Public servers known to provide expected Push experience #782

Open ossguy opened 7 years ago

ossguy commented 7 years ago

I've been having difficulty determining if the Push behavior I'm seeing with ChatSecure is expected, or if there is some server configuration or interaction issue on my end that is giving me problems that other users don't encounter (see #773 and #780 for details). As a result, I was wondering if the ChatSecure developers might be able to provide a list of one or a few public servers that are known to offer the best Push experience possible with ChatSecure right now.

I trawled through the existing tickets on this topic and the best I could find was this:

It is possible that the server feature browser mentioned in https://github.com/ChatSecure/ChatSecure-iOS/issues/637#issuecomment-279237556 (now implemented per #684) could be extended to determine if Push will work correctly, but it seems that a green check in the Push box doesn't necessarily mean Push works yet, per https://github.com/ChatSecure/ChatSecure-iOS/issues/773#issuecomment-302944210 .

Perhaps one or two of the servers on https://gultsch.de/compliance_ranked.html or https://jmp.chat/suggested_servers.html (a subset of the former) work well? Even if I were to test them myself, I don't know if the behavior I'm seeing is what the ChatSecure developers expect, so I'd appreciate if they could chime in on which of those servers is known to provide the correct Push behavior with ChatSecure.

While I appreciate that ChatSecure may wish to promote federation (which I fully support) by not recommending a particular server to use with it, I also want to make sure existing servers are working as well as they can, which is difficult without a baseline to compare against. Once I have a baseline, I can figure out (and share) the configuration changes needed to get my server up to the level of Push functionality that the ChatSecure developers expect.

mimi89999 commented 7 years ago

IIRC, CS includes a list of recommended servers.

ossguy commented 7 years ago

@mimi89999 I think you're referring to https://github.com/ChatSecure/xmpp-server-list (specifically the list in https://github.com/ChatSecure/xmpp-server-list/blob/master/servers.json ), which is included as a submodule of the ChatSecure-iOS repository.

I don't think that list is representative of which servers are known by the ChatSecure developers to work well with ChatSecure, though. As an example, Creep.im was tagged as supporting Push in https://github.com/ChatSecure/xmpp-server-list/commit/b2dac23c6bf689682f521b8e93d78027dd654352 but there are reports of Creep.im's Push not working properly well after that commit was pushed, such as https://github.com/ChatSecure/ChatSecure-iOS/issues/735#issuecomment-303485769 .

kernelguru commented 7 years ago

https://www.seccon.im works very well with chatsecure push notifications. You can try it for free :)

Echolon commented 7 years ago

seccon.im works very well with chatsecure push notifications. You can try it for free :)

Wonder if you should trust them. They don't encrypt their website....

Edit: I think you should post it like this: https://www.seccon.im/ to forward to the correct site - or?

ossguy commented 7 years ago

@kernelguru Thanks for the suggestion; I signed up yesterday and have been using my XMPP account from https://www.seccon.im/ for almost 24 hours now.

I see that my XMPP user (logged in via ChatSecure) remains offline most of the time, appearing online every 15-20 minutes for about 20-30 seconds. Is that what you see when you use that server?

kernelguru commented 7 years ago

Yes, thats a normal behaviour . The client goes only online when you receive a massage or somebody write you a massage. I suggest you to go online once a day with chatsecure client. It can happen that push messages dont work if you dont go online.

ossguy commented 7 years ago

I'm curious if what @kernelguru wrote in https://github.com/ChatSecure/ChatSecure-iOS/issues/782#issuecomment-307580822 is what @chrisballinger expects as well. Are users required to open the ChatSecure app at least once a day to ensure that Push continues to work?

kernelguru commented 7 years ago

Its not an requirement but this ensure that the push tokens are up to date . I dont know if that is a problem of the chatsecure push server...

chrisballinger commented 7 years ago

It's not a requirement to relaunch every X period, but most XMPP servers will lose their tokens on a restart because they aren't persisted and only stored in server memory. Also iOS will prevent the pushes from coming through after device reboot or force-quitting the app.

On Sat, Jun 10, 2017 at 11:46 AM, kernelguru notifications@github.com wrote:

Its not an requirement but this ensure that the push tokens are up to date . I dont know if that is a problem of the chatsecure push server...

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/ChatSecure/ChatSecure-iOS/issues/782#issuecomment-307583253, or mute the thread https://github.com/notifications/unsubscribe-auth/AAfqH-2jWfSgykpvgV6BWVAEaQkS6rlDks5sCuSPgaJpZM4NxyVs .

ossguy commented 7 years ago

@chrisballinger Thanks for clarifying that. Is the behavior I described in https://github.com/ChatSecure/ChatSecure-iOS/issues/782#issuecomment-307580464 (remaining "offline most of the time, appearing online every 15-20 minutes for about 20-30 seconds") expected?

chrisballinger commented 7 years ago

Yes, the client is offline the vast majority of the time, but will wake up for ~30 seconds to fetch incoming messages when it receives a push notification. It will also periodically wake up whenever the OS allows it, but it's non-deterministic and depends on some secret iOS battery algorithm.

On Sun, Jun 11, 2017 at 10:44 AM, Denver Gingerich <notifications@github.com

wrote:

@chrisballinger https://github.com/chrisballinger Thanks for clarifying that. Is the behavior I described in #782 (comment) https://github.com/ChatSecure/ChatSecure-iOS/issues/782#issuecomment-307580464 (remaining "offline most of the time, appearing online every 15-20 minutes for about 20-30 seconds") expected?

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/ChatSecure/ChatSecure-iOS/issues/782#issuecomment-307644910, or mute the thread https://github.com/notifications/unsubscribe-auth/AAfqH7YfJ2NQlsQcxK0ePA66Gq0zuzLVks5sDCeBgaJpZM4NxyVs .

ossguy commented 7 years ago

Thanks for confirming. It seems like this will be one of the behaviors that probably needs to be resolved before #780 (and, in particular, the MUC revisit mentioned in https://github.com/ChatSecure/ChatSecure-iOS/issues/780#issuecomment-305035634 ) is considered done.

ossguy commented 7 years ago

Note that in further testing, both my XMPP account from https://www.seccon.im/ and the XMPP account on my personal server (running Prosody with Push enabled) eventually (after a day or two) stop logging into the XMPP server at all. This means users of such servers would stop receiving all MUC message notifications unless they manually opened ChatSecure periodically.

In one case, ChatSecure had crashed (I clicked the button to send a bug report when I started it again - I don't know if that's helpful to the developers here at all), but in the other case, there was no indication of the app crashing, so there must be some other reason that ChatSecure eventually stopped logging in.

It appeared that a private message to the user (while the user was offline) did wake up ChatSecure after a few minutes (in the case where it had stopped logging in automatically itself, described above), but we can't rely on that as many users will use ChatSecure exclusively for connecting to MUCs, and they would have a very bad experience here.

@chrisballinger Is what I described above expected? If so, are there ways we can work around whatever is causing that? If not, can you point to a server where staying online works properly so that I can observe how ChatSecure is supposed to function?

chrisballinger commented 7 years ago

MUC isn't well supported at the moment, but that is next on the list after the file transfer stuff is shipped. We will be testing the interaction between push and MUC and revisiting some of the push server logic to improve reliability.

ossguy commented 7 years ago

@chrisballinger Thanks for confirming. I appreciate the work being done on this. I'll hold off on future MUC-related connection tickets until I see that some of that MUC work has been shipped.