https://d226lax1qjow5r.cloudfront.net/blog/blogposts/open-source-video-conferencing/videoapi_opensource_1200x600.png

Open Source Videokonferenzen

Zuletzt aktualisiert am March 24, 2021

Lesedauer: 12 Minuten

Was ist Vonage Video (ehemals OpenTok / TokBox)?

Vonage Video (ehemals TokBox / OpenTok) ist eine API, die es Unternehmen ermöglicht, ein benutzerdefiniertes Videoerlebnis in jeder Mobil-, Web- oder Desktop-Anwendung zu erstellen.

Diese API unterstützt alle Video-Nutzungsfälle, wie z. B. 1:1-Videokonsultationen, Gruppen-Videochats oder groß angelegte Übertragungen an Tausende von Personen. Sie können jede Sitzung aufzeichnen und haben die Kontrolle darüber, wie Sie diese Dateien zusammenstellen und sicher an die von Ihnen gewählte Speichermethode übermitteln. Analysen ermöglichen es Ihnen, projektbezogene Zusammenfassungen in den Dashboards zu sehen oder sitzungsspezifische Analysen über die Erweiterte Einblicke API. Mit der Video API können Sie auf unsere standardmäßige, immer aktive Verschlüsselung und GDPR-konforme Funktionen aufbauen, um eine breite Palette an erweiterten Sicherheits-, Firewall-Kontroll-, regionalen Isolierungs- und Konformitätszertifikatsoptionen anzubieten. Der Vonage Video-Service bietet noch viele weitere Funktionen und Services. Weitere Informationen dazu finden Sie auf der Landing Page.

Was ist WebRTC?

Web Real-Time Communication (WebRTC) ist ein kostenloses und quelloffenes Projekt, das Webbrowsern und mobilen Applikationen eine Echtzeitkommunikation mit APIs ermöglicht. WebRTC ermöglicht die Audio- und Videokommunikation innerhalb Ihres Webbrowsers, indem es die Kommunikation direkt zwischen Peer-to-Peer ermöglicht, wodurch die Notwendigkeit entfällt, Plugins zu installieren oder native Anwendungen herunterzuladen.

Was ist Vonage Open Source Conferencing und Recording?

Vonage Open Source Conferencing and Recording ist Ihre private webbasierte Videokonferenzlösung. Sie basiert auf der Vonage Video API Platform (ehemals OpenTok API) und nutzt die Vonage Video SDKs und APIs. Sie können die Anwendung auf Ihren Servern bereitstellen, um Ihre Videokonferenzanwendung mit WebRTC zum Laufen zu bringen.

Wenn Sie diesen Service testen möchten, ohne Ihre eigenen Server zu hosten, können Sie gerne auf unsere Demo-Webseite. Diese Demoseite wird von einer Standardversion des Open-Source-Konferenz- und Aufzeichnungspakets gehostet, das Sie in unserem Github-Repository.

Wie kann ich meine eigene Videokonferenzsoftware hosten?

Voraussetzungen

Einrichtung

Um diesen Server zu betreiben, müssen Sie das Repository klonen und alle erforderlichen Bibliotheken von Drittanbietern installieren. Führen Sie in Ihrem Terminal die drei folgenden Befehle aus:

git clone git@github.com:opentok/opentok-rtc.git cd opentok-rtc npm install # Installs required packages

Minimale Konfiguration

Nachdem Sie alle erforderlichen Abhängigkeiten installiert haben, ist eine gewisse Konfiguration erforderlich. Das Mindeste, was Sie tun müssen, ist, Ihren API-Schlüssel und Ihr Geheimnis zu definieren, die Sie über das Vonage Video Dashboard erhalten können.

Um zu beginnen, müssen Sie eine config.json Datei erstellen, und der folgende Befehl kopiert eine vorkompilierte config.json Datei mit allen leeren Werten für Sie. Führen Sie also den Befehl aus:

cp config/example.json config/config.json

Wenn Sie diese Datei öffnen, sehen Sie in den ersten Zeilen das unten stehende Beispiel:

{
   "showTos": false,
   "meetingsRatePerMinute": 30,
   "OpenTok":{
      "apiKey": "<key>",
      "apiSecret": "<secret>",
      "publisherResolution": "640x480"
   },
   ...
}

Achten Sie darauf, dass Sie die <key> und <secret> durch Ihren Video API-Schlüssel und das entsprechende API-Geheimnis, das Sie über das Vonage Video Dashboard abgerufen haben.

Wenn Sie die Anmeldedaten nicht in Ihrer config.json Datei speichern möchten, können Sie stattdessen Umgebungsvariablen verwenden. Sie können die Umgebungsvariablen mit den folgenden Befehlen setzen, wobei Sie wiederum darauf achten, dass Sie <key> und <secret> durch Ihre Werte ersetzen:

export TB_API_KEY= export TB_API_KEY=

Betrieb des Servers

Bevor Sie den RTC-Server starten, müssen Sie sicherstellen, dass Redis läuft. Geben Sie dazu in Ihrem Terminal den folgenden Befehl ein:

redis-server

Der Basisbefehl zum Ausführen des Servers auf localhost mit allen Standardeinstellungen, einschließlich des Standardports (8123), ist der folgende Befehl:

node start

Es gibt jedoch noch einige andere Flags, die Sie zu Ihren Befehlen hinzufügen können, um eine individuellere Konfiguration zu erhalten. Nachfolgend finden Sie einige dieser Beispiele:

node server -p 8080 # To run the server on a different port to the default node server -d # To run the server as a daemon in the background

Wenn Sie SSL verwenden möchten, erwartet der Server, dass das SSL-Zertifikat den Namen serverCert.pem und die Datei des privaten SSL-Schlüssels den Namen serverKey.pem. Ein vorgeneriertes selbstsigniertes SSL-Zertifikatspaar finden Sie im sampleCerts Verzeichnis.

Das Flag -S teilt dem Server mit, dass er den Start eines sicheren Servers aktivieren muss, während das Flag -C <dir> zusammen mit dem Verzeichnisnamen dem Server mitteilt, wo er die Zertifikate finden kann. Um den Server mit diesen Zertifikaten zu starten, müssen Sie Folgendes eingeben:

node server -S -C sampleCerts

Ausführliche Informationen zu den verfügbaren Optionen erhalten Sie mit node server -h.

Zusätzliche Konfigurationsoptionen

Es gibt viele weitere Optionen für die Konfiguration, um Ihren Bedürfnissen gerecht zu werden. Diese Optionen können entweder in Ihrer config.json-Datei oder als Umgebungsvariable festgelegt werden. Die Schlüssel für diese Optionen werden in den folgenden Beispielen für jede Auswahl zuerst angegeben:

  • appName (config.json) / APP_NAME (Umgebungsvariable) -- Der Name der Anwendung, der an verschiedenen Stellen während des Lebenszyklus des Videoanrufs angezeigt wird. Der Standardwert ist "Vonage Video Conferencing".

  • introText (config.json) / INTRO_TEXT (Umgebungsvariable) -- Der Text, der unter dem Anwendungsnamen auf der ersten Seite angezeigt wird, auf der das precall Widget anzeigt. Der Standardwert ist "Welcome to Video Conferencing".

  • showTos (config.json) / SHOW_TOS (Umgebungsvariable) -- Ob die App das Dialogfeld mit den Nutzungsbedingungen anzeigt und den Benutzer auffordert, den Bedingungen zuzustimmen, bevor er einem Raum beitritt. Der Standardwert ist false.

  • meetingsRatePerMinute (config.json) / MEETINGS_RATE_PER_MINUTE (Umgebungsvariable) -- Bestimmt die maximale Anzahl neuer Meetings, die in einer Minute erstellt werden können. Benutzer können einer bereits bestehenden Besprechung beitreten. Andernfalls wird eine Meldung angezeigt, dass der Dienst im Moment nicht verfügbar ist. Wenn der Wert auf eine negative Zahl gesetzt wird, wird die Ratenbegrenzung ausgeschaltet und alle Besprechungen werden zugelassen. Wird dieser Wert auf 0 gesetzt, werden alle neuen Besprechungen abgelehnt. Der Standardwert ist -1.

  • minMeetingNameLength (config.json) / MIN_MEETING_NAME_LENGTH (Umgebungsvariable) -- Die Mindestlänge der erstellten Besprechungsnamen. Der Standardwert 0 bedeutet, dass es keine Mindestlänge gibt. (Sie können dies in der Konfigurationsdatei mit der minMeetingNameLength Einstellung festlegen.) Der Standardwert ist 0.

  • maxUsersPerRoom (config.json) / MAX_USERS_PER_ROOM (Umgebungsvariable) -- Die maximale Anzahl von Benutzern, die sich gleichzeitig in einem Raum aufhalten dürfen. Setzen Sie diesen Wert auf 0, den Standardwert, um eine beliebige Anzahl von Benutzern zuzulassen. Der Standardwert ist 0.

  • enableRoomLocking (config.json) / ENABLE_ROOM_LOCKING (Umgebungsvariable) -- Gibt an, ob der Befehl "Meeting sperren" in das Optionsmenü aufgenommen werden soll oder nicht. Mit diesem Befehl können Benutzer verhindern, dass neue Teilnehmer einer Besprechung beitreten. Der Standardwert ist true.

  • autoGenerateRoomName (config.json) / AUTO_GENERATE_ROOM_NAME (Umgebungsvariable) -- Ob der Raumname im Namen des Benutzers automatisch generiert werden soll oder nicht. Wenn diese Einstellung aktiviert ist, werden wir Haikunator verwenden, um Raumnamen für neue Räume zu generieren. Wenn diese Einstellung ausgeschaltet ist, werden die Benutzer aufgefordert, einen Raum-/Treffen-Namen einzugeben, wenn sie die Landing Page besuchen, und können erst dann weitermachen, wenn sie dies getan haben. Der Standardwert ist true.

  • enableEmoji (config.json) / ENABLE_EMOJI (Umgebungsvariable) -- Ob die Emoji-Unterstützung im Text-Chat-Widget aktiviert werden soll oder nicht.

Anpassen der Benutzeroberfläche

Informationen zur Anpassung der Vonage Open Source Conferencing and Recording UI finden Sie unter ANPASSUNG-UI.

Wie läuft mein Dienst?

Es gibt einen Endpunkt zur Überprüfung des Gesundheitszustands unter /server/health. Sie können diese URL laden, um zu prüfen, ob die Anwendung eine Verbindung zu allen erforderlichen externen Diensten herstellen kann. Bei Erfolg sendet dieser Endpunkt für die Zustandsprüfung eine Antwort mit dem HTTP-Statuscode 200 und einem JSON ähnlich dem folgenden:

{
  "name": "opentok-rtc",
  "version": "4.1.1",
  "gitHash": "312903cd043d5267bc11639718c47a9b313c1663",
  "opentok": true,
  "googleAuth": true,
  "status": "pass"
}

Ein Beispiel für eine fehlgeschlagene Gesundheitsprüfung sieht wie folgt aus:

{
  "name": "opentok-rtc",
  "version": "4.1.1",
  "git_hash": "312903cd043d5267bc11639718c47a9b313c1663",
  "opentok": false,
  "error": "OpenTok API server timeout exceeded.",
  "status": "fail"
}

Mehr lesen

Teilen Sie:

https://a.storyblok.com/f/270183/250x250/b052219541/greg-holmes.png
Greg HolmesVonage Ehemalige

Ehemaliger Ausbilder für Entwickler @Vonage. Kommt von einem PHP-Hintergrund, ist aber nicht auf eine Sprache beschränkt. Ein begeisterter Gamer und Raspberry-Pi-Enthusiast. Oft beim Bouldern in Kletterhallen anzutreffen.