Fork of github.com/havfo/multiparty-meeting
 
 
 
 
 
 
Go to file
Håvar Aambø Fosstveit 381f9cd733 All peers enter the same router up to config.routerScaleSize. Then go to the next one, and keep going until all routers are filled up to config.routerScaleSize. After that simple put peers into routers with least peers. 2020-05-04 23:33:51 +02:00
app Hotkey for toggling video on/off 2020-03-22 19:16:45 +01:00
munin Tidy in munin readme 2020-03-20 11:49:17 +01:00
server All peers enter the same router up to config.routerScaleSize. Then go to the next one, and keep going until all routers are filled up to config.routerScaleSize. After that simple put peers into routers with least peers. 2020-05-04 23:33:51 +02:00
.gitignore Removed screensharing extension. Added some small optimization fixes. 2019-06-04 12:58:12 +02:00
CHANGELOG.md Update changelog 2020-03-22 19:42:34 +01:00
README.md some additions, typo 2020-03-21 13:27:25 +01:00
demo.gif Demo file 2019-11-08 14:29:56 +01:00
multiparty-meeting.service systemd: Allow unpriv user listen on ports < 1024 2018-11-13 12:42:15 +01:00

README.md

multiparty-meeting

A WebRTC meeting service using mediasoup.

Try it online at https://letsmeet.no. You can add /roomname to the URL for specifying a room.

Features

  • Audio/Video
  • Chat
  • Screen sharing
  • File sharing
  • Different layouts
  • Internationalization support

Docker

If you want the automatic approach, you can find a docker image here.

Ansible

If you want the ansible approach, you can find ansible role here. asciicast

Manual installation

  • Prerequisites: Currently multiparty-meeting will only run on nodejs v10.* To install see here here.
$ sudo apt install npm build-essentials redis
  • Clone the project:
$ git clone https://github.com/havfo/multiparty-meeting.git
$ cd multiparty-meeting
  • Copy server/config/config.example.js to server/config/config.js :
$ cp server/config/config.example.js server/config/config.js
  • Copy app/public/config/config.example.js to app/public/config/config.js :
$ cp app/public/config/config.example.js app/public/config/config.js
  • Edit your two config.js with appropriate settings (listening IP/port, logging options, valid TLS certificate, don't forget ip setting in last section in server config: (webRtcTransport), etc).

  • Set up the browser app:

$ cd app
$ npm install
$ npm run build

This will build the client application and copy everythink to server/public from where the server can host client code to browser requests.

  • Set up the server:
$ cd ..
$ cd server
$ npm install

Run it locally

  • Run the Node.js server application in a terminal:
$ cd server
$ npm start
  • Note: Do not run the server as root. If you need to use port 80/443 make a iptables-mapping for that or use systemd configuration for that (see futher down this doc).
  • Test your service in a webRTC enabled browser: https://yourDomainOrIPAdress:3443/roomname

Deploy it in a server

  • Stop your locally running server. Copy systemd-service file multiparty-meeting.service to /etc/systemd/system/ and check location path settings:
$ cp multiparty-meeting.service /etc/systemd/system/
$ edit /etc/systemd/system/multiparty-meeting.service
  • Reload systemd configuration and start service:
$ systemctl daemon-reload
$ systemctl start multiparty-meeting
  • If you want to start multiparty-meeting at boot time:
$ systemctl enable multiparty-meeting

Ports and firewall

  • 3443/tcp (default https webserver and signaling - adjustable in server/config.js)
  • 4443/tcp (default npm start port for developing with live browser reload, not needed in production enviroments - adjustable in app/package.json)
  • 40000-49999/udp/tcp (media ports - adjustable in server/config.js)

TURN configuration

  • You need an addtional TURN-server for clients located behind restrictive firewalls! Add your server and credentials to app/config.js

Authors

  • Håvar Aambø Fosstveit
  • Stefan Otto
  • Mészáros Mihály

This started as a fork of the work done by:

License

MIT

Contributions to this work were made on behalf of the GÉANT project, a project that has received funding from the European Unions Horizon 2020 research and innovation programme under Grant Agreement No. 731122 (GN4-2). On behalf of GÉANT project, GÉANT Association is the sole owner of the copyright in all material which was developed by a member of the GÉANT project.

GÉANT Vereniging (Association) is registered with the Chamber of Commerce in Amsterdam with registration number 40535155 and operates in the UK as a branch of GÉANT Vereniging. Registered office: Hoekenrode 3, 1102BR Amsterdam, The Netherlands. UK branch address: City House, 126-130 Hills Road, Cambridge CB2 1PQ, UK.