I have a working implementation of an Asterisk-based videoconferencing platform in React (web). Now I’ve been developing the Android equivalent for a while (using React Native. I can make the call from the phone, answer from the browser on my PC and hear audio on both ends. I can see the local video on both ends. However, I can’t see the remote video on both. Looking at the logs shows that video media is being initialized bundled with audio (same port, as I wanted it to) and that there’s always an incoming video stream. The incoming video stream, however, remains stuck “loading” the video in the video tag (Chrome).
Any idea what could it be? Maybe a codec issue between Chrome and Android?
I would suggest looking at the negotiated codecs, looking at a packet trace to see the media flowing, as well as looking at webrtc-internals in Chrome to see if anything sticks out on the stream itself.
Hello jcolp,
thanks for the reply.
I’ve doublechecked every items you suggested and I can’t see any difference
compared to a desktop to desktop kind of videocall except for the fact that asterisk seems
not locking on source for the video on the android IP address:port.
The negotiated codecs are limited to only VP8 for video and in the 200 OK response from
asterisk to android I see that:
-- Channel PJSIP/624-0000038c joined 'simple_bridge' basic-bridge <3edcf5e8-af59-45d8-bb42-844a4384ec46>
-- Channel PJSIP/648-0000038b joined 'simple_bridge' basic-bridge <3edcf5e8-af59-45d8-bb42-844a4384ec46>
> 0x7f49e806ea10 -- Strict RTP learning after remote address set to: 192.168.5.161:64482
> 0x7f49e806ea10 -- Strict RTP learning after remote address set to: 192.168.5.161:64482
> 0x7f49e80490b0 -- Strict RTP learning after ICE completion
> 0x7f49e80490b0 -- Strict RTP switching to RTP target address 192.168.5.161:64482 as source
> 0x7f49e80ae7b0 -- Strict RTP learning after remote address set to: 192.168.5.110:46169
> 0x7f49e80b32d0 -- Strict RTP learning after ICE completion
> 0x7f49e806ea10 -- Strict RTP switching to RTP target address 192.168.5.161:64482 as source
> 0x7f49e80b32d0 -- Strict RTP switching to RTP target address 192.168.5.110:46169 as source
> 0x7f49e80490b0 -- Strict RTP learning complete - Locking on source address 192.168.5.161:64482
> 0x7f49e806ea10 -- Strict RTP learning complete - Locking on source address 192.168.5.161:64482
> 0x7f49e80b32d0 -- Strict RTP learning complete - Locking on source address 192.168.5.110:46169
where 192.168.5.161 is the desktop while 192.168.5.110 is the android.
So it seems asterisk is missing to lock on source address 192.168.5.110:46169 for the android video.
In the desktop to desktop videocall I see that asterisk is always locking on two sources on same IP address, one for audio and one for video.
Full logs available on request.
Have you looked at an actual packet capture to see the media flow? Have you consulted rtp set debug on to see if the packets are being received at all? Don’t tackle the problem as a whole yet. Break it down and isolate it. Have you used Echo with each side to confirm, independently, that they are working correctly?