4 ms·
I like WebRTC but it's a complicated mess of protocols... I'm currently trying to implement a WebRTC peer client in pure Erlang. One of the most difficult thin
by bobowzki 8y ago
I like WebRTC but it's a complicated mess of protocols...
I'm currently trying to implement a WebRTC peer client in pure Erlang. One of the most difficult things I've done because WebRTC relies on several hundred pages of RFCs.
- kodablah 8y agoYup, lots of telephony-inspired RFCs in there. If you're not already, I suggest referencing [0] as you develop, it's a great project that is also really easy to read what's happening underneath. 0 - https://github.com/pions/webrtc https://github.com/pions/webrtc
- bobowzki 8y agoYes, pions WebRTC was my inspiration!
- Sean-Der 8y ago@bobowzki we would love to have you on Slack https://pion.ly/slack/ https://pion.ly/slack/ If there is anything I can do I would like to support your Erlang implementation! I can answer any questions you have, and would be happy to help get more eyes on your version as well. It would be fantastic to see Go, Python, Erlang, C++ and Browsers all communicating directly without any software in the middle :)
- bobowzki 8y agoThanks I will do that!
- stcredzero 8y agoThank goodness for pions webrtc! I changed my MMO's dev version over to it a couple months ago. This is going to be tons better than the node-electron webrtc proxies running under tmux I was using. Between this, nanomsg, and BadgerDB, I'm going to be removing all of my non-golang dependencies, which is going to enable some very cool stuff. For one thing, I now have edge servers in my architecture. This means that I can now use my ability to serialize the state of a game instance server process, then inject it into another process without any participation from the client. This will make hot code updates really slick.
- Sean-Der 8y agoThat is great to hear :) If there is anything we can do to make it better I would love to work on fixing anything that comes up, thanks for using Pion!
- injb 8y agoI'll just add https://github.com/aiortc/aiortc https://github.com/aiortc/aiortc here too - in case anyone reading this thread is interested in a pure Python implementation.
- Sean-Der 8y agoThanks @cretz :) We have had a lot of churn, but I am really proud of how we split everything out. DTLS, SCTP, ICE and SRTP are a real pain but once it works it is amazing. We are also working on https://pion.ly/knowledge-base https://pion.ly/knowledge-base I want to create a resource that pulls all WebRTC info together RFCS, summations and links to relevant code etc... If anyone wants to help we would love to have you! Especially someone who has an eye for design, we have a resource but they aren't able to help often, I am always happy to chat in our Slack channel https://pion.ly/slack/ https://pion.ly/slack/ ---- I still really want to tie your IFPS work together we something like https://github.com/pions/asciirtc https://github.com/pions/asciirtc then we can get decentralized chat that works in browsers and desktops (with a single static binary to run it locally) would be amazing
- benbro 8y agoHow do you handle DTLS in Erlang? The Erlang DTLS implementation in OTP is missing the use_srtp extension and muxing DTLS, RTP and STUN packets on the same port.
- bobowzki 8y agoI'm still not sure how to do the DTLS handshake. I was under they impression that I might be able to use the ssl:handshake and then downgrade again, but I realize reading your comment it will be much more difficult...
- benbro 8y agoIs there a chance you'll share your Erlang DTLS implementation or challenges in the erlang mailing list? DTLS support for WebRTC and similar use cases is still missing. https://bugs.erlang.org/browse/ERL-853 https://bugs.erlang.org/browse/ERL-853 http://erlang.org/pipermail/erlang-questions/2018-January/094581.html http://erlang.org/pipermail/erlang-questions/2018-January/09...
- bobowzki 8y agoI will do that. Checked the archives after your comment and it seems use_srtp support is planned. My current understanding is that for dtls-srtp only the handshake is necessary for key exchange.