I'm trying to implement some WebRTC calls on my android devices. I have two emulators and one physical device.
My signalling server is located on the public network.
When I connect android emulator and physical device, this is the only string i have
IceServer.builder("stun:stun.l.google.com:19302").createIceServer(),
and it provides the connection.
But when I try to connect two android emulators I have to use TURN server that I've got from metered.ca.
So my last ice candidates are:
specific.a96e842f731140c29bacaed182a2da05!0a2333eaae7a4631919cbda03caf160f {'action': 'ice', 'message': {'id': 'video', 'label': 0, 'candidate': 'candidate:123310808 1 udp 41754367 216.39.253.22 55142 typ relay raddr 77.234.203.142 rport 61291 generation 0 ufrag WPAt network-id 3 network-cost 900'}}
specific.a96e842f731140c29bacaed182a2da05!0a2333eaae7a4631919cbda03caf160f {'action': 'ice', 'message': {'id': 'video', 'label': 0, 'candidate': 'candidate:123310808 1 udp 41885439 216.39.253.22 36761 typ relay raddr 77.234.203.142 rport 64965 generation 0 ufrag WPAt network-id 5 network-cost 10'}}
specific.a96e842f731140c29bacaed182a2da05!42e1ee0a15a842239405b5e77f760ab3 {'action': 'ice', 'message': {'id': 'video', 'label': 0, 'candidate': 'candidate:123310808 1 udp 41885439 216.39.253.22 63086 typ relay raddr 77.234.203.142 rport 53284 generation 0 ufrag UyvI network-id 3 network-cost 900'}}
As you can see, they both find RELAY and connected to it.
Why is it so?