Start / Technologie
Technologie
openvocs ist überwiegend in C geschrieben und läuft als Satz kleiner Dienste auf Linux. Der Client ist eine Web-Anwendung im Browser.
Many-to-Many
In einer Leitstelle sprechen viele mit vielen. Telefon und Funk sind dafür nicht gebaut.
Architektur
Drei Teile, getrennt nach Aufgabe.
Systembibliothek
Eigene Bibliothek in C mit einem unabhängigen WebRTC-Gateway.
Media-Backend
Microservices für Konferenzen. Das Mixing läuft auf dem Server in isolierten Prozessen, mit einer Latenz unter 1 ms.
Command and Control
Server für Geschäftslogik, Rollen und Loops. Die Teile tauschen JSON-Events aus.
Dienste
Was auf dem Server läuft
Jeder Dienst ist eine systemd-Unit. Mixer lassen sich über weitere Instanzen skalieren.
- ov_mc_vocs
- Geschäftslogik und Webserver
- ov_mc_vad
- Sprachaktivitätserkennung
- ov_mc_ice_proxy
- WebRTC- und ICE-Endpunkt für das Audio-Routing
- ov_mc_mixer@
- Mixer, skalierbar über Instanzen
- ov_mc.target
- startet alle Dienste
Client und Sicherheit
Im Browser, verschlüsselt
Der Client braucht keine Installation. Bricht die Verbindung ab, baut er sie selbst wieder auf.
- Client
- HTML, CSS und JavaScript ohne Framework
- Signalisierung
- Sichere WebSockets, zustandslos und dadurch mit automatischer Wiederverbindung
- Audio
- WebRTC, verschlüsselt mit DTLS/SRTP
- Auslieferung
- Container (Docker, Podman) oder .deb- und .rpm-Paket, Air-Gap-fähig
- Quellcode
- Apache-2.0