A WebRTC meeting service using mediasoup.
Try it online at https://letsmeet.no. You can add /roomname to the URL for specifying a room.
- Screen sharing
- File sharing
- Different layouts
- Internationalization support
If you want the automatic approach, you can find a docker image here.
- Clone the project:
$ git clone https://github.com/havfo/multiparty-meeting.git $ cd multiparty-meeting
$ cp server/config/config.example.js server/config/config.js
$ cp app/public/config/config.example.js app/public/config/config.js
Edit your two
config.jswith 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:
$ sudo apt install redis $ cd .. $ cd server $ npm install
Run it locally
- Run the Node.js server application in a terminal:
$ cd server $ npm start
- test your service in a webRTC enabled browser:
Deploy it in a server
- Stop your locally running server. Copy systemd-service file
/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
- 4443/tcp (default
npm startport for developing with live browser reload, not needed in production enviroments - adjustable in app/package.json)
- 40000-49999/udp/tcp (media ports - adjustable in
- You need an addtional TURN-server for clients located behind restrictive firewalls! Add your server and credentials to
- Håvar Aambø Fosstveit
- Stefan Otto
- Mészáros Mihály
This started as a fork of the work done by:
Contributions to this work were made on behalf of the GÉANT project, a project that has received funding from the European Union’s 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.