'How to establish connection between two parties behind NATs and with dynamic IPs that trust each other without any third party servers?

I want to chat, VoIP and video-conference with my friends without giving away any metadata to third parties. I thought about using Tor (Tox, Briar) and other decentralized applications (Status, something using gun.js), however there were some caveats: Briar didn't support VoIP/video, Tox should work, but for some reason I can't find enough coverage about it - it seems like not many people use it even though it should meet the above requirements. Status (whisper protocol) didn't seem well suited for VoIP/video neither. I'm not sure if there are any VoIP/video Dapps using gun.js already?

Is there any way to establish a connection via UDP hole punching that will stay, so that peers let each other know each time IP changes (our ISPs change IP every month or so) without any outside STUN/randevouz-like server?

It's not about building a peer-to-peer network, but a private point-to-point connection. If this was possible, even if our ISPs still collected metadata from it, I assume one could still hide it completely via a Tor/VPN layer on top later on.



Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source