Solve WebRTC Diverse Network Call Issue - (Flutter + Node js signalling backend + Turn Server)

Job ID: 40082017

Budget: $30 – $250 USD

I’m facing a critical issue in my Flutter application and I’m looking for an experienced WebRTC developer to help me resolve it.

Project Overview:

Mobile App: Flutter

Backend: Node.js

Real-time Communication: WebRTC + Socket.io

TURN Server: Hosted on my own VPS

App Type: Calling & Chatting App

Problem Description:

Calling works perfectly when both devices are connected to the same WiFi/network.

When devices are on different networks, the call does not connect initially.

If the receiver calls back, then the connection succeeds.

After this first successful call, both users can call each other normally, even on different networks.

I have tested with a Metered.ca TURN server, but the issue still persists.

What I Need:
I want to identify the root cause of this issue (ICE candidates, TURN/STUN configuration, signaling, SDP handling, NAT traversal, etc.) and apply a proper permanent fix.

Requirements:

Strong experience with WebRTC

Experience with Flutter WebRTC

Knowledge of TURN/STUN servers

Familiarity with Socket.io signaling

Ability to debug real-time communication issues

If you have faced and solved similar WebRTC network-related issues before, please contact me with your experience and approach.