📞 diskuz Call – Sprach- und Videoanrufe in Discourse (P2P, keine externen Apps)

:information_source: Zusammenfassung Fügt Peer-to-Peer-Sprach- und Videoanrufe (WebRTC) innerhalb von Discourse hinzu. Eins-zu-eins-Anrufe über eine schwebende Schaltfläche oder aus dem 1:1-Chat-Komponisten; integriertes Widget und Anruf-UI. Keine externen Anwendungen. Ihr Discourse-Server übernimmt nur das Signalisieren (keine Medien). Audio/Video fließt, wann immer möglich, direkt zwischen den beiden Browsern (P2P); Sie können optionale TURN-Server in Admin hinzufügen, damit bei einem Fehlschlag von direktem P2P (z.B. strenges NAT/Firewall) Medien über TURN weitergeleitet werden und der Anruf trotzdem funktioniert.
:hammer_and_wrench: Repository-Link GitHub - idiskuz/diskuz-call: Voice calls (WebRTC) for Discourse. P2P calls between users, built-in UI. Created for diskuz.com. · GitHub
:open_book: Installationsanleitung Plugins in Discourse installieren
:busts_in_silhouette: Community diskuz Call Support-Community auf diskuz.com fĂĽr dieses neue Plugin.

Funktionen

  • P2P-Sprache und Video (WebRTC) — Discourse ĂĽbernimmt nur das Signalisieren (Offer/Answer, ICE); es empfängt oder speichert niemals Audio/Video. STUN (Standard: Google) hilft den beiden Browsern, sich gegenseitig zu finden; Medien flieĂźen dann direkt zwischen ihnen (echtes P2P). TURN (optional, konfigurierbar unter Admin → ICE-Server) ist ein Relay: Wenn direktes P2P fehlschlägt (symmetrisches NAT, Unternehmens-Firewall usw.), flieĂźen Medien ĂĽber A → TURN-Server → B, sodass der Anruf trotzdem funktioniert. FĂĽgen Sie TURN hinzu, wenn Benutzer von fehlgeschlagenen Anrufen oder einseitigem Audio berichten.
  • Schwebende Schaltfläche (unten rechts) — Ă–ffnet ein Widget, um einen Benutzernamen einzugeben und einen Anruf zu starten. Wird ausgeblendet, wenn der Themen-Komponist oder der Chat geöffnet ist. Der Admin kann diese Funktion auf der gesamten Seite deaktivieren.
  • Anrufschaltfläche im 1:1-Chat — Symbol im Chat-Komponisten, um einen Anruf mit dem anderen Benutzer zu starten. Der Admin kann diese Funktion auf der gesamten Seite deaktivieren. Nur fĂĽr zugelassene Gruppen sichtbar, wenn aktiviert.
  • Gruppenbasierter Zugriff — Nur Benutzer in konfigurierten Gruppen sehen und verwenden diskuz Call. Optional „Angerufener muss Anrufer folgen“ (erfordert Discourse Follow).
  • Separate Gruppen fĂĽr „Video erlaubt“ — Steuert, wer während eines Anrufs die Kamera einschalten kann.
  • Konfigurierbarer Klingelton — Ton bei eingehendem Anruf: keine, Standard, ding, glocke, chat, benutzerdefiniert (bis zu 10 MP3-URLs; Benutzer wählt einen im Widget aus) oder eingebaute alternative Voreinstellungen. Separat zeigen Discourse-Benachrichtigungen (Glockensymbol) „ruft Sie an“ fĂĽr eingehende Anrufe und „Verpasster Anruf“ mit Uhrzeit fĂĽr verpasste Anrufe an.
  • Widget — Zwei Seiten: „Einen Freund anrufen“ (Startseite) und Benachrichtigungen (Empfangen, Gesendet, Letzte, Verpasst; bis zu 10 pro Registerkarte; Benutzernamen sind anklickbar, um erneut anzurufen). Desktop: oben ziehbar. Mobil: Vollbild.
  • Während eines Anrufs — Dauer, stummschalten, Lautsprecher, Video ein/aus, Unschärfe (Desktop/Android), Ohr-Modus auf Mobilgeräten (dunkle Ăśberlagerung; 3x tippen zum Entsperren). Benutzerstatus (Online, beschäftigt, offline) im Browser; eingehende Anrufe können bei beschäftigt/offline automatisch abgelehnt werden. Wenn der Benutzer zu einer anderen Registerkarte wechselt, beginnt ein 60-Sekunden-Timer; wenn er nicht zurĂĽckkehrt, endet der Anruf.
  • Lokalisierung — Englisch und Italienisch (Client und Server).

Status: Beta. Bei fehlgeschlagenen Anrufen oder einseitigem Audio konfigurieren Sie TURN unter Admin → Plugins → ICE-Server.

Konfiguration

  1. Installieren — Plugin hinzufügen (z.B. über app.yml-Hooks oder manuell im Plugins-Verzeichnis):
    • git clone https://github.com/idiskuz/diskuz-call.git
    • App neu erstellen (z.B. ./launcher rebuild app).
  2. Aktivieren — Admin → Plugins: diskuz Call aktivieren (falls aufgelistet). Admin → Einstellungen → Plugins: Enable diskuz Call aktivieren.
  3. Zugriff — Stellen Sie Who can see and use diskuz Call auf die gewünschten Gruppen ein (z.B. 1|2|3 für Admins, Moderatoren, Staff).
  4. Optional — Show floating button / Show chat button, Require the callee to follow the caller (mit Discourse Follow), Sound for incoming calls, Custom ringtones oder Alternative ringtone, Groups that can enable video, Primary color und ICE servers (TURN JSON) konfigurieren, falls für NAT/Firewall erforderlich.

Anforderungen: Discourse (verwendet integrierte Echtzeit-Nachrichtenübermittlung für Signalisierung). Optional: Discourse Follow (für „Angerufener muss Anrufer folgen“). Browser mit WebRTC, Mikrofon (und Kamera für Video).

Einstellungen

Name Beschreibung
Enable diskuz Call Hauptschalter fĂĽr das Plugin.
Who can see and use diskuz Call Gruppenliste (z.B. Admins, Moderatoren, Staff nach ID). Nur diese Benutzer sehen das Plugin und können Anrufe tätigen/empfangen.
Require the callee to follow the caller Wenn aktiviert (mit Discourse Follow), muss der Angerufene dem Anrufer folgen, um Anrufe zu empfangen.
Show floating button AN: Schwebende Schaltfläche nur für zugelassene Gruppen sichtbar. AUS: Für alle ausgeblendet.
Show chat button AN: Anrufschaltfläche im 1:1-Chat nur für zugelassene Gruppen sichtbar. AUS: Für alle ausgeblendet.
Groups that can enable video Gruppenliste, wer die Video-Schaltfläche während eines Anrufs verwenden kann.
Primary color Hex-Farbe (z.B. #13c98c) für Schaltfläche und Akzente.
Sound for incoming calls keine, Standard, ding, glocke, chat, benutzerdefiniert oder alternativ.
Custom ringtones 1–10 MP3-URLs. Wird verwendet, wenn Sound benutzerdefiniert ist; Benutzer wählt einen im Widget aus.
Alternative ringtone Voreinstellung, wenn Sound alternativ ist (z.B. soft, classic, modern, festivo, marimba, relax1–5).
ICE servers Optionale JSON-Array fĂĽr STUN/TURN. Leer = nur Google STUN.
Debug log Wenn AN, \[diskuz-call\]-Meldungen in der Browserkonsole (F12). FĂĽr Support; in der Produktion deaktivieren.

Autoren: diskuz.com, Cristian Deraco
Credits: Konzept, Funktionen und Design von Cristian Deraco (diskuz.com). Implementierung mit KI-gestĂĽtzter Entwicklung.
Version: 0.4.0-beta

Dies ist kein offizielles Discourse-Plugin.

Super gespannt, dies mit euch allen zu teilen – diskuz Call ist endlich live! Ich kann es kaum erwarten zu hören, was ihr denkt :star_struck:

2 „Gefällt mir“