WebRTCbin / ICE Connection issues

I’m trying to establish a local WebRTC connection to a network device on a WLAN. This LAN is isolated and does not have any internet connection at all. The device does run a gstreamer 1.22 based WebRTCbin Host and webserver.

Setup: Client interfaces:
eth0, 10.1.1.199/24 with internet access, default route
eth1, 192.168.0.200/24, local isolated LAN, route for 192.168.0.0/24

I can request the index.html from the device by "http://192.168.0.3/index.html. Debug output shows that the SDP / REST communication works, the remote server offers a stream. But the Client only offers its default interface: “a=candidate:xxxxxxxxx 1 udp xxxxxxxxx 10.1.1.199 50193 typ host generation 0 network-cost 999 a”.

Result: No matching pair is found.

Today I tried the same setup with Janus-Gateway on the device and it worked. It seems that Janus does the same things, but somehow triggers the browser to send a STUN request to the server. The STUN request is then processed by libnice and a peer-reflexive candidate is added with the correct target address.

No matching remote candidate for incoming check → peer-reflexive candidate.
1:1 Adding valid source candidate: 192.168.0.200:36633 trans: 0
STUN-CC RESP to ‘192.168.0.200:36633’, socket=24, len=80, cand=0xffffa4008e40 (c-id:1), use-cand=0.

What triggers this STUN request? I can’t find any explicit calls in the janus-client javascript. - And how could I replicate this behavior?