According to your tags (Chrome and FF) this question is browser oriented.
If you want to initiate a call using WebRTC:
- you need to download your web page (WebRTC application) from the server (it may be optional if you have already downloaded it to your computer).
- Both browsers must exchange information (codecs, ICE candidates ...), also known as SDP. This step is required and you must use the server. But you can use any other technology (Xaqron comment).
- If browsers are behind NAT, they need a STUN server to retrieve their public IP addresses.
- If one of the two browsers is behind a restrictive NAT or firewall, you should use a media relay, also known as a TURN server.
In conclusion, if you want to exchange multimedia or data with WebRTC in P2P, you must use some servers. Typically, media will be exchanged in P2P, but sometimes media will be transmitted by the TURN server if one or both browsers are behind a restrictive NAT, firewall ....
source share