revoltchat/backend

Voice Overhaul and Video Calling

insertish opened this issue ยท 8 comments

Functional requirements:

  • User can connect to a voice chat and start listening to other participant's or streaming a participant's video.
  • A server owner may restrict who can join using the channel using the "Connect" permission.
  • A server owner or moderator (with "DeafenMembers" permission) may restrict who can listen server-wide.
  • Users may turn on their microphone and broadcast it to other participants.
  • Users are able to turn off their microphone at any moment.
  • A server owner may restrict who can talk in a channel using the "Speak" permission.
  • A server owner or moderator (with "MuteMembers" permission) may restrict who can talk server-wide.
  • Users may share one or more video streams, such as their camera, a game, or their screen.
  • Users are able to turn off their video streams at any moment.
  • A server owner may restrict who can share video by using the "Video" permission.
  • A server owner or moderator (with "MoveMembers" permission) may move a member between channels.
  • A server owner may configure an "afk" room that users are automatically moved in to if they appear to be idle.
  • A user is able to mute another person for themselves in a call.
  • A user is able to change the volume of another person for themselves in a call.
  • A user is able to start or stop watching any particular video stream.
  • Users receive a notification when a call is started in a group chat.
  • The message is updated when the call ends with the total duration.

TODO: incomplete list

Non-functional requirements:

  • Users are only able to join one voice channel at a time.
  • Users experience low-latency communication by default.
  • Users can tell if there is an ongoing call in a room and who is participating.
  • Users can tell at a glance if there is an ongoing call in a server.
  • Users are able to see their current call status at a glance.
  • Users are able to tell who is currently talking in a room.
  • Users are able to tell who is currently not broadcasting their voice.
  • Users are able to tell who is currently not listening to anybody else.
  • Users are able to tell which other people can hear them.
  • Users are able to test if other people would be able to hear them.
  • Users automatically hear voice and (camera) video by default.
  • Users automatically watch screen shares within the context of group chats.
  • Users do not automatically watch screen shares within the context of servers.
  • Users are able to choose a layout which best fits what they are doing, i.e. watching a stream or listening to people.

TODO: incomplete list

Needs discussion:

  • (non-functional) Users are automatically disconnected from voice calls when they are idle.
  • (functional) Users are able to preview video streams before watching them.

Future work:

  • Integrate high-quality noise cancellation a-la Krisp but open-source, e.g. DeepFilterNet
Graxo commented

Hi! I was wondering was the current status is on this. I would love to use Revolt, i got everything running except for the voice channels.

We're currently focusing on the client rewrite - once that is done, we'll focus on this

Graxo commented

We're currently focusing on the client rewrite - once that is done, we'll focus on this

Alright, so Revolt is not usable as voice chat solution atm?

It is technically useable, but the experience isn't necessarily up to scratch - please have patience as we are a group of volunteers ๐Ÿ™

Graxo commented

It is technically useable, but the experience isn't necessarily up to scratch - please have patience as we are a group of volunteers ๐Ÿ™

yes, ofcourse. ill be patient.
Im trying to get the "old" branch to work.. but as there is no support for it and im not managing it by myself, ill wait for a new release.

Is there a need for assistance with this? Is this work on hold because there isn't enough bandwidth?

I'd be willing to lend a hand if that's the case.

Its in development, you can see the progress at #318

I want help i need know and learn to help to accel this process because i some happy with revolt and 75% migrate when this function start BETA ALL for clients i migrate discord to REVOLT 100%