Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

No video on call after update on v15.1.1 #2704

Closed
Akrobs opened this issue Jan 18, 2023 · 81 comments · Fixed by #3670
Closed

No video on call after update on v15.1.1 #2704

Akrobs opened this issue Jan 18, 2023 · 81 comments · Fixed by #3670
Labels
1. to develop Accepted and waiting to be taken care of (should be only set by nextcloud employees) bug Something isn't working feature: ☎️ call high High priority regression Regression of a previous working feature

Comments

@Akrobs
Copy link

Akrobs commented Jan 18, 2023

Steps to reproduce

Try to call with video to other mobile

Expected behaviour

If i'm calling no incoming video on my device (S10e)

Actual behaviour

I'm revert on 15.1 version and all works fine.

Device brand and model

Samsung S10e

Android version

10

Nextcloud Talk app version

16.0.0

Nextcloud server version

26.0.1

Talk version

17.0.0RC4

Custom Signaling server configured

Yes (specify version in Additional Information)

Custom TURN server configured

Yes

Custom STUN server configured

Yes

Android logs

No response

Server log

No response

Additional information

Janus ver. 1.1.4
Coturn ver. 4.6.2
Nats ver. 2.9.12
Signaling ver. 1.1.2

@Akrobs Akrobs added 0. Needs triage bug Something isn't working labels Jan 18, 2023
@Akrobs Akrobs changed the title Тo video on call after update on v15.1.1 No video on call after update on v15.1.1 Jan 18, 2023
@mahibi mahibi added 1. to develop Accepted and waiting to be taken care of (should be only set by nextcloud employees) and removed 0. Needs triage labels Jan 19, 2023
@mahibi
Copy link
Collaborator

mahibi commented Jan 19, 2023

thank you, i just reproduced this.
can you confirm it works after disabling and enabling video again?

@Akrobs
Copy link
Author

Akrobs commented Jan 19, 2023

Nope(
I'm try on another phone Oppo A5 2020, same problem on v15.1.1, on v15.1 works fine.

@XueSheng-GIT
Copy link

I tried to do a video call on 15.1.1 yesterday and wasn't able to get incoming video working. Any workaround yet?

@mahibi mahibi added this to the 15.1.2 milestone Feb 2, 2023
@mahibi
Copy link
Collaborator

mahibi commented Feb 2, 2023

We will have a closer look at this issue soon!

@Akrobs
Copy link
Author

Akrobs commented Feb 2, 2023

We will have a closer look at this issue soon!

Thank you!

@mahibi mahibi modified the milestones: 15.1.2, 16.0.0 Feb 10, 2023
@himpierre
Copy link

I'm affected by this bug too. Pixel 6 / Android 13.

@himpierre
Copy link

Still broken with 15.1.2.

@Akrobs
Copy link
Author

Akrobs commented Feb 17, 2023

Still broken with 15.1.2.

Сonfirm

@charlie-mtl
Copy link

Still broken with 15.1.2.

Сonfirm

Same issue here, Samsung Galaxy S21.
Thank you.

@mahibi
Copy link
Collaborator

mahibi commented Feb 20, 2023

Unfortunately this was not fixed for 15.1.2.
We hope to get this fixed soon! I tagged it with 16.0 for now but if we are able to fix it soon it will be a good reason for a 15.1.3!

And just to make sure:
This still "only" affects calls from android app to android app, right?
I can reproduce this, while disabling and enabling video again solves it as a workaround.
Would be helpful to have some info if this workaround also solves it or if there is still no video afterwards..

@himpierre
Copy link

himpierre commented Feb 20, 2023 via email

@nickvergessen nickvergessen added medium Medium priority regression Regression of a previous working feature feature: ☎️ call labels Feb 21, 2023
@Akrobs
Copy link
Author

Akrobs commented Feb 21, 2023

This still "only" affects calls from android app to android app, right?

No, even if the video call was from a laptop to Android device, or Android to Android device.

I can reproduce this, while disabling and enabling video again solves it as a workaround.

Of course! But disabling and enabling the video does not help(

@Akrobs
Copy link
Author

Akrobs commented Feb 25, 2023

Today i'm update my HPB for Talk.
I'm Installed new [16.0.0 RC1] Talk on my Samsung S10e and recheck it again...
Bad news, still no video, but! If i'm share screen to Android device...I'm see a screen of remote laptop, if switch to webcam - black screen(((
Disabling and enabling the video no effect.

@himpierre
Copy link

himpierre commented Feb 26, 2023 via email

@mahibi
Copy link
Collaborator

mahibi commented Feb 27, 2023

I just tested again for calls web->phone with HPB.
Sometimes it works, sometimes it fails (video not shown on android).
We are aware of the urgency and will take care of it as soon as the workload permits!

@himpierre
Copy link

himpierre commented Mar 8, 2023 via email

@JohnnyHagen
Copy link

Yes, that's right. (Android 12, Nextcloud talk 15.1.2, Nextcloud Hub 3 (25.0.4) and Spreed version 15.0.4 here, latest HPB release.)

@Moonbase59
Copy link

Moonbase59 commented Mar 17, 2023

I’m also affected (Nextcloud AIO v4.6.2, Nextcloud Talk v15.1.2 from Google Playstore). Tested with variouos combinations of internal/external desktop/laptop and Android devices (Android 6–12), desktops using different Linux and Windows variants.

In all cases, the desktops work fine and can also see the Android video, but the Android devices never show the desktop’s video but a blank screen instead. On the Android device itself, the small image from Android’s own camera(s) gets shown.

Same result when using the Talk QA.

Note: On the same Android devices, using a browser (tested Firefox & Chrome) and going to a shared call link of my instance works fine!

Spreed config:

{
    "apps": {
        "spreed": {
            "installed_version": "15.0.4",
            "types": "dav,prevent_group_restriction",
            "project_access_invalidated": "1",
            "enabled": "yes",
            "turn_servers": "***REMOVED SENSITIVE VALUE***",
            "signaling_servers": "***REMOVED SENSITIVE VALUE***",
            "has_reference_id": "yes",
            "signaling_token_privkey_es256": "***REMOVED SENSITIVE VALUE***",
            "signaling_token_pubkey_es256": "***REMOVED SENSITIVE VALUE***",
            "signaling_ticket_secret": "***REMOVED SENSITIVE VALUE***"
        }
    }
}

@nRaecheR
Copy link

Downgrading Janus to 0.13.4 is more than a workaround than a fix. I think we'll need a upstream fix of Nextcloud Talk to work with the current version of Janus. Using an outdated version is not really an option IMHO.

@szaimen
Copy link

szaimen commented Jul 21, 2023

As far as I know is janus 0.x still maintained so it is fine to use that as long as it still gets maintenance which is the case.

@SystemKeeper
Copy link

As far as I know is janus 0.x still maintained so it is fine to use that as long as it still gets maintenance which is the case.

Indeed that’s the case. Janus is currently maintaining 2 versions/branches: 0.x is the single stream version, while 1.x is the multistream version. So just judging from the versioning it seems that 0.x is outdated, while it is not at this time. While I agree it makes sense to make sure Talk is working with 1.x as well in the future, at this point 0.x is the only supported version.

@muchachagrande
Copy link

@szaimen, this issue is solved using Janus 0.x branch but this other issue is still present even with the right Janus version #2704 (comment)

@PhilDevProg
Copy link

Hi @mahibi, I've looked up where in the code the Janus data channel is checked and I've found only one place:

Line 538 of PeerConnectionWrapper.java, in function "onDataChannel"

https://github.com/nextcloud/talk-android/blob/383b59ea8b373a20c916ad6a96645e0fb7cc996c/app/src/main/java/com/nextcloud/talk/webrtc/PeerConnectionWrapper.java#L538C1-L538C1

@Override public void onDataChannel(DataChannel dataChannel) { if ("status".equals(dataChannel.label()) || "JanusDataChannel".equals(dataChannel.label())) { PeerConnectionWrapper.this.dataChannel = dataChannel; PeerConnectionWrapper.this.dataChannel.registerObserver(new MagicDataChannelObserver()); } }

Following the debugging I've done, with Janus 1.x the data channel is named "1", so the IF line should take it into account:

@Override public void onDataChannel(DataChannel dataChannel) { if ("status".equals(dataChannel.label()) || "JanusDataChannel".equals(dataChannel.label()) || "1".equals(dataChannel.label())) { PeerConnectionWrapper.this.dataChannel = dataChannel; PeerConnectionWrapper.this.dataChannel.registerObserver(new MagicDataChannelObserver()); } }

With this change, Talk Android would start to be compatible with Janus 1.x versions.

Is there something preventing this change to be upstreamed if it fixes the issue? Support for Janus 1.x is in my opinion necessary for talk-android since only the Android app doesn't work with Janus 1.x while the iOS app and the website both work completely fine. Users shouldn't have to use an outdated version of janus - even if it's still maintained.

@muchachagrande
Copy link

muchachagrande commented Nov 6, 2023

Hi @PhilDevProg, I can't speak about iOS app, but I've tested the web app and I can confirm that is incompatible with Janus 1.x. In fact, I've discovered the incompatibility doing some debugging on the web app.

EDIT:
while if you use the web app you can establish a connection with Janus 1.x. The incompatibility remains on that the control messages can't reach the other end. So messages like "start speaking" and "stop speaking" are not communicated and the calling experience is degraded.

@calidancer
Copy link

All,
In the meantime, as an Android user, I'm still disabling - every morning - the HPB as apparently is the only workaround at the moment. I can't believe that 9 months and 20 days after this issue was opened, it has not been fixed.
I'm wondering if Next Cloud is actively working on this...

@Byter3
Copy link

Byter3 commented Nov 6, 2023

Nextcloud AIO V6.5 < actually rolled back the janus version int the signaling container. Still have to disable and re-enable the camera if the call is between two Android devices, but at least working. Before switching to AIO I used my own HPB stanadlone server and observed the same behavior. The tldr is dont use the 1.x version.

@ETLin
Copy link

ETLin commented Nov 8, 2023

Any updates on this?

@PhilDevProg
Copy link

Hi @PhilDevProg, I can't speak about iOS app, but I've tested the web app and I can confirm that is incompatible with Janus 1.x. In fact, I've discovered the incompatibility doing some debugging on the web app.

EDIT:
while if you use the web app you can establish a connection with Janus 1.x. The incompatibility remains on that the control messages can't reach the other end. So messages like "start speaking" and "stop speaking" are not communicated and the calling experience is degraded.

In my experience, both the website and the iOS app work fine. No lag or other issues. Only the Android app doesn't work at all.

@mahibi mahibi modified the milestone: 18.0.0 Nov 23, 2023
@fn00rd
Copy link

fn00rd commented Dec 14, 2023

Hello everyone,

so this issue is really not getting addressed, is it?

If so, this should at least be mentioned somewhere prominently in the talk admin documentation. Else everyone who installs the HPB with current packages will run into this problem with just the talk android client while every other client works fine and bang their heads against the wall until they eventually find this thread.

And yes, while technically the 0.x-branch of Janus might still be maintained, it is clearly called "legacy" on their website (even the domain for it has the word legacy in it, they make it veery clear it is l e g a c y software -> https://janus-legacy.conf.meetecho.com/).

Kind of disappointing, not gonna lie.

@nickvergessen
Copy link
Member

so this issue is really not getting addressed, is it?

It will be addressed, once we have the expertise and had the chance to update all clients (iOS, Android, Web, Desktop) before hand. Only afterwards we can release server update bringing this in, otherwise the old clients will similarly fail.

@fn00rd
Copy link

fn00rd commented Dec 18, 2023

It will be addressed, once we have the expertise and had the chance to update all clients (iOS, Android, Web, Desktop) before hand. Only afterwards we can release server update bringing this in, otherwise the old clients will similarly fail.

I'm not quite sure what you mean by this. All other clients except Android already seem to work well with Janus 1.x, as stated repeatedly in this thread. Granted, when I say "work" I mean it from an end user perspective, as in when i make a video call, I can see video and hear audio.

I am currently running the HPB installed with the Sunweaver setup script, the installed Janus version is

Janus version: 1001 (1.0.1)
Janus commit: not-a-git-repo
Compiled on:  Mon May  2 06:19:49 UTC 2022

And with this, audio and video calling from browser to browser, from desktop client to browser, from iOS client to browser, from desktop client to iOS client, and all three of of those combined, works fine. But bring an Android client into the session, and it receives no video signal. Receiving and sending audio as well as sending video works from Android as well.

What is the difference between all other clients and the Android client that prevents it to work with the multichannel Janus? And couldn't the proposed change here be at least a temporary fix to get the Android client to be at least at feature parity with all other clients?

There might very well be underlying issues in the back end that I am not aware of that need to be addressed to make it really "work" work in a technical sense, but as a user having the core component of the Nextcloud Talk app behave as advertised (on the homepage of the parent project no less) on all supported client devices should in my opinion be of higher priority as it apparently is.

And please, don't take this the wrong way. Nextcloud is a great project and it has made my life considerably easier by being super flexible, feature rich, fast and easy to use. All that is missing for me now to have a complete cooperation and communication platform is this thing. And over the last year this thread has basically been my browser homepage, hoping for progress on the matter. And after seeing it being added to milestones only to then be removed again multiple times now, kind of reminds me how I feel every time i check if there is a new release date for The Winds of Winter.

@yggi
Copy link

yggi commented Feb 26, 2024

Still have to disable and re-enable the camera if the call is between two Android devices, but at least working.

The bug that I had to toggle the camera on android is how I came here. Problem is still there. While it's good to hear that this is already an improvement, and the turing video off an on again is a workaround; this is still high amount of friction for a core functionality.

@github-project-automation github-project-automation bot moved this from 🧭 Planning evaluation (don't pick) to ☑️ Done in 💬 Talk team Mar 4, 2024
@skl256
Copy link

skl256 commented Mar 7, 2024

PR #3670 is closed, but nextcloud/talk-android latest release 18.0.1, Can you tell me what version the fix will be in?

@nickvergessen
Copy link
Member

Requiring Talk 19 and Nextcloud 29

@wargreen
Copy link

The fix for spreed was backported in 28 nextcloud/spreed#11667
Is it a technical issue for talk-android 18.0.2 with the fix ?

NC 29 seem far away ! We have some issues with 28 and our users complain, we need to fix everything before a new upgrade on our server.

Thank you !

@Halpaha
Copy link

Halpaha commented May 8, 2024

I have 5 phones on Android 13 and they all have the same no video when connected. Turning it off and on helps, but it's not a panacea.
There is 1 phone on Android 10. Redmi 9t pro and the camera goes out there (there is a pause before sending the video stream). The video appears on it immediately after the answer.
Maybe the problem is that the video stream is created before the connection to Janus occurs?

On Android 10 there is another problem. When you try to open a chat, the application restarts.

NextCloud 28.0.5
NextCloud talk 19.0
Janus 0. x and 1. x the same
Stun yes
HPB yes

@muchachagrande
Copy link

Hi @Halpaha, the "no video between androids" issue is being tracked here #3358.
In a few occasions I've made calls that showed the video at first on one side only, so may be this is a timing issue.
It is being addressed now and may be it will be fixed on the next version.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
1. to develop Accepted and waiting to be taken care of (should be only set by nextcloud employees) bug Something isn't working feature: ☎️ call high High priority regression Regression of a previous working feature
Projects
Status: ☑️ Done
Development

Successfully merging a pull request may close this issue.