stoatchat icon indicating copy to clipboard operation
stoatchat copied to clipboard

Voice Overhaul and Video Calling

Open insertish opened this issue 2 years ago • 19 comments

Link To Implementation

If you are reading this from the roadmap, the following is not a list of features that is currently available but our internal progress on development.

Functional requirements:

  • [x] User can connect to a voice chat and start listening to other participant's or streaming a participant's video.
  • [x] A server owner may restrict who can join using the channel using the "Connect" permission.
  • [x] A server owner or moderator (with "DeafenMembers" permission) may restrict who can listen server-wide.
  • [x] Users may turn on their microphone and broadcast it to other participants.
  • [x] Users are able to turn off their microphone at any moment.
  • [x] A server owner may restrict who can talk in a channel using the "Speak" permission.
  • [x] A server owner or moderator (with "MuteMembers" permission) may restrict who can talk server-wide.
  • [x] Users may share one or more video streams, such as their camera, a game, or their screen.
  • [x] Users are able to turn off their video streams at any moment.
  • [x] A server owner may restrict who can share video by using the "Video" permission.
  • [x] 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.
  • [x] 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

insertish avatar Jan 24 '23 16:01 insertish

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.

Graxo avatar May 02 '23 14:05 Graxo

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

Rexogamer avatar May 02 '23 14:05 Rexogamer

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?

Graxo avatar May 02 '23 15:05 Graxo

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

Rexogamer avatar May 02 '23 15:05 Rexogamer

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.

Graxo avatar May 02 '23 16:05 Graxo

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.

nlutterman avatar May 07 '24 12:05 nlutterman

Its in development, you can see the progress at https://github.com/revoltchat/backend/pull/318

Zomatree avatar May 07 '24 16:05 Zomatree

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%

MerlinTheCodemancer avatar Jun 28 '24 01:06 MerlinTheCodemancer

What is the latest situation? Can it be used even though it's a WIP?

exababy avatar Dec 25 '24 10:12 exababy

nope its on hold for i guess forever its cooked

bignegro avatar Jan 16 '25 09:01 bignegro

It's a pretty big project. I've been meaning to try and find the time to contribute. Hopefully I can soon.

nlutterman avatar Jan 18 '25 01:01 nlutterman

This will be a great addition!

Especially now that Oligarchs control the traditional social networks.

Gotta go private.

maxi1134 avatar Feb 05 '25 17:02 maxi1134

It would be so nice if we could test even a buggy version, that could take me closer to my dream of leaving Discord

Tech-User42 avatar Aug 09 '25 18:08 Tech-User42

(non-functional) Users are automatically disconnected from voice calls when they are idle.

I think this is an anti-feature. A much more elegant approach would be to keep user in the voice channel, but make voice connection dormant (stop sending any audio data) . Then start sending audio again as soon as sound is detected. Even then, I think this overengineering is not needed at all. Opus audio requires little bandwith and already optimizes silence.

Users can judge whether user is AFK by presence

EntityinArray avatar Aug 29 '25 14:08 EntityinArray

the lack of video streaming is the main thing preventing my friends from moving to revolt, with discord's upcoming AI age verification we came back to revolt to check in again, still no progress on this?

7b9e1e avatar Sep 03 '25 00:09 7b9e1e

the lack of video streaming is the main thing preventing my friends from moving to revolt, with discord's upcoming AI age verification we came back to revolt to check in again, still no progress on this?

The work is being done here https://github.com/revoltchat/backend/pull/414

Zomatree avatar Sep 03 '25 00:09 Zomatree

the lack of video streaming is the main thing preventing my friends from moving to revolt, with discord's upcoming AI age verification we came back to revolt to check in again, still no progress on this?

The work is being done here #414

thanks for replying, i wish you luck in implementing more features!

7b9e1e avatar Sep 03 '25 00:09 7b9e1e

What is the latest situation on solfhosted voice channels? I saw that #414 is merged, so it should be replaced in selfhosted version too?

Eddudos avatar Nov 20 '25 10:11 Eddudos

What is the latest situation on solfhosted voice channels? I saw that #414 is merged, so it should be replaced in selfhosted version too?

Yes! Tracking issue: https://github.com/stoatchat/self-hosted/issues/176 It also necessarily needs the new client, since we didn't backport voice features.

insertish avatar Nov 20 '25 11:11 insertish