I am having this issue using Cyber Mega Phone 2k on a Confbridge, calling the endpoint video_conference as configured below.
When there are only Chrome or Safari participants, everything is ok. When there are only Firefox participants, everything is ok. If webkit (Chrome or Safari) and Firefox users are mixed, everything looks fine on the webkit browser, while Firefox is stuck on “waiting for video”. The issue happens only when using ConfBridge. Calling between Firefox and webkit works fine, StreamEcho works fine (well, of course).
I am using Asterisk 17.1.0 on Ubuntu 18.04.3 and running tests with all peers from localhost, on a Mac. I am using a stun server but not a turn.
I used the configuration given here, and initially did receive the "waiting for video” message, but after a period of time it went away and video was as expected.
Check the SDP’s and make sure the audio/video addresses and ports are what you’d expect. You can then double check and make sure Asterisk is sending and receiving to/from those addresses/ports with the correct audio/video codecs using rtp debugging:
Update: removing h264 from allowed codecs solved the issue. I am still investigating why. Interestingly, the m=video lines are still the same and the rtp debug is still the same.
I found this on an MDN page, it may be a hint, although I am on a Mac:
Firefox for Android 68 and later do not support AVC (H.264) anymore. This is due to a change in Google Play store requirements that prevent Firefox from downloading and installing the OpenH264 codec needed to handle H.264 in WebRTC connections.
I personally checked and there is the Cisco H.264 plugin enabled in Firefox by default, can’t find the same for Chrome (remember: on a Mac). I have no idea why H.264 doesn’t work in this case, but I am removing it anyway: I need to support Firefox for Android too.
Thank you for your response @kharwell, have a nice day!