Voice Chat by in-band signaling

I have looked at their code, seems it is simply a Codec2-encoded audio encoded into something similar to yEnc to pass it within IRC messages: GitHub - asiekierka/voirc: Prototype implementation of basic voice chat over IRC text messages. Meant as a joke, probably doesn't work on latest Nim.
Codec2 is basically a vocoder, which means you can only transmit low-quality voice, but no music, song or any other types of sound. These types of codecs are ok for emergency scenarios and probably VoIP phones, but certainly not something users expect from a messenger. In other words fun hack, but I will certainly not try to integrate anything similar into Delta Chat :slight_smile: I am not even sure it will work at all, as for email per-message overhead is much higher than IRC, which means you need to transmit larger chunks/messages to avoid it, and this will result in high latency.

Also tried to compile, it fails to create output stream due to “layout error”. C program doing the same thing works, probably some bug in Nim bindings to libsoundio.

I have previously experimented with out-of-band transmission using WebRTC: WebRTC for communicating - #25 by link2xt It is possible to start a session by exchanging exactly two SDP messages (offer and answer), the only problem is that you need a TURN server if you want to reliably establish a connection without a NAT. Integrating this at least into Desktop (which uses Electron and therefore a de-facto standard WebRTC implementation) should not be too hard if someone has free time to try it, but nobody is working on it at this moment. All this requires is to add an option in the settings to configure a TURN server in the UI, call UI that can be copied from basicWebRTC and some core changes to hide SDP messages and present them as “call” events and a method to send SDP offer.

1 Like