📞 diskuz Call – Appels vocaux et vidéo dans Discourse (P2P, sans applications externes)

:information_source: Résumé Ajoute les appels vocaux et vidéo peer-to-peer (WebRTC) à l’intérieur de Discourse. Appels en tête-à-tête à partir d’un bouton flottant ou du composeur de chat 1:1 ; widget et interface utilisateur d’appel intégrés. Aucune application externe. Votre serveur Discourse gère uniquement la signalisation (pas de média). L’audio/vidéo passe directement entre les deux navigateurs (P2P) lorsque c’est possible ; vous pouvez ajouter des serveurs TURN optionnels dans l’Administration afin que lorsque le P2P direct échoue (par exemple, NAT/pare-feu strict), le média est relaisé via TURN et l’appel fonctionne toujours.
:hammer_and_wrench: Lien vers le dépôt GitHub - idiskuz/diskuz-call: Voice calls (WebRTC) for Discourse. P2P calls between users, built-in UI. Created for diskuz.com. · GitHub
:open_book: Guide d’installation Comment installer des plugins dans Discourse
:busts_in_silhouette: Communauté diskuz Call Communauté d’assistance sur diskuz.com pour ce nouveau plugin.

Fonctionnalités

  • Voix et vidĂ©o P2P (WebRTC) — Discourse ne gère que la signalisation (offre/rĂ©ponse, ICE) ; il ne reçoit ni ne stocke jamais l’audio/vidĂ©o. STUN (par dĂ©faut : Google) aide les deux navigateurs Ă  se trouver ; le mĂ©dia circule ensuite directement entre eux (vĂ©ritable P2P). TURN (optionnel, configurable dans Administration → Serveurs ICE) est un relais : lorsque le P2P direct Ă©choue (NAT symĂ©trique, pare-feu d’entreprise, etc.), le mĂ©dia passe A → Serveur TURN → B afin que l’appel fonctionne toujours. Ajoutez TURN si les utilisateurs signalent des appels Ă©chouĂ©s ou un audio unidirectionnel.
  • Bouton flottant (en bas Ă  droite) — Ouvre un widget pour taper un nom d’utilisateur et dĂ©marrer un appel. MasquĂ© lorsque le composeur de sujet ou le chat est ouvert. L’administrateur peut le dĂ©sactiver sur tout le site.
  • Bouton d’appel dans le chat 1:1 — IcĂ´ne dans le composeur de chat pour dĂ©marrer un appel avec l’autre utilisateur. L’administrateur peut le dĂ©sactiver sur tout le site. Visible uniquement pour les groupes autorisĂ©s lorsqu’il est activĂ©.
  • Accès basĂ© sur les groupes — Seuls les utilisateurs des groupes configurĂ©s voient et utilisent diskuz Call. Option « le destinataire doit suivre l’appelant » (nĂ©cessite Discourse Follow).
  • Groupes sĂ©parĂ©s « vidĂ©o autorisĂ©e » — ContrĂ´lez qui peut activer la camĂ©ra pendant un appel.
  • Sonnerie configurable — Son lorsqu’un appel arrive : aucun, par dĂ©faut, ding, cloche, chat, personnalisĂ© (jusqu’à 10 URL MP3 ; l’utilisateur en choisit une dans le widget), ou prĂ©rĂ©glages alternatifs intĂ©grĂ©s. SĂ©parĂ©ment, les notifications Discourse (icĂ´ne de cloche) indiquent « vous appelle » pour les appels entrants et « Appel manquĂ© » avec l’heure pour les appels manquĂ©s.
  • Widget — Deux pages : « Appeler un ami » (accueil) et Notifications (Reçus, EnvoyĂ©s, RĂ©cents, ManquĂ©s ; jusqu’à 10 par onglet ; noms d’utilisateur cliquables pour rappeler). Bureau : dĂ©plaçable par la barre supĂ©rieure. Mobile : plein Ă©cran.
  • Pendant un appel — DurĂ©e, sourdine, haut-parleur, vidĂ©o activĂ©e/dĂ©sactivĂ©e, flou (bureau/Android), mode oreille sur mobile (superposition sombre ; appuyez 3 fois pour dĂ©verrouiller). Statut de l’utilisateur (En ligne, OccupĂ©, Hors ligne) dans le navigateur ; les appels entrants peuvent ĂŞtre automatiquement rejetĂ©s lorsque l’utilisateur est OccupĂ©/Hors ligne. Si l’utilisateur passe Ă  un autre onglet, un compte Ă  rebours de 60 secondes dĂ©marre ; s’il ne revient pas, l’appel se termine.
  • Localisation — Anglais et Italien (client et serveur).

Statut : Bêta. Pour les appels échoués ou l’audio unidirectionnel, configurez TURN dans Administration → Plugins → Serveurs ICE.

Configuration

  1. Installation — Ajoutez le plugin (par exemple, via les hooks app.yml ou manuellement dans le répertoire des plugins) :
    • git clone https://github.com/idiskuz/diskuz-call.git
    • Reconstruisez l’application (par exemple, ./launcher rebuild app).
  2. Activation — Administration → Plugins : activez diskuz Call (s’il est listé). Administration → Paramètres → Plugins : activez Activer diskuz Call.
  3. Accès — Définissez Qui peut voir et utiliser diskuz Call sur les groupes souhaités (par exemple, 1|2|3 pour les administrateurs, modérateurs, personnel).
  4. Optionnel — Configurez Afficher le bouton flottant / Afficher le bouton de chat, Exiger que le destinataire suive l’appelant (avec Discourse Follow), Son pour les appels entrants, Sonneries personnalisées ou Sonnerie alternative, Groupes pouvant activer la vidéo, Couleur principale, et Serveurs ICE (JSON TURN) si nécessaire pour le NAT/pare-feu.

Exigences : Discourse (utilise la messagerie en temps réel intégrée pour la signalisation). Optionnel : Discourse Follow (pour « le destinataire doit suivre l’appelant »). Navigateur avec WebRTC, microphone (et caméra pour la vidéo).

Paramètres

Nom Description
Activer diskuz Call Interrupteur principal pour le plugin.
Qui peut voir et utiliser diskuz Call Liste des groupes (par exemple, administrateurs, modérateurs, personnel par ID). Seuls ces utilisateurs voient le plugin et peuvent passer/recevoir des appels.
Exiger que le destinataire suive l’appelant Lorsqu’il est activé (avec Discourse Follow), le destinataire doit suivre l’appelant pour recevoir des appels.
Afficher le bouton flottant ACTIVÉ : bouton flottant visible uniquement pour les groupes autorisés. DÉSACTIVÉ : masqué pour tout le monde.
Afficher le bouton de chat ACTIVÉ : bouton d’appel dans le chat 1:1 visible uniquement pour les groupes autorisés. DÉSACTIVÉ : masqué pour tout le monde.
Groupes pouvant activer la vidéo Liste des groupes pour ceux qui peuvent utiliser le bouton Vidéo pendant un appel.
Couleur principale Couleur hexadécimale (par exemple, #13c98c) pour le bouton et les accents.
Son pour les appels entrants aucun, par défaut, ding, cloche, chat, personnalisé ou alternatif.
Sonneries personnalisées 1–10 URL MP3. Utilisées lorsque le son est personnalisé ; l’utilisateur en choisit une dans le widget.
Sonnerie alternative Préréglage lorsque le son est alternatif (par exemple, doux, classique, moderne, festivo, marimba, relax1–5).
Serveurs ICE Tableau JSON optionnel pour STUN/TURN. Vide = Google STUN uniquement.
Journal de débogage Lorsqu’il est ACTIVÉ, messages \[diskuz-call\] dans la console du navigateur (F12). Pour le support ; désactiver en production.

Auteurs : diskuz.com, Cristian Deraco
Crédits : Concept, fonctionnalités et conception par Cristian Deraco (diskuz.com). Implémentation avec développement assisté par IA.
Version : 0.4.0-beta

Ceci n’est pas un plugin Discourse officiel.

Très heureux de partager ceci avec vous tous — diskuz Call est enfin en ligne ! Hâte d’avoir vos avis :star_struck:

2 « J'aime »