Home / Technology
Technology
openvocs is written mostly in C and runs as a set of small services on Linux. The client is a web application in the browser.
Many-to-Many
In a control room, many people talk to many. Phone and radio were not built for that.
Architecture
Three parts, separated by task.
System library
Its own C library with an independent WebRTC gateway.
Media backend
Microservices for conferencing. Mixing runs on the server in isolated processes, with latency below 1 ms.
Command and control
Server for business logic, roles and loops. The parts exchange JSON events.
Services
What runs on the server
Each service is a systemd unit. Mixers scale through additional instances.
- ov_mc_vocs
- Business logic and web server
- ov_mc_vad
- Voice activity detection
- ov_mc_ice_proxy
- WebRTC and ICE endpoint for audio routing
- ov_mc_mixer@
- Mixer, scalable through instances
- ov_mc.target
- starts all services
Client and security
In the browser, encrypted
The client needs no installation. If the connection drops, it reconnects on its own.
- Client
- HTML, CSS and JavaScript without a framework
- Signaling
- Secure WebSockets, stateless and therefore with automatic reconnects
- Audio
- WebRTC, encrypted with DTLS/SRTP
- Delivery
- Container (Docker, Podman) or .deb and .rpm package, air-gap capable
- Source code
- Apache-2.0