Skip to content

Implement Voice / Video calling #5

@EricApostal

Description

@EricApostal

About

In order to support voice / video, we will need to add support for either Discord's UDP voice protocol, or WebRTC. I personally and more for WebRTC as it is supported on all platforms, and I'd like to keep web as a vague target.

Firebridge already has support for interacting with the voice gateway, however, I have not been able to establish a WebRTC connection (despite many painful hours of trying).

The best documentation is here: https://docs.discord.sex/topics/voice-connections#webrtc-connections.

There is a reverse-engineering project for Discord called "Spacebar, " which is a project that aims to re-create the Discord backend 1:1. One of the custom clients is called "Jank Client," and the developer claims to have gotten WebRTC to work. The socket connection hasn't been an issue when trying to implement it, it's been completely with the SDP. You can find his implementation here. I can't be 100% sure that it works, however, it's the best reference I have.

I am not against a UDP client, I just see it as a bit of a waste of time as WebRTC would handle voice / video / etc, all through native libraries, with no per-platform implementation. It also allows for the usage of more specific libraries, such as flutter_webrtc, which handle a lot automatically.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions