Nextcloud Talk Android: no push notifications

That’s not an issue with turn. Push Notifications are either polling of the client app or pushing via Google. In either case TURN and STUN has nothing to do with it.

If it’s not a bug it’s probably an issue with Android battery saving nodes which got quite aggressive an current version and which were quite aggressive with some vendors before.

1 Like

Jep coTURN is DTLS-capable for UDP. However every port that you configure with coTURN, otherwise the defaults, can be used with plain-UDP, plain-TCP, TLS over TCP and DTLS over UDP, so their naming listening-port and tls-listening-port actually have no meaning.
Its up to the client, which protocol to use on any of the four ports, and coTURN can only deny a certain protocol completely, e.g. no-udp disables plain-UDP on all ports (while DTLS over UDP is still allowed).

However indeed it does not make any relevant security difference:

  • WebRTC is encrypted anyway end-to-end, which also means that the TURN server or Nextcloud cannot “read” anything.
  • Having the TURN connection encrypted as well, would be just a second layer, producing unnecessary overhead.
  • Only use case (why TURN encryption exist) is that some strict firewalls might not allow unencrypted traffic at all, which means that the enveloping signalling layer must be encrypted as well.

@MichaIng sorry for keeping silence. my turn server is located at the same server with nextcloud. It’s NOT behind NAT (I’m using a hosting provider).

Actually, I was able to receive messages (but also without notifications from my browser to my phone and backwards. Also no notifications about audio\video calls.

I also tried nextcloud setup without docker, just on simple Vbox VM bridged to my LAN.

Users are receiving messages but no push notifications. I’ll try to switch to debug mode as soon I get back to work.

Video calls work, right? So when two users are within the same Talk conversation, they can accept each other calls (hitting the user name) and see each other? Notifications indeed have nothing to do with WebRTC or TURN, however it is just a check that some other layer of network functions, besides bare HTTP(S) access.

Indeed if the notifications are handled or not is also case of the client, so try different clients and browsers in both directions. I once and a while get some Nextcloud log entry about a failed push notification, although they generally arrive. However a more verbose log level might give a hint.

just to share my experience: i’ve just checked and i have the same issue. basically, talk-participants have to make appointments when they want to use talk. when it is started, everything (calls, video, chat, desktop) works.
turnserver works also.

i’ve tested the following scenarios:

user-1 android-9-program (“app”) to browser, chat to user-2 not logged in: user-2 gets notification bell upon login into browser, can chat if user-1 still has prog open.

user-2 browser to user-1 android-9-program (running in fg, but no communication to user-1 currently running): nothing happens until user-1 manually forces screen-refresh. then chat is displayed. if user-1 joins chat, it works well and fast.

user-2 browser to user-1 android-9-program (not running): nothing happens at all.
of course, this is expected.

user-1 android-9-program to user-2 android-9-program, both running in fg: everthing works.

i’ve checked in different networks (nat, proxy etc.) and all devices have no google-services at all installed.

for me this is an issue with a near-zero priority which does not really need fixing since for realtime communication i use xmpp (and, also, in my opinion the addition of spreed/talk to nextcloud seems a little premature.)
cheers, pd

Exactly the same here (although I use Google Services).
I have to open the Talk app to actually see the new messages arrive. (Samsung S7, Talk excluded from Power Saving, Data saving off).

Hi, did you find a solution ? I’m facing the seem issue :frowning:

I dont really know if it’s exactly the same error but put it anyway.
This morning I had this error:
“I needed to change the loglevel configuration to 0 'Debug” to see it".

Info notifications GuzzleHttp\Exception\ClientException: Client error: POST [https://push-notifications.nextcloud.com/notifications](https://push-notifications.nextcloud.com/notifications) resulted in a 400 Bad Request response:

Then I followed the discussions on that topics here:

So I did what they told me to do;

  1. Uninstall apps on mobiles
  2. Deleting data from nextcloud database:
  • DELETE FROM oc_notifications;
  • DELETE FROM oc_notifications_pushtokens;
  1. Reinstall apps
  2. And disable batterie optimisation for Androïd.

And all work again.

Tried that on NC 18 without success, videochat & screensharing work fine. NC 18 was announced with support for text chat notifications, any other suggestions what might be the problem (upgraded manually from NC17)???

Well, I know Google changed the permissions of apps to use third part notifications servers, to be able to receive notifications outside Google services you app needs to have a permanent menu on the Android Task, so Android let the app communicate with the server and not pause it. This information is mentioned also when you use the App Telegram, they also state that to Telegram notifications work correctly they had to make a persistent Telegram Icon on the Android Status Bar so Android would it let permanent connect to the Telegram Notification server, this changes were made after Android 9 Pie, useless to say that Google did this to protect their Monopoly…!

I’ve had the same issue for a while, even before updating to NC 18. I’m hosting NC on Debian 10 with Apache. Nextcloud was installed and has been updated manually using the tarball without issue; NC itself works fine and receives an A+ rating from the security scan. Push notifications used to work on this exact same machine, but one day when I got a new phone and installed Talk, when I logged in I saw a very quick message that said “Push Notifications Disabled”, even though I have the permissions for the app turned on in Android. This also seems to suppress my audio ringtones when receiving incoming calls. Audio and video both work fine once I’m in a call, and if I have Talk open when I receive a call, the app shows the appropriate screen to accept/reject the call and whatnot, but there’s no audible ringing, and no notifications about calls or instant messages in the Android app. Notifications for these events appear on the Nextcloud site, and in the Nextcloud desktop app just fine. I have to be actively in the app and looking at it to know if anything new happens.

Both Nextcloud and the Talk app are the latest stable versions.

Edit: Also, I saw this comment in another post, and have verified that all of my permissions are correct.

Just wanted to update that the day after I posted this there was an update for “Google Play Services” on my phone, and notifications started working again for Nextcloud Talk after that update. My wife’s phone on the other hand is a different model running an older version of Android, and notifications are still broken for her.

Do you mean @CVZalez something’s got to be done at the code level of android Talk to get notifications working when Google stuffs are off?
And that’s what’s been done at the Telegram app level by their devs?

This morning, notifications for some of my Nextcloud users and for me didn’t work.

I checked on logs, but nothing appeared.

So to check the problem I uninstalled mine and reinstalled it (v8.0.3).

I couldn’t login without putting the https port at the end of the domaine’s server. But even when I was in, the loading was nerver ending.

I uninstalled it again, and I installed a previous version (8.0.1).

Now I could get in easily and push notifications worked again like a charm.

You should always install the last available version to prevent possible problems which have already been solved. So my recommendation is to give Talk v8.0.4 a try :wink:

I meant on android app

What is essential to me, is that notifications works on mobiles.
The latest version 8.0.3 is about call notifications on watchs and on Android Q, but not seems to work on my samsung j6.
As soon as I installed the 8.0.2 version, all worked again and even faster than before without disable Batteries optimisations.

In my opinion NC Talk 8.0.3 is not better in daily practice as the 8.0.1 before.

I must send users a Text message shortly before i want to make a call.
That text message seems to wake up the device of the called person reliable.
Seconds after sending this text message starting a call (voice or video) delivers a nearly 98% reliable notification at the receivers side.

If i call directly minutes or hours after the last contact it is nearly 98% sure that the device wil not notify the receiver of a call.

This behaviour is since upgrade to the Android Q Junk of Google.

Never the less NC Talk has been my favorite app to make voice and video calls.

Would be very happy if one day the behaviour of nc talk like under android pie comes back again.

Haven’t tested the 8.0.4 so far because it isn’t available over google play store yet.

Just for the records - same problem here with Nextcloud Talk 8.0.10 on Android and Nextcloud 19.0.4 with signaling server. Nextcloud Talk works completely fine - but I never get any notification if someone sends a chat message in a conversion where I am also member. I also don’t get notified if anyone adds me to a conversion and starts a audio/video call.

Just figured that when you turn on ‘allow peeking’ under App notifications in Android you only get the notification in your screen but no ringtone when someone tries to call you via Talk. Perhaps that solves the issue for some.

Sorry for bumping this old topic, but I think I know the solution to the problem (not the source). For the record I use Nextcloud with nginx that has another nginx proxy server, so in topology it looks like that:
nginx (DMZ) → nginx (nextcloud@php-fpm)
^ and those are two separate machines

When I just updated the instance of Nextcloud Hub then notifications started to work, but when the SSL certificate on nginx (DMZ) expired then I lost my notifications. So I updated the certificate, restarted nginx (DMZ) and I still had no notifications. But when I restarted the php-fpm service on the second machine then notifications came back.
I don’t know, but maybe there is a slight correlation of SSL session, the php-fpm service and the android app and one should keep in mind that when one restarted reverse proxy then also php-fpm service should be restarted as well…?