YunoHost-Apps / element_ynh

Element package for YunoHost
https://element.io/
GNU General Public License v3.0
22 stars 8 forks source link

Yunohost Package for element-call #42

Closed Gredin67 closed 4 months ago

Gredin67 commented 2 years ago

Element provides now native webRTC support for p2p group calls. No need for external jitsi instance anymore. Does it make sense to create an external YNH package? Or can you add it to this package as an option?

https://github.com/vector-im/element-call

Josue-T commented 2 years ago

Hello,

I would prefer to integrate this in the actual element package. I didn't know this, thanks for the report.

rosbeef commented 2 years ago

I prefer integrated too; enabled by default, but with an option to disable it in config panel and/or in install panel

Josue-T commented 2 years ago

Or maybe it would prefer to integrate in the synapse package so we have the server part in synapse and element stay the client part.

rosbeef commented 2 years ago

is element call server is designed to works only with element interfaces (web,desktop, android, ios)? or is it more designed to work with other interfaces ? if in the first case i prefer within the element package as it depends on element. if in the second case i prefer in a separated package if it not depends on synapse (it could work with dendrite too, isn't it ?),if it depends on synapse so why not in synapse.

rosbeef commented 1 year ago

is someone tried to package it ?

as it not depends neither "only" on element neither on synapse it should be a separated package. it should work in the future with other serveur and have an autonomous interface so no need to element.

Having an external package and an option in elements to indicates call service could be more flexible.

Gredin67 commented 1 year ago

@YunoHost-Apps/matrix-bridges what do you think of this ? Did some of you already try element-call on its main synapse ?

Element Call requires a homeserver with registration enabled without any 3pid or token requirements, if you want it to be used by unregistered users. Furthermore, it is not recommended to use it with an existing homeserver where user accounts have joined normal rooms, as it may not be able to handle those yet and it may behave unreliably.

Therefore, to use a self-hosted homeserver, this is recommended to be a new server where any user account created has not joined any normal rooms anywhere in the Matrix federated network. The homeserver used can be setup to disable federation, so as to prevent spam registrations (if you keep registrations open) and to ensure Element Call continues to work in case any user decides to log in to their Element Call account using the standard Element app and joins normal rooms that Element Call cannot handle.

Thatoo commented 1 year ago

What does "normal rooms anywhere in the Matrix federated network" mean?

Gredin67 commented 1 year ago

Obviously, there is no backward compatibility of rooms (version) supporting element-call. Or maybe there are now two rooms type without compatibility at all : the historical ones for chatting, and new ones for videoconf.

What I understand is that they are talking about the use-case of a jitsi-like conferencing system, where any non-authenticated user can join from web with a shared url link or so.

But our use-case is more the whatsapp/signal-like video calls, where all users are authenticated. Two things to be clarified though:

MayeulC commented 1 year ago

What does "normal rooms anywhere in the Matrix federated network" mean?

I think they mean Element-call does not really support text rooms yet. I'm quite busy, so I haven't looked into Matrix video calling yet, but there are multiple m.room.type that were proposed for MSCs recently (spaces are one type of room).

I imagine those "call" rooms are a specific type of room, and this version of element does not support regular rooms.

Federation question: Can users authenticated on another homeserver join the call on an element-call that is linked to our homeserver ?

I think so. But if you want to allow unregistered users to join the call, you need open registrations to make them an account.

Bridge question: do we want people on a whatsapp/signal side to be able to join the call --> this would obviously require to have a second public homeserver separate from the one of the bridges.

Do bridges even support calls? :exploding_head:

Thatoo commented 1 year ago

Hoping I'm wrong, I understand that we'll need to install a dedicated server (synapse, dendrite or some day conduit...) with element-call. So we'll need two matrix servers, the main one (the one we installed so far) and one dedicated to call. Clients (Element Web, Element Android etc...) will have to embed Element Call widget from the url of the second matrix server (how will they know the url of second one, I guess thanks to .well-known.).

dinosmm commented 1 year ago

Hi everyone, I (re)wrote the part of the README you are quoting there. I am just a regular user who likes to self-host things; I wrote that to clarify the situation for others, since I found the previous text not helpful enough for me (I got very confused as to what Element Call could do when I tried to self-host it).

All it means is that, right now, Element Call needs a Matrix homeserver to work. If you only want authenticated users to make and join calls, that's fine, it will do that with any homeserver. If you want to be able to accept guests to join calls if they are not authenticated / Matrix users, it will only work if your homeserver allows open registration (without requirement for email or phone number or token), because if you invite an unregistered user, Element Call automatically creates a guest account for them.

Federation question: Can users authenticated on another homeserver join the call on an element-call that is linked to our homeserver ?

I didn't try to ask someone not on my homeserver to join my call, but I think it would work fine.

What does "normal rooms anywhere in the Matrix federated network" mean?

I meant Matrix rooms not created via Element Call. Originally, the devs said Element Call may not handle it well if the HS already has rooms and users in those rooms (so, if it is an existing HS). In my tests, I found that Element Call took a while to start working properly, but once it did, it worked fine even on a HS with existing rooms, so this advice may be outdated.

Please note that the Element apps don't yet have Element Call integrated, as far as I know this is planned for the coming weeks but is not yet completed.

Thatoo commented 1 year ago

Thank you @dinosmm it is much clearer for me. I have one question though. Is it on the roadmap to be able to have a matrix homeserver that don't accept registration (only ldap authentification) , let authenticated users launch element calls and be able to invite guests thanks to a url (previously given)? Can we install element-call now and expect this feature to come later on?

dinosmm commented 1 year ago

This is my own understanding from my experience - I am not a Matrix dev or even an expert, so might be wrong:

Synapse currently does support some sort of guest access, but as far as I know Element does not have any guest functionality. Element Call is the same - it does not support adding unregistered guests to calls, even if Synapse might support it.

I am not sure if there is any Matrix client out there that supports unregistered guests, and I have no idea if the Matrix team plan to introduce this functionality into Element or Element Call any time soon unfortunately.

If you want this functionality right now, the only (?) way is to run Element Call on a separate Synapse server, which has open registration. For security (and peace of mind) it might be a good idea for that Synapse server to be unfederated (so even if a spammer registers, they cannot use it to spam anyone outside that server).

MayeulC commented 1 year ago

Please note that the Element apps don't yet have Element Call integrated, as far as I know this is planned for the coming weeks but is not yet completed.

Hmm, I thought that's what the video room beta was for?

element desktop screenshot ![image](https://user-images.githubusercontent.com/3952726/220930764-a49f5fb2-3c48-4419-866f-25d880c3a647.png)

Well... Personally, I don't care too much about allowing unregistered guests to join video calls for now.

dinosmm commented 1 year ago

Hmm, I thought that's what the video room beta was for?

As per the link below, Video Rooms are still based on Jitsi (so basically they are videocall-only rooms with no other difference to having a normal Matrix room and placing a group call within it). When Element Call gets integrated, they will flip Video Rooms to use Element Call instead.

https://element.io/blog/drop-in-drop-out-chats-with-video-rooms-and-a-new-search-experience/

Thatoo commented 1 year ago

If you want, you can test Element call inside Element if you add

{
    "show_labs_settings": true
}

in (linux) /home/USER/.config/Element/config.json

restart Element and then go into "Expérimental" again, then you'll find below

image

But there is not yet any way to invite "guest" through a link to join a group call through their browser. But I have been said "not yet".

ericgaspar commented 4 months ago

closing -> https://github.com/YunoHost-Apps/element-call_ynh