Checklist Conferencing – Installation and Configuration
1. Download the Docker Image from Docker Repository
docker pull simplifierag/conferencing:latest
2. Execute the Run Command
Don’t forget to change the parameters to match your environment.
docker run -d -p 40000-40250:40000-40250/udp -p 8082:8082 -p 8092:8092 --network simpleNetwork -v c:/opt/intelmcu/data:/opt/mcu_server/data -h conferencing --name conferencing conferencing
- The following table explains the ports
Ports | Description |
40000-40250:40000-40250/udp | video and audio stream ports |
8082:8082 | socket.io for signaling |
8092:8092 | WebSocket for call negotiation and chat function |
- Change “C:/opt/intelmcu/data” to target the mounting directory of your host system.
This is the volume of the Conferencing Docker from which the config files are taken to create the container. - The part “:/opt/mcu_server/data” for the internal path must not be changed
- simpleNetwork: Name of the Docker network where Simplifier and Conferencing Docker reside
- After the run command, the following directories and files are created (if not exist)
- This volume should contain…
- …/data/certs – contains all certificates for the HTTPS and/or secure socket.io connection
- …/data/logs – contains all log files from internal docker apps
- …/data/conf – contains all config files to create the docker container
- agent.toml – webRTC main settings
- portal.toml – socket.io settings
- settings.json – settings for registration to Simplifier Docker
- …/data/recordings – contains video files of recorded sessions
3. Change the Settings of Config Files
- agent.toml:
- Set the network bridge so that the Conferencing and Simplifier Docker can connect to each other
- Set the min- and max ports for video/audio streams (UDP)
- If you want to access from another network to your Docker, you have to add the public server IP in the network interface
network_interfaces = [{name = "...", replaced_ip_address = "..."}] #default: []
maxport = 40250 #default: 0 minport = 40000 #default: 0 #Note: Two ports per user (for audio/video streams)
- portal.toml
- change ip_address or hostname to the public server address where the socket server can be reached
- change the port to 8082 for the socket.io server
- settings.json
- registration::Array[::Object]- Tells the plugin where to connect to within the container network. It’s an array and can serve multiple Simplifier instances (e.g. D-Q-P).
- host::String – Simplifier hostname in Docker network (e.g. “Simplifier”)
- port::Int – plugin API port of Simplifier (8085)
- simplifierInstance::String – Public domain of the target Simplifier instance (e.g. dcmr.simplifier.io)
- secret::String – Paste generated plugin secret from Simplifier Admin web-interface here
- http::Object – Tells Simplifier where to connect to the plugin
- interface::String – Listener of plugin connections for frontend (e.g. “0.0.0.0”)
- port::Int – Listener port
- exposedHost::String – Hostname of the Conferencing Docker (e.g. “conferencing”)
- timeoutSeconds::Int – Connection timeout from Simplifier to conferencing plugin (e.g. 60)
- mcu::Object – Internal conferencing settings
- clearRoomsIntervalMinutes::Int – Clear empty rooms automatically after given seconds (0=disabled)
- websocket::Object – socket.io for signaling
- port::Int – socket.io port
- registration::Array[::Object]- Tells the plugin where to connect to within the container network. It’s an array and can serve multiple Simplifier instances (e.g. D-Q-P).
Sample settings.json
{ "registration": [{ "host": "simplifier-dcmr", "port": 8085, "simplifierInstance": "simplifier-dcmr", "secret": "Generate a Secret under Plugins -> Plugin Secrets" }], "http": { "interface": "0.0.0.0", "port": 9877, "exposedHost": "conferencing" }, "timeoutSeconds": 60, "mcu": { "clearRoomsIntervalMinutes": 0 }, "websocket": { "port": 8092 } }
4. Add your SSL Certificate
To use HTTPS and/or secure socket.io connection, you should use your own certificate for each server. MCU works with PFX formatted certificates. Add your SSL certificates to …/data/certs.
You can also add .crt and .key files to this directory – the .pfx file is generated during initialization of the Docker.
5. Change the settings.conf in Simplifier Docker
- Update the following config file /opt/simplifier/appserver/settings.conf (or include.conf to override settings.conf) of Simplifier Docker.
- Start Simplifier Docker and search the settings.conf
- In the settings.conf navigate to the following code section and replace the “interface” line with 0.0.0.0 (see example). Now, the Conferencing Docker can register to Simplifier.
- After that, restart the Simplifier Docker
plugins { akka { enabled: true interface: "127.0.0.1" port: 5432 exposed_host: "127.0.0.1" actor_system: "AppServerPluginReceiver" } http { enabled: true interface: "0.0.0.0" <- Change to "0.0.0.0" port: 8085 }
6. Restart the Docker Container
If the config files have been updated, the Conferencing Docker can be restarted to apply all changes:
docker restart conferencing
Finally, the Conferencing Docker registers to Simplifier and installs the conferencing plugin. If the installation is complete, you can check the results by navigating to the Simplifier plugin section (web browser) and test the conferencing plugin.
AAC Codec and FFmpeg
If you want to use the audio codec aac for external stream output or mp4 format recording, you have to compile and deploy libfdk_aac manually.
- Step 1: Navigate to the Conferencing Docker: docker exec -ti conferencing bash
- Step 2: Execute the following command to install the libfdk_acc package: apt-get install libfdk-aac-dev
- Step 3: Navigate to {PROJPATH}/audio_agent directory and execute compile_ffmpeg_with_libfdkaac.sh
- Step 4: Copy all files from {PROJPATH}/audio_agent/ffmpeg_libfdkaac_lib/ to {PROJPATH}/audio_agent/lib/
- Step 5: Restart the Conferencing Docker
Without aac you can’t create .mp4 files, only MKV is available.