| Резюме | Добавляет голосовые и видеозвонки «точка-точка» (WebRTC) внутри Discourse. Звонки один на один через плавающую кнопку или из компонера чата 1:1; встроенный виджет и интерфейс звонка. Без внешних приложений. Ваш сервер Discourse выполняет только сигнализацию (без передачи медиа). Аудио/видео передаются напрямую между двумя браузерами (P2P), когда это возможно; вы можете добавить опциональные TURN-серверы в админ-панели, чтобы в случае сбоя прямого P2P (например, из-за строгого NAT или фаервола) медиа передавалось через TURN-сервер, и звонок всё равно работал. | |
| Ссылка на репозиторий | GitHub - idiskuz/diskuz-call: Voice calls (WebRTC) for Discourse. P2P calls between users, built-in UI. Created for diskuz.com. · GitHub | |
| Руководство по установке | Как установить плагины в Discourse | |
| Сообщество diskuz Call | Поддержка сообщества на diskuz.com для этого нового плагина. |
Возможности
- P2P голос и видео (WebRTC) — Discourse обрабатывает только сигнализацию (offer/answer, ICE); он никогда не получает и не хранит аудио/видео. STUN (по умолчанию: Google) помогает браузерам найти друг друга; затем медиа передаётся напрямую между ними (истинный P2P). TURN (опционально, настраивается в Админ → ICE-серверы) — это ретранслятор: если прямой P2P не удаётся (симметричный NAT, корпоративный фаервол и т.д.), медиа идёт A → TURN-сервер → B, и звонок всё равно работает. Добавьте TURN, если пользователи сообщают о неудачных звонках или одностороннем аудио.
- Плавающая кнопка (в правом нижнем углу) — Открывает виджет для ввода имени пользователя и начала звонка. Скрыта, когда открыт компонент темы или чат. Администратор может отключить её на всём сайте.
- Кнопка звонка в чате 1:1 — Иконка в компоненте чата для начала звонка с другим пользователем. Администратор может отключить её на всём сайте. Видна только разрешённым группам при включении.
- Доступ на основе групп — Только пользователи из настроенных групп видят и используют diskuz Call. Опционально: «получатель должен подписаться на звонящего» (требуется Discourse Follow).
- Отдельные группы «видео разрешено» — Контроль того, кто может включить камеру во время звонка.
- Настраиваемый звонок — Звук при входящем вызове: нет, по умолчанию, ding, bell, chat, пользовательский (до 10 URL MP3; пользователь выбирает один в виджете) или встроенные альтернативные пресеты. Отдельно: уведомления Discourse (иконка колокольчика) показывают «звонит вам» для входящих и «Пропущенный звонок» со временем для пропущенных.
- Виджет — Две страницы: «Позвонить другу» (главная) и Уведомления (Полученные, Отправленные, Недавние, Пропущенные; до 10 на вкладке; имена пользователей кликабельны для повторного звонка). На рабочем столе: перетаскиваемый по верхней панели. На мобильных: полноэкранный.
- Во время звонка — Длительность, отключение микрофона, динамик, включение/выключение видео, размытие (рабочий стол/Android), режим наушников на мобильных (тёмное наложение; тройное нажатие для разблокировки). Статус пользователя (В сети, Занят, Не в сети) в браузере; входящие звонки могут автоматически отклоняться при статусе Занят/Не в сети. Если пользователь переключается на другую вкладку, запускается таймер на 60 секунд; если он не возвращается, звонок завершается.
- Локализация — Английский и итальянский (клиент и сервер).
Статус: Бета. При неудачных звонках или одностороннем аудио настройте TURN в Админ → Плагины → ICE-серверы.
Настройка
- Установка — Добавьте плагин (например, через хуки
app.ymlили вручную в директорию плагинов):git clone https://github.com/idiskuz/diskuz-call.git- Пересоберите приложение (например,
./launcher rebuild app).
- Включение — Админ → Плагины: включите diskuz Call (если указан). Админ → Настройки → Плагины: включите Включить diskuz Call.
- Доступ — Установите Кто может видеть и использовать diskuz Call в нужные группы (например,
1|2|3для администраторов, модераторов, сотрудников). - Опционально — Настройте Показывать плавающую кнопку / Показывать кнопку чата, Требовать, чтобы получатель подписывался на звонящего (с Discourse Follow), Звук для входящих вызовов, Пользовательские звонки или Альтернативный звонок, Группы, которым разрешено включать видео, Основной цвет и ICE-серверы (JSON для TURN), если необходимо для NAT/фаервола.
Требования: Discourse (использует встроенную систему мгновенных сообщений для сигнализации). Опционально: Discourse Follow (для «получатель должен подписаться на звонящего»). Браузер с поддержкой WebRTC, микрофон (и камера для видео).
Настройки
| Имя | Описание |
|---|---|
| Включить diskuz Call | Главный переключатель плагина. |
| Кто может видеть и использовать diskuz Call | Список групп (например, администраторы, модераторы, сотрудники по ID). Только эти пользователи видят плагин и могут совершать/принимать звонки. |
| Требовать, чтобы получатель подписывался на звонящего | При включении (с Discourse Follow) получатель должен подписаться на звонящего, чтобы принимать звонки. |
| Показывать плавающую кнопку | ВКЛ: плавающая кнопка видна только разрешённым группам. ВЫКЛ: скрыта для всех. |
| Показывать кнопку чата | ВКЛ: кнопка звонка в чате 1:1 видна только разрешённым группам. ВЫКЛ: скрыта для всех. |
| Группы, которым разрешено включать видео | Список групп, которые могут использовать кнопку Видео во время звонка. |
| Основной цвет | HEX-цвет (например, #13c98c) для кнопки и акцентов. |
| Звук для входящих вызовов | нет, по умолчанию, ding, bell, chat, пользовательский или альтернативный. |
| Пользовательские звонки 1–10 | URL MP3. Используются, когда звук установлен как пользовательский; пользователь выбирает один в виджете. |
| Альтернативный звонок | Пресет, когда звук установлен как альтернативный (например, soft, classic, modern, festivo, marimba, relax1–5). |
| ICE-серверы | Опциональный JSON-массив для STUN/TURN. Пусто = только Google STUN. |
| Журнал отладки | При включении: сообщения [diskuz-call] в консоли браузера (F1). Для поддержки; отключите в продакшене. |
Авторы: diskuz.com, Кристиан Дерако
Благодарности: Концепция, функции и дизайн — Кристиан Дерако (diskuz.com). Реализация с помощью разработки с поддержкой ИИ.
Версия: 0.4.0-beta
Это не официальный плагин Discourse.
Я с радостью посмотрю, как виджет выглядит на вашем сайте. Вы можете установить основной цвет diskuz Call прямо в панели опций плагина ![]()
Очень рад поделиться этим со всеми вами — diskuz Call наконец-то запущен! Не могу дождаться ваших отзывов ![]()







