kwmserver

module
v0.3.3 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 16, 2017 License: AGPL-3.0-only

README

Kopano Web Meetings Server (kwmserver)

This project implements the signaling/channelling server for Kopano Web Meetings.

Technologies:

  • Go
  • WebSockets
  • WebRTC
  • JSON

Quickstart

Make sure you have Go 1.8 installed. This assumes your GOPATH is ~/go and you have ~/go/bin in your $PATH and you have Glide installed as well.

mkdir -p ~/go/src/stash.kopano.io/kwm
cd ~/go/src/stash.kopano.io/kwm
git clone <THIS-PROJECT> kwmserver
cd kwmserver
make
bin/kwmserverd serve --listen=127.0.0.1:8778

Run unit tests

cd ~/go/src/stash.kopano.io/kwm/kwmserver
make test-short

API documentation

See the docs folder. KWM server uses the OpenAPI standard and the ReDoc document generator for rich HTML API documentation.

Start kwmserverd with the --enable-docs parameter to make the ./docs folder available at /docs URL for easy access to documentation.

Integration

Kopano Webmeetings can be integrated into other services to provide audio and video calls via WebRTC.

Mattermost

Kopano Webmeetings can be used with Mattermost to provide WebRTC video calls within Mattermost via the KWM Javascript library included with Mattermost.

Mattermost uses the admin API to create shared tokens and thus kwmserverd should be started with --admin-tokens-key parameter to use a persistent secret key for security tokens used by the admin API. The recommended key size is 32 byte and a suitable file can be generated with:

openssl rand -out admin-tokens.key 32

In Mattermost configuration file config.json, the Webrtc section has to be used to configure/enable the Kopano Webmeetings integration:

"WebrtcSettings": {
	"Enable": true,
	"GatewayType": "kopano-webmeetings",
	"GatewayWebsocketUrl": "wss://url-to-kwmserverd",
	"GatewayAdminUrl": "https://url-to-kwmserverd/api/v1/admin",
	"GatewayAdminSecret": "this-is-not-used",
}

Make sure to set GatewayWebsocketUrl to a public routable URL which gets routed to the base URL of kwmserverd. Mattermost only supports Websocket URLs here, so prefix the URL with wss://. KWM handles this automagically and uses the correct protocol as needed.

The GatewayAdminUrl is used internally by the Mattermost server and thus can be a local/non-public URL, eg http://127.0.0.1:8778/api/v1/admin. If you choose to expose the Admin API public, make sure to limit access to requests from Mattermost as KMW currently does not use the GatewayAdminSecret option to protect the admin API by itself.

License

See LICENSE.txt for licensing information of this project.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL