Giter Club home page Giter Club logo

spreed's Introduction

Nextcloud Talk

A video & audio conferencing app for Nextcloud

Elevator
✨ Why is this so awesome?
πŸ“š Documentation
🚧 Development Setup

✨ Why is this so awesome?

  • πŸ’¬ Chat Nextcloud Talk comes with a simple text chat, allowing you to share or upload files from your Nextcloud Files app or local device and mention other participants.
  • πŸ‘₯ Private, group, public and password protected calls! Invite someone, a whole group or send a public link to invite to a call.
  • 🌐 Federated chats Chat with other Nextcloud users on their servers
  • πŸ’» Screen sharing! Share your screen with the participants of your call.
  • πŸš€ Integration with other Nextcloud apps like Files, Calendar, User status, Dashboard, Flow, Maps, Smart picker, Contacts, Deck, and many more.
  • πŸŒ‰ Sync with other chat solutions With Matterbridge being integrated in Talk, you can easily sync a lot of other chat solutions to Nextcloud Talk and vice-versa.

More in the works for the coming versions.

If you have suggestions or problems, please open an issue or contribute directly πŸ€“


πŸ“š Documentation

πŸ“¦ Installing for Production

Nextcloud Talk is really easy to install. You just need to enable the app from the Nextcloud App Store and everything will work out of the box.

There are some scenarios (users behind strict firewalls / symmetric NATs) where a TURN server is needed. That's a bit more tricky to install. You can find instructions in our documentation and the team behind the Nextcloud VM has developed a script that takes care of everything for you (vm-talk.sh). The script is tested on the recent Ubuntu Server LTS. Please keep in mind that it's developed for the VM specifically and any issues should be reported in that repository, not here.

Here's a short video on how it's done.


🚧 Development Setup

  1. Simply clone this repository into the apps folder of your Nextcloud development instance.
  2. Run make dev-setup to install the dependencies.
  3. Run make build-js.
  4. Then activate it through the apps management. πŸŽ‰
  5. To build the docs locally, install mkdocs locally: apt install mkdocs mkdocs-bootstrap.

🏎️ Faster frontend developing with HMR

You can enable HMR (Hot module replacement) to avoid page reloads when working on the frontend:

  1. Install and enable hmr_enabler app
  2. Run npm run serve
  3. Open the normal Nextcloud server URL (not the URL given by above command)

We are also available on our public Talk team conversation, if you want to join the discussion.

🌏 Testing federation locally

When testing federated conversations locally, some additional steps might be needed, to improve the behaviour and allowing the servers to talk to each others:

  1. Allow self-signed certificates
    occ config:system:set sharing.federation.allowSelfSignedCertificates --value true --type bool
    occ security:certificates:import /path/to/the/nextcloud.crt
    occ security:certificates
  2. Allow local servers to be remote servers
    occ config:system:set allow_local_remote_servers --value true --type bool

Additionally you can enable debug mode that will list local users as federated users options allowing you to federate with accounts on the same instance. Federation will still work and use the full federation experience and opposed to the federated files sharing not create a local share instead.

πŸͺ„ Useful tricks for testing video calls

πŸ‘₯ Joining a test call with multiple users

  • Send fake-stream (audio and video) in Firefox:
    1. Open about:config
    2. Search for fake
    3. Toggle media.navigator.streams.fake to true
    4. Set media.navigator.audio.fake_frequency to 60 for more pleasant sound experience
  • Afterwards install the Firefox Multi-Account Containers addon
  • Now you can create multiple account containers, log in with a different Nextcloud account on each of them and join the same call with multiple different users

πŸ“Έ Modifying available media devices

  • Disable camera until reboot: sudo modprobe -r uvcvideo
  • Re-enable camera: sudo modprobe uvcvideo

πŸ”ƒ Milestones and Branches

Branches

In the Talk app we have one branch per Nextcloud server version. stable* branches of the app should always work with the same branch of the Nextcloud server. This is only off close to releases of the server, to allow easier finishing of features, so we don't have to backport them.

Milestones

  • v17.0.0 - Numeric milestones are settled and waiting for their release or some final polishing
  • πŸ’› Next Patch (27) - The next patch milestone is for issues/PR that go into the next Dot-Release for the given Nextcloud version (in the example 27 - e.g. 17.0.1)
  • πŸ’š Next Major (28) - The next major milestone is for issues/PR that go into the next feature release for the new Major Nextcloud version (as there are Patch releases for 27, this would be 28)
  • πŸ’” Backlog - The backlog milestone is assigned to all remaining issues

You can always pick a task of any milestone, and we will help you to get it into the assigned milestone or also an earlier one if time permits. It's just a matter of having an overview and better visibility what we think should be worked on, but it's not exclusive.

πŸ’™ Contribution Guidelines

For more information please see the guidelines for contributing to this repository.

spreed's People

Contributors

antreesy avatar blizzz avatar danxuliu avatar dependabot-preview[bot] avatar dependabot[bot] avatar dorrajaouad avatar fancycode avatar gary-kim avatar github-actions[bot] avatar ivansss avatar jancborchardt avatar juliushaertl avatar lukasreschke avatar marcoambrosini avatar morrisjobke avatar nextcloud-bot avatar nextcloud-command avatar nickvergessen avatar nikola-gladovic avatar phrozenbyte avatar provokateurin avatar pvince81 avatar rakekniven avatar rullzer avatar shdehnavi avatar shgkme avatar skjnldsv avatar systemkeeper avatar valdnet avatar vitormattos avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

spreed's Issues

optional high scalability backend

It should be possible in the future to switch to a high scalable signaling backend for very big installations. This is for version 2.0 and not needed today.
There is some technology evaluation needed. Possible is a new Go or Node.js daemon.

Sidebar

The current sidebar should show:

  • Rooms,
  • Recent group calls
  • Some of my contacts that I interacted the most lately.
    Similar to Skype.

Database creation fails due to primary key length limit on MySQL

  [Doctrine\DBAL\Exception\DriverException]                                                                                            
  An exception occurred while executing 'CREATE TABLE `oc_spreedme_room_participants` (`userId` VARCHAR(256) NOT NULL, `roomId` VARCH  
  AR(256) NOT NULL, `lastPing` INT NOT NULL, PRIMARY KEY(`userId`)) DEFAULT CHARACTER SET utf8 COLLATE utf8_bin ENGINE = InnoDB':      
  SQLSTATE[42000]: Syntax error or access violation: 1071 Specified key was too long; max key length is 767 bytes                      

  [Doctrine\DBAL\Driver\PDOException]                                                                              
  SQLSTATE[42000]: Syntax error or access violation: 1071 Specified key was too long; max key length is 767 bytes  

  [PDOException]                                                                                                   
  SQLSTATE[42000]: Syntax error or access violation: 1071 Specified key was too long; max key length is 767 bytes  

Screensharing

We need to support screensharing. Similar to old Spreed.ME

Password protection rooms

Sort out how public rooms and private rooms and password protected rooms and internal rooms fit together.

Directly join created room

When creating a room, your video should directly show and the entry should directly appear, not waiting for the server. For a smooth and fast UX.

Check JavaScript / CSS files for errors/style

There should be a CI job checking the JavaScript / CSS files for errors/style on commit / PR.

If somebody could provide me some details how you handle this with your CI setup, I could take a look at creating a PR.

Message when group/room empty

The default message that appears when no group/room is joined is fine: 'Time to do your hair! :) Then join a room or create a new one'

But a different message should appear when be alone in a group. Something like: 'You are alone in this group. Join a different one or invite someone'

Layout improvements for rooms

If it is only two users in a room, then show the current user in the bottom right and the other in big view. Just like other solutions such as Skype do for example.

full screen support

it would be cool to have the option to switch to browser full screen for video conferences

Chat integration

Do research together with the chat app to see how this works seamless together.

Federated conversations

You should be able to call and chat with someone via federation through cloudname.com/username or something similar.

auto join

the old spreed.me has normal room and conference rooms where people automatically join the call when in this room. we need a config option per room.
or is it ok to always have auto join / conference mode?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    πŸ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. πŸ“ŠπŸ“ˆπŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❀️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.