-
Notifications
You must be signed in to change notification settings - Fork 436
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
[SIP] Video not displayed if initially blank and only received after some time #13565
Comments
Actually that detection code was added back in the day to work around some problems sending the Although in the beginning audio/video enable/disabled was notified through data channels now the clients do that also through signaling messages (well, right now the Android client does not, but it will do soon ;-) ). Would the SIP bridge be able to send a signaling message when audio/video is enabled/disabled? Then it should™ work independently of the data channels and that detection code. Only thing to keep in mind is that the signaling messages are different than the data channel messages. Data channel messages are |
We could use the incall flags, they are already set correctly for the SIP users: Lines 132 to 138 in 0a0ced1
The internal client has I didn't check if the flags are correctly set for web- / mobile clients already, but they should: spreed/lib/Controller/CallController.php Lines 200 to 203 in 0a0ced1
|
So the clients have to use three different ways to notify about their state: the "incall" flags, the datachannel events and the signaling events 🙈 |
The
I expect to finally remove sending the audio/video state through data channels for the next Talk major release (it requires the Android app to both send and receive the state with signaling messages, but that should be ready soon). Actually once the Android app supports that it would not be needed to send data channels either in previous versions (at least, until the WebUI started to send and receive both data channel and signaling messages for the state), because mobile apps are backwards compatible and they are expected to be used in their latest major version even against older servers. But well, we will not mess with that and data channels will be kept also in older versions. So technically the WebUI and the mobile clients will only need to use signaling messages to notify about their state (if we talk about audio/video enabled/disabled and ignore the speaking state, which is sent only through data channels... 🙈). Having said that... at some point the state may be set using transient states instead of signaling messages :-P But that should be a full replacement rather than adding yet another way of sending the state ;-) |
Good news, the new version of the SIP bridge will support DataChannels 🎆 So now I just need a way to make sure the clients will actually enable them - which they currently don't: spreed/src/utils/webrtc/webrtc.js Lines 1188 to 1195 in 16c6b8f
I'm pretty sure there is similar code in the mobile apps, too. My idea is to expose the features list together with the |
Noticed this while working with #13486 on the SIP bridge.
Currently the video
unmute
event is triggered if more than 2000 bytes are received within a second of the stream starting:spreed/src/utils/webrtc/webrtc.js
Lines 1231 to 1241 in d63691a
If less than 2000 bytes (but more than 0) are received, the video is assumed as "disabled" and further checks are disabled:
spreed/src/utils/webrtc/webrtc.js
Line 1313 in d63691a
While this doesn't happen all the time, when it happens, only a datachannel
unmute
event will make the video appear in the callview:spreed/src/utils/webrtc/webrtc.js
Line 1575 in d63691a
This is a problem for SIP video which might be empty / black at the beginning and only start after some time, and datachannels are not supported by the SIP bridge.
Adding here for tracking. Maybe @danxuliu has an idea if there is a simple way to support this case without having to implement datachannels in the SIP bridge.
The text was updated successfully, but these errors were encountered: