As for “why is it hard to self-host”, it is only NAT traversal.
TURN, STUN, ICE, etc. are not fun to debug. Not sure if anyone still bothers fiddling with TOS/DSCP on their router. You can build a voice server that just exposes a TCP port, but… latency. And corporate firewalls love to randomly block some UDP port ranges but not others.
As for “why is it hard to self-host”, it is only NAT traversal.
TURN, STUN, ICE, etc. are not fun to debug. Not sure if anyone still bothers fiddling with TOS/DSCP on their router. You can build a voice server that just exposes a TCP port, but… latency. And corporate firewalls love to randomly block some UDP port ranges but not others.