nextcloud / talk-android

📱😀 Video & audio calls through Nextcloud on Android
Other
529 stars 234 forks source link

No notifications on a multiple server configuration, at the 2nd account configured on the Talk app #3658

Open migulen opened 6 months ago

migulen commented 6 months ago

Scenario:

Server_A and Server_B are two differents servers (VM) with a Nextcloud instance installed each. That servers share the same external public IP because they are behind an apache reverse proxy that routes every http/https connection. Each server (server_A and server_B) have different internal hostname and IP.

I don't think the problem it's in the Scenario, because at older Nextcloud Talk android app client versions the notifications worked. Not always, but normally, worked.

Steps to reproduce

Fresh intallation of android Talk app client.

1.1 - Configure account_A of server_A on Talk app.
1.2 - Send a message from other user of server_A to account_A of server_A. 1.3 -The message arrive to account_A and I receive a notification.

2.1 - Configure account_B of server_B on Talk app. 2.2 - Send a message from other user of server_B to account_B of server_B. 2.3 - The message arrive to account_B but I DON'T receive a notification.

Expected behaviour

Fresh intallation of android Talk app client.

1.1 - Configure account_A of server_A on Talk app.
1.2 - Send a message from other user of server_A to account_A of server_A. 1.3 -The message arrive to account_A and I receive a notification.

2.1 - Configure account_B of server_B on Talk app. 2.2 - Send a message from other user of server_B to account_B of server_B. 2.3 - The message arrive to account_B and I receive a notification.

Actual behaviour

The second account configured don't receive notifications.

If I delete the account_A of server_A, being after that the account_B of server_B, the unique account configured, then the account_B of server_B starts to receive correctly notifications.

If after that, I reconfigure account_A of server_A, being this the last configured account, this account don't receive notifications.

Device brand and model

S24

Android version

14

Nextcloud Talk app version

18.x.x and 18.1.0-RC2

Nextcloud server version

25.0.12

Talk version

15.0.8

Custom Signaling server configured

None

Custom TURN server configured

Yes

Custom STUN server configured

Yes

Android logs

No response

Server log

No response

Additional information

No response

migulen commented 1 month ago

I've more info about this bug. It only happens with my account on the 2nd server. The account username is exactly the same on the 1st server and 2nd server where I don't get notifications.

If I configure an account with different "username" on the 2nd server, I receive notifications correctly, so the problem it's a missunderstod with the username. I don't know if it's problem from "nextcloud talk android client", "nextcloud spreed server" or "FCM (Firebase cloud messaging) from google".

I'm going to test the "not working configuration" with an Nextcloud Talk IOS client to see if the problem is from "nextcloud talk android client".

@mahibi , it is possible this helps to find the problem ?

migulen commented 1 month ago

@mahibi... can you give me a hint where to look for how Talk client handle the "notifications" when the "account username" is the same on two accounts on two different nextcloud servers ? And more difficult, two virtualized nextcloud servers behind a http proxy, with same proxy external IP but different hostname/url ?

Could be on some of this files:

https://github.com/nextcloud/talk-android/blob/9a3702d0ce7ae2925f353bcf1e381f72df6d3ee8/app/src/main/java/com/nextcloud/talk/models/json/notifications/Notification.kt#L8

https://github.com/nextcloud/talk-android/blob/9a3702d0ce7ae2925f353bcf1e381f72df6d3ee8/app/src/main/java/com/nextcloud/talk/adapters/ParticipantDisplayItem.java#L26

https://github.com/nextcloud/talk-android/blob/9a3702d0ce7ae2925f353bcf1e381f72df6d3ee8/app/src/main/java/com/nextcloud/talk/jobs/NotificationWorker.kt#L57

https://github.com/nextcloud/talk-android/blob/9a3702d0ce7ae2925f353bcf1e381f72df6d3ee8/app/src/main/java/com/nextcloud/talk/utils/NotificationUtils.kt#L258

I've the impression that Talk client is handling the notifications directed to the 2on account (on the 2on server), how if they where sended to the first account, (on the 1st server ) and for some reason they are "discarded" silently...