Some ideas how we can integrate Chat into the Spreed app.
We shortly discussed the possibility to integrate with other networks like Matrix, XMPP, IRC, etc. This enabled us to use existing clients and let people join chats their preferred way.
Challenge:
This was the result of some brain storming with @Ivansss @nickvergessen @karlitschek and @pfiff45
Feel free to comment and discuss the ideas
Additional feature request:
Agree with all the points! :) Would be cool to get that integrated. Also cc @sualko @LEDfan of the Chat app for info.
I would try to build on the jsxc app as much as possible here, or even start with that instead of starting from scratch. Sure, the XMPP protocol might not have the type of federation we want, but that is no reason why we couldn't just do it by adding our own extension. No, that wouldn't be a standard but neither would starting from scratch...
If we're looking to support XMPP at some point, starting with XMPP would make that a whole lot easier ;-)
And we already get all the good stuff written in JSXC.
Applause!
Good stuff in JSXC: the always-on approach; whenever you are logged in, you are available for a chat (if the server doesn't timeout you).
Bad stuff: Due to the architecture, JSXC cannot be activated for just some groups only.
XMPP being a widespread protocol, it would make sense to use it in my eyes.
Edit: removed reference to stalled login - this issue got addressed already. Thanx
@joergmschulz Thanks for your kind words, we are always open for improvements. If you find bugs, please report them to https://github.com/jsxc/jsxc/issues. An unavailable xmpp server e.g. should not result in login errors and it is possible to enhance jsxc to allow chat only for defined groups, but this is currently not on our roadmap.
@jospoortvliet i like your idea and this extension could be a standard in the future, because everyone can submit an xep proposal, see https://xmpp.org/extensions/xep-0001.html
Here are some mockups of how an integrated chat could look like for the Video calls app.
On desktop, on the right above the personal video, half-transparent and overlaid over the other persons video:

On mobile, also half-transparent and overlaid over the other persons video, so you can still see them:

Cool, it looks nice for the first. But i think the usebility for more then one chat is not so clear...
A very basic code that might help start this is at https://github.com/bkmgit/SimplePHPchat, though many others are also available online. Could rewrite to link into Nextcloud framework, use routes and database hooks as well as authentication.
Another protocol that might be of interest is SIP protocol used in GNU ring
when this wil be released?
A first version is scheduled for Nextcloud 13
I like the idea of integrating Matrix and IRC to the app.
Matrix would be nice, because with matrix/riot its possible to build bridges to the other chats too. IRC for example, even wahtsapp and more. So, my understanding is: When integrating matrix its possible to chat with various other protocolls.
Yes the usage of IRC etc via Matrix is possible. Unfortunately the synapse (Matrix Reference Server) seem overwhelmed with big IRC channels (like Archlinux).
Matrix: Definition of the Server\~Server and Server\~Client interface
Riot: Most commonly used client software
Synapse: Most commonly used server software
I like also the idea of matrix, because the installation is easy on Debian / Ubuntu and they have good clients for all different OS.
It would be good to implement chat-only mode. Currently web application fails completely without camera and microphone.
@p5n that is fixed for the next version already
Closing this, since basic chat support is now working.
If there are still things open a new issue should be created
Most helpful comment
I would try to build on the jsxc app as much as possible here, or even start with that instead of starting from scratch. Sure, the XMPP protocol might not have the type of federation we want, but that is no reason why we couldn't just do it by adding our own extension. No, that wouldn't be a standard but neither would starting from scratch...
If we're looking to support XMPP at some point, starting with XMPP would make that a whole lot easier ;-)
And we already get all the good stuff written in JSXC.