Hi,

during review of Kurento example code and our application code I have seen
that all the Kurento examples do something called "candidateQueue" where
they buffer iceCandidates. And once the webRTCEndpoint is initialized they
re-apply those candidates.
That is because you can/will receive iceCandidates _before_ the
webRtcEndpoint is ready.

This is present in the Kurento nodeJS examples. But not in the Java
examples.

I assume the Java examples have not been updated with this functionality
since creation. MOst of the Java examples are 5 years old, with no updates
since then. In the NodeJs examples there are much more recent changes.

You can find this functionality for queuing them for example in here:
https://doc-kurento.readthedocs.io/en/stable/tutorials/node/tutorial-one2many.html
search "candidatesQueue"

In OpenMeetings application there are just some if-else clause that throw
away the iceCandidate. Without any logging in that case.
I enabled additionally logging in:
https://github.com/apache/openmeetings/pull/131

And indeed you can find lots of logs during conferences init where a valid
iceCandidate was not applied then:
[31mWARN [0;39m 02-23 21:56:56.509 [36mo.a.o.c.r.KStream:510
[nio-443-exec-12] [0;39m - addIceCandidate iceCandidate while not ready
yet, uid: 47f7202d-1a12-4acc-84ad-644cc15be0b6

=> That means that we have valid iceCandidates but it does NOT try to use
them!

==> *This can lead to unnecessary long initialisation of the KMS connection*
because the trickleIce process takes longer than necessary.
==> Also leads to that it actually can't find the right iceCandidates.
Which I think then leads to the error when the video pod starts, but it
only shows the profile picture

*Proposal is: *
We should queue iceCandidates while the the webRtcEndpoint is initialising,
and once the webRtcEndpoint is ready apply them. Basically the same thing
that happens in the above NodeJS example code. I don't know why the Java
sample has never been updated. Probably hardly people use Java to do the
signaling server.

I have created OPENMEETINGS-2580 to look into this further.

Thanks
Seb

Sebastian Wagner
Director Arrakeen Solutions, OM-Hosting.com
http://arrakeen-solutions.co.nz/
https://om-hosting.com - Cloud & Server Hosting for HTML5
Video-Conferencing OpenMeetings
<https://www.youracclaim.com/badges/da4e8828-743d-4968-af6f-49033f10d60a/public_url>
<https://www.youracclaim.com/badges/b7e709c6-aa87-4b02-9faf-099038475e36/public_url>

Reply via email to