I have UDP P2P app that currently relies on at least one of the clients enabling port forwarding on their router, and sharing their public IP address with the other client.
I want to remove this constaint, and so have been reading articles pertaining to STUN, TURN, ICE, etc, and articles about hole punching such as this, which seems to be the de facto reference:
https://bford.info/pub/net/p2pnat/
I think I've have fair concept of what is involved - the server acts as a rendezvous and provides each client with the public IP address of the other, who then start communicating with each other.
But my understanding of STUN servers is that they don't provide this functionality - they only provide a client with a way to get thier own public IP address and NAT status. So, if I am correct, I cannot use a public free STUN server for hole punching, is this right?
If so, does this mean I need to write and host my own server if I want to do this? Or are there other public free servers that can act as a rendezvous for UDP hole punching in a generic/standardised way?