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.

1 : 1TelefonZwei Stellen. Wer eine dritte braucht, legt auf und wählt neu.
1 : nFunkEine Stelle spricht, alle anderen warten. Ein Kanal pro Gerät.
n : mVoice LoopsJede Stelle hört mehrere Loops zugleich und spricht in den, den sie braucht. Mehrere dürfen gleichzeitig sprechen.

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.

Quellcode auf GitHub

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