commit
113fb208ca
|
|
@ -83,7 +83,7 @@ trustProxy : ['192.0.2.5'],
|
||||||
|
|
||||||
## Deploy HA proxy
|
## Deploy HA proxy
|
||||||
|
|
||||||
* Configure cerificate / letsencrypt for `meet.example.com`
|
* Configure certificate / letsencrypt for `meet.example.com`
|
||||||
* In this example we put a complete chain and private key in /root/certificate.pem.
|
* In this example we put a complete chain and private key in /root/certificate.pem.
|
||||||
* Install and setup haproxy
|
* Install and setup haproxy
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -2,7 +2,7 @@
|
||||||
|
|
||||||
## LTI
|
## LTI
|
||||||
|
|
||||||
Read more about IMS Global defined interface for tools like our VideoConference system integration with Learning Managment Systems(LMS) (e.g. moodle).
|
Read more about IMS Global defined interface for tools like our VideoConference system integration with Learning Management Systems(LMS) (e.g. moodle).
|
||||||
See: [IMS Global Learning Tool Interoperability](https://www.imsglobal.org/activity/learning-tools-interoperability)
|
See: [IMS Global Learning Tool Interoperability](https://www.imsglobal.org/activity/learning-tools-interoperability)
|
||||||
|
|
||||||
We implemented LTI interface version 1.0/1.1
|
We implemented LTI interface version 1.0/1.1
|
||||||
|
|
@ -57,5 +57,5 @@ Open fully the settings **Click on show more!!**
|
||||||
|
|
||||||
## moodle plugin
|
## moodle plugin
|
||||||
|
|
||||||
Alternativly you can use multipartymeeting moodle plugin:
|
Alternatively you can use multipartymeeting moodle plugin:
|
||||||
[https://github.com/misi/moodle-mod_multipartymeeting](https://github.com/misi/moodle-mod_multipartymeeting)
|
[https://github.com/misi/moodle-mod_multipartymeeting](https://github.com/misi/moodle-mod_multipartymeeting)
|
||||||
|
|
|
||||||
|
|
@ -76,7 +76,7 @@ $ npm install
|
||||||
$ cd server
|
$ cd server
|
||||||
$ npm start
|
$ 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).
|
* 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 further down this doc).
|
||||||
* Test your service in a webRTC enabled browser: `https://yourDomainOrIPAdress:3443/roomname`
|
* Test your service in a webRTC enabled browser: `https://yourDomainOrIPAdress:3443/roomname`
|
||||||
|
|
||||||
## Deploy it in a server
|
## Deploy it in a server
|
||||||
|
|
@ -102,7 +102,7 @@ $ systemctl enable multiparty-meeting
|
||||||
## Ports and firewall
|
## Ports and firewall
|
||||||
|
|
||||||
* 3443/tcp (default https webserver and signaling - adjustable in `server/config.js`)
|
* 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)
|
* 4443/tcp (default `npm start` port for developing with live browser reload, not needed in production environments - adjustable in app/package.json)
|
||||||
* 40000-49999/udp/tcp (media ports - adjustable in `server/config.js`)
|
* 40000-49999/udp/tcp (media ports - adjustable in `server/config.js`)
|
||||||
|
|
||||||
## Load balanced installation
|
## Load balanced installation
|
||||||
|
|
@ -113,7 +113,7 @@ To integrate with an LMS (e.g. Moodle), have a look at [LTI](LTI/LTI.md).
|
||||||
|
|
||||||
## TURN configuration
|
## TURN configuration
|
||||||
|
|
||||||
* You need an addtional [TURN](https://github.com/coturn/coturn)-server for clients located behind restrictive firewalls! Add your server and credentials to `app/config.js`
|
* You need an additional [TURN](https://github.com/coturn/coturn)-server for clients located behind restrictive firewalls! Add your server and credentials to `app/config.js`
|
||||||
|
|
||||||
## Authors
|
## Authors
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -146,7 +146,7 @@ export default class RoomClient
|
||||||
// Whether we should produce.
|
// Whether we should produce.
|
||||||
this._produce = produce;
|
this._produce = produce;
|
||||||
|
|
||||||
// Wheter we force TCP
|
// Whether we force TCP
|
||||||
this._forceTcp = forceTcp;
|
this._forceTcp = forceTcp;
|
||||||
|
|
||||||
// Use displayName
|
// Use displayName
|
||||||
|
|
@ -269,7 +269,7 @@ export default class RoomClient
|
||||||
|
|
||||||
_startKeyListener()
|
_startKeyListener()
|
||||||
{
|
{
|
||||||
// Add keypress event listner on document
|
// Add keypress event listener on document
|
||||||
document.addEventListener('keypress', (event) =>
|
document.addEventListener('keypress', (event) =>
|
||||||
{
|
{
|
||||||
const key = String.fromCharCode(event.which);
|
const key = String.fromCharCode(event.which);
|
||||||
|
|
@ -572,7 +572,7 @@ export default class RoomClient
|
||||||
type : 'error',
|
type : 'error',
|
||||||
text : intl.formatMessage({
|
text : intl.formatMessage({
|
||||||
id : 'room.changeDisplayNameError',
|
id : 'room.changeDisplayNameError',
|
||||||
defaultMessage : 'An error occured while changing your display name'
|
defaultMessage : 'An error occurred while changing your display name'
|
||||||
})
|
})
|
||||||
}));
|
}));
|
||||||
}
|
}
|
||||||
|
|
@ -1003,7 +1003,7 @@ export default class RoomClient
|
||||||
{
|
{
|
||||||
// The exact formula to convert from dBs (-100..0) to linear (0..1) is:
|
// The exact formula to convert from dBs (-100..0) to linear (0..1) is:
|
||||||
// Math.pow(10, dBs / 20)
|
// Math.pow(10, dBs / 20)
|
||||||
// However it does not produce a visually useful output, so let exagerate
|
// However it does not produce a visually useful output, so let exaggerate
|
||||||
// it a bit. Also, let convert it from 0..1 to 0..10 and avoid value 1 to
|
// it a bit. Also, let convert it from 0..1 to 0..10 and avoid value 1 to
|
||||||
// minimize component renderings.
|
// minimize component renderings.
|
||||||
let volume = Math.round(Math.pow(10, dBs / 85) * 10);
|
let volume = Math.round(Math.pow(10, dBs / 85) * 10);
|
||||||
|
|
@ -1618,7 +1618,7 @@ export default class RoomClient
|
||||||
{
|
{
|
||||||
// The exact formula to convert from dBs (-100..0) to linear (0..1) is:
|
// The exact formula to convert from dBs (-100..0) to linear (0..1) is:
|
||||||
// Math.pow(10, dBs / 20)
|
// Math.pow(10, dBs / 20)
|
||||||
// However it does not produce a visually useful output, so let exagerate
|
// However it does not produce a visually useful output, so let exaggerate
|
||||||
// it a bit. Also, let convert it from 0..1 to 0..10 and avoid value 1 to
|
// it a bit. Also, let convert it from 0..1 to 0..10 and avoid value 1 to
|
||||||
// minimize component renderings.
|
// minimize component renderings.
|
||||||
let volume = Math.round(Math.pow(10, dBs / 85) * 10);
|
let volume = Math.round(Math.pow(10, dBs / 85) * 10);
|
||||||
|
|
@ -2265,7 +2265,7 @@ export default class RoomClient
|
||||||
this.updateSpotlights(spotlights);
|
this.updateSpotlights(spotlights);
|
||||||
});
|
});
|
||||||
|
|
||||||
// Don't produce if explicitely requested to not to do it.
|
// Don't produce if explicitly requested to not to do it.
|
||||||
if (this._produce)
|
if (this._produce)
|
||||||
{
|
{
|
||||||
if (this._mediasoupDevice.canProduce('audio'))
|
if (this._mediasoupDevice.canProduce('audio'))
|
||||||
|
|
@ -2278,7 +2278,7 @@ export default class RoomClient
|
||||||
|
|
||||||
store.dispatch(roomActions.setRoomState('connected'));
|
store.dispatch(roomActions.setRoomState('connected'));
|
||||||
|
|
||||||
// Clean all the existing notifcations.
|
// Clean all the existing notifications.
|
||||||
store.dispatch(notificationActions.removeAllNotifications());
|
store.dispatch(notificationActions.removeAllNotifications());
|
||||||
|
|
||||||
this.getServerHistory();
|
this.getServerHistory();
|
||||||
|
|
@ -2539,7 +2539,7 @@ export default class RoomClient
|
||||||
{
|
{
|
||||||
// The exact formula to convert from dBs (-100..0) to linear (0..1) is:
|
// The exact formula to convert from dBs (-100..0) to linear (0..1) is:
|
||||||
// Math.pow(10, dBs / 20)
|
// Math.pow(10, dBs / 20)
|
||||||
// However it does not produce a visually useful output, so let exagerate
|
// However it does not produce a visually useful output, so let exaggerate
|
||||||
// it a bit. Also, let convert it from 0..1 to 0..10 and avoid value 1 to
|
// it a bit. Also, let convert it from 0..1 to 0..10 and avoid value 1 to
|
||||||
// minimize component renderings.
|
// minimize component renderings.
|
||||||
let volume = Math.round(Math.pow(10, dBs / 85) * 10);
|
let volume = Math.round(Math.pow(10, dBs / 85) * 10);
|
||||||
|
|
@ -2566,7 +2566,7 @@ export default class RoomClient
|
||||||
type : 'error',
|
type : 'error',
|
||||||
text : intl.formatMessage({
|
text : intl.formatMessage({
|
||||||
id : 'devices.microphoneError',
|
id : 'devices.microphoneError',
|
||||||
defaultMessage : 'An error occured while accessing your microphone'
|
defaultMessage : 'An error occurred while accessing your microphone'
|
||||||
})
|
})
|
||||||
}));
|
}));
|
||||||
|
|
||||||
|
|
@ -2736,7 +2736,7 @@ export default class RoomClient
|
||||||
type : 'error',
|
type : 'error',
|
||||||
text : intl.formatMessage({
|
text : intl.formatMessage({
|
||||||
id : 'devices.screenSharingError',
|
id : 'devices.screenSharingError',
|
||||||
defaultMessage : 'An error occured while accessing your screen'
|
defaultMessage : 'An error occurred while accessing your screen'
|
||||||
})
|
})
|
||||||
}));
|
}));
|
||||||
|
|
||||||
|
|
@ -2912,7 +2912,7 @@ export default class RoomClient
|
||||||
type : 'error',
|
type : 'error',
|
||||||
text : intl.formatMessage({
|
text : intl.formatMessage({
|
||||||
id : 'devices.cameraError',
|
id : 'devices.cameraError',
|
||||||
defaultMessage : 'An error occured while accessing your camera'
|
defaultMessage : 'An error occurred while accessing your camera'
|
||||||
})
|
})
|
||||||
}));
|
}));
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -44,7 +44,7 @@ const lobbyPeers = (state = {}, action) =>
|
||||||
|
|
||||||
if (!oldLobbyPeer)
|
if (!oldLobbyPeer)
|
||||||
{
|
{
|
||||||
// Tried to update non-existant lobbyPeer. Has probably been promoted, or left.
|
// Tried to update non-existent lobbyPeer. Has probably been promoted, or left.
|
||||||
return state;
|
return state;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue