
Teilen Sie:
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.
Open Source Videokonferenzen
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:
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:
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:
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:
Der Basisbefehl zum Ausführen des Servers auf localhost mit allen Standardeinstellungen, einschließlich des Standardports (8123), ist der folgende Befehl:
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:
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:
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 dasprecallWidget 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 istfalse.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 derminMeetingNameLengthEinstellung 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 isttrue.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 isttrue.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"
}