wanton7
Does anyone have any experience with WebRTC STUN & TURN server called XTurn?
Our company is thinking of adding voice chat to our browser app in the future with WebRTC. I noticed that company called Xirsys released and open sourced Elixir based STUN & TURN server last year. Anyone has any experience with it?
More info
https://medium.com/xirsys/xirsys-releases-xturn-the-open-source-turn-server-in-elixir-c84348289acc
https://github.com/xirsys/xturn
Most Liked
LSylvester
The included API is a starting point. The purpose of the server is to provide full WebRTC capabilities as simply as possible. This way, developers can shape it however they choose without hours spent learning how it works. Maru was chosen as it’s lightweight, but it can easily be ripped out and replaced.
The server supports full DTLS and we’ve experienced no issues with it. Running on a $5 virtual machine, I have achieved faster benchmarks than Google’s own servers.
As stated, this is just a starting point, but it’s a good starting point with less headaches.
The talk I’m giving in July is regarding using XTurn to debug WebRTC apps. Since its so simple, it’s perfect for finding flaws in such apps. I believe it is being recorded.
Another point you may find interesting; we are working with the Membrane Framework team to implement Membrane Source pads for video and audio pipelines in the server. I am currently working on a “record to file” example. It may prove useful to you.
LSylvester
LSylvester
So, a TURN server is also a STUN server. TURN extends the STUN specification by adding throughput capabilities. Any TURN server will also perform STUN bindings (but not the reverse).
TURN is used for situations where one peer can’t see the other clearly. All peers will be behind a NAT (the router that sits between your machine and the public internet) and some will be behind several NATs. Some NATs are more complicated than others, which is why TURN is required. Some NATs are too complicated even for TURN, but those are rare.
The TURN server should ideally sit on a sufficient machine. I ran that XTurn server (written in Elixir) on a cheap $5 VM and got better, faster throughput than Google’s own TURN servers. However, that was a handful of connections. If you plan on supporting thousands of simultaneous TURN connections, you’ll want a nice big VM with a chunky bandwidth.
For demos, I would strongly urge you to take a look at Muaz Khan’s experiments, here. There are loads available and they’re all bare-bones, so it’s a good resource to learn from.
Regards,
Jahred
Popular in Discussions
Other popular topics
Categories:
Sub Categories:
Forums
Popular Tags
- #ecto
- #liveview
- #troubleshooting
- #learning-elixir
- #deployment
- #library
- #erlang
- #testing
- #genserver
- #mix
- #absinthe
- #remote-other
- #otp
- #plug
- #how-to-question
- #macros
- #postgres
- #channels
- #elixirconf
- #exunit
- #discussion
- #code-sync
- #javascript
- #podcasts
- #onsite
- #dialyzer
- #docker
- #authentication
- #umbrella
- #full-time-contract
- #podcasts-by-brainlid
- #ecto-query
- #elixir-ls
- #phoenix_html
- #iex
- #blog-post
- #graphql
- #genstage
- #ai
- #websockets
- #supervisor
- #advent-of-code
- #elixirconf-us
- #distillery
- #processes
- #forms
- #api
- #metaprogramming
- #security
- #performance










