During the pandemic, I stood up a Jitsi server on Linode and we ditched Zoom for our weekly family get-together calls. Sometimes the audio was not quite as good as Zoom.
If you set up SSL with LetsEncrypt, your call is encrypted “in flight”, but is apparently unencrypted for some portion of its travel through your server.
If it’s a one-on-one call, the two parties are connected directly and skips the server.
I haven’t used it in a while, but end to end encryption was still experimental a couple years ago. It didn’t work on all devices. Something to look at.
Jitsi Server works pretty well on a $5/mo Linode Nanode, so it’s worth trying. Especially if you get their $100 credit on sign up, you can try hosting it for free for a couple months. It’s available as one of their Marketplace apps, so it’s easy to set up.
That sounds like a commercial. I’m not affiliated with Linode, except for being a satisfied customer.
Just because someone else wrote it, doesn’t mean it’s a good implementation, or worth bringing its pile or dependencies into your project.