# 📞 diskuz 通话 – Discourse 内的语音和视频通话（P2P，无需外部应用）

**URL:** https://meta.discourse.org/t/diskuz-call-voice-and-video-calls-inside-discourse-p2p-no-external-apps/398331
**Category:** Plugin
**Created:** [2026年三月13日 00:09 UTC](https://meta.discourse.org/t/diskuz-call-voice-and-video-calls-inside-discourse-p2p-no-external-apps/398331 "2026-03-13T00:09:01Z")
**Posts on this page:** 1
**Showing post:** 1

<div class="post-metadata">

### Author: ![derak](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/derak/32/214158_2.png) [@derak](https://meta.discourse.org/u/derak)
#### Post date: [2026年三月13日 00:09 UTC](https://meta.discourse.org/t/diskuz-call-voice-and-video-calls-inside-discourse-p2p-no-external-apps/398331/1 "2026-03-13T00:09:01Z")

</div>

| | | |
| --- | --- | --- |
| ℹ | **摘要** | **在 Discourse 中添加点对点语音和视频通话 (WebRTC)。** 可通过 **浮动按钮** 或 **1:1 聊天撰写框** 进行一对一通话；内置 **小部件** 和**呼叫界面 (UI)**。 **无需外部应用。** 您的 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](https://github.com/idiskuz/diskuz-call) |
| 📖 | **安装指南** | [如何在 Discourse 中安装插件](https://meta.discourse.org/t/install-plugins-in-discourse/19157) |
| 👥 | **diskuz Call 社区** | 访问 [diskuz.com](https://diskuz.com/c/diskuz-com/diskuz-call-plugin-for-discourse/120) 上的支持社区，了解此新插件。 |

 ![📞 diskuz Call – Discourse 内部的语音和视频通话 (P2P，无需外部应用)](https://global.discourse-cdn.com/meta/original/4X/6/6/0/6606eb0b1d6a7f01bc15ff07842958f403c638ac.jpeg)

### 功能特性

- **P2P 语音和视频 (WebRTC)** — Discourse 只处理信令（offer/answer, ICE）；它从不接收或存储音频/视频。 **STUN** （默认：Google）帮助两个浏览器互相找到对方；然后媒体直接在它们之间流动（真正的 P2P）。 **TURN** （可选，可在管理员设置 → ICE 服务器中配置）是一个中继：当直接 P2P 失败时（对称式 NAT、企业防火墙等），媒体流经 A → TURN 服务器 → B，以确保通话仍然有效。如果用户报告通话失败或单向音频，请添加 TURN。
- **浮动按钮** （右下角）— 打开一个小部件，用于输入用户名并开始通话。在主题撰写框或聊天窗口打开时隐藏。管理员可以全局禁用此功能。
- **1:1 聊天中的呼叫按钮** — 聊天撰写框中的图标，用于与另一位用户开始通话。管理员可以全局禁用此功能。启用后仅对允许的组可见。
- **基于组的访问** — 只有配置组中的用户才能看到和使用 diskuz Call。可选的“被呼叫者必须关注呼叫者”（需要 [Discourse Follow](https://meta.discourse.org/t/discourse-follow/110579)）。
- **单独的“允许视频”组** — 控制谁可以在通话期间打开摄像头。
- **可配置的铃声** — 来电声音：无、默认、叮咚、响铃、聊天、自定义（最多 10 个 MP3 URL；用户在小部件中选择一个）或内置的替代预设。此外，Discourse 通知（铃铛图标）会显示“正在呼叫您”，对于未接来电显示“未接来电”及时间。
- **小部件** — 两个页面：“呼叫朋友”（主页）和通知（已接收、已发送、最近、未接；每个标签页最多 10 个；用户名可点击重新呼叫）。桌面端：顶部栏可拖动。移动端：全屏。
- **通话中** — 显示通话时长、静音、扬声器、视频开启/关闭、模糊（桌面/Android）、移动端的耳朵模式（深色覆盖层；连点 3 次解锁）。用户状态（在线、忙碌、离线）在浏览器中显示；忙碌/离线时可自动拒绝来电。如果用户切换到另一个标签页，将启动 60 秒计时器；如果用户未返回，通话将结束。
- **本地化** — 英语和意大利语（客户端和服务器）。

**状态：** Beta。对于通话失败或单向音频，请在管理员 → 插件 → ICE 服务器中配置 TURN。

### 配置

1. **安装** — 添加插件（例如，通过 `app.yml` 钩子或手动添加到插件目录）：
  - `git clone https://github.com/idiskuz/diskuz-call.git`
  - 重建应用（例如 `./launcher rebuild app`）。

2. **启用** — 管理员 → 插件：启用 **diskuz Call** （如果已列出）。管理员 → 设置 → 插件：启用 **启用 diskuz Call** 。
3. **访问** — 将 **谁可以看到并使用 diskuz Call** 设置为所需的组（例如 `1|2|3` 代表管理员、版主、员工）。
4. **可选** — 配置 **显示浮动按钮** / **显示聊天按钮** 、 **要求被呼叫者关注呼叫者** （需要 [Discourse Follow](https://meta.discourse.org/t/discourse-follow/110579)）、 **将来电声音** 、 **自定义铃声** 或 **替代铃声** 、 **可以启用视频的组** 、 **主色** ，以及（如果需要处理 NAT/防火墙） **ICE 服务器** （TURN JSON）。

**要求：** Discourse（使用内置的实时消息功能进行信令）。可选：[Discourse Follow](https://meta.discourse.org/t/discourse-follow/110579)（用于“被呼叫者必须关注呼叫者”）。支持 WebRTC 的浏览器、麦克风（视频还需要摄像头）。

### 设置

| 名称 | 描述 |
| --- | --- |
| **启用 diskuz Call** | 插件的主开关。 |
| **谁可以看到并使用 diskuz Call** | 组列表（例如，按 ID 分组的管理员、版主、员工）。只有这些用户才能看到插件并能拨打/接听电话。 |
| **要求被呼叫者关注呼叫者** | 启用时（需要 [Discourse Follow](https://meta.discourse.org/t/discourse-follow/110579)），被呼叫者必须关注呼叫者才能接听电话。 |
| **显示浮动按钮** | 开启：浮动按钮仅对允许的组可见。关闭：对所有人隐藏。 |
| **显示聊天按钮** | 开启：1:1 聊天中的呼叫按钮仅对允许的组可见。关闭：对所有人隐藏。 |
| **可以启用视频的组** | 在通话期间可以控制谁可以使用视频按钮的组列表。 |
| **主色** | 用于按钮和强调色的十六进制颜色（例如 #13c98c）。 |
| **将来电声音** | 无、默认、叮咚、响铃、聊天、自定义或替代。 |
| **自定义铃声 1–10** | MP3 URL。在“声音”设置为自定义时使用；用户在小部件中选择一个。 |
| **替代铃声** | 当“声音”设置为替代时的预设（例如，柔和、经典、现代、festivo、marimba、relax1–5）。 |
| **ICE 服务器** | STUN/TURN 的可选 JSON 数组。留空 = 仅 Google STUN。 |
| **调试日志** | 开启时，浏览器控制台 (F12) 中会出现 `[diskuz-call]` 消息。用于支持；在生产环境中禁用。 |

* * *

 ![移动端横屏模式](https://global.discourse-cdn.com/meta/original/4X/0/7/4/074cd58fe6bf9222e415eede7ab1bb5b4acebd8d.jpeg)

 ![UI 呼叫](https://global.discourse-cdn.com/meta/original/4X/5/0/3/503a660c6d03b2ed8dafae431af284a2d8ca9008.jpeg)

 ![自定义铃声](https://global.discourse-cdn.com/meta/original/4X/a/0/9/a095b2ee3fb1ce1c50cf05e5553e949452308db3.jpeg)

 ![最近通话](https://global.discourse-cdn.com/meta/original/4X/5/5/b/55bd8411945217641bae6a395305f7009fd4aa43.jpeg)

 ![主小部件 diskuz Call 桌面端带动态背景](https://global.discourse-cdn.com/meta/original/4X/a/7/9/a7907cb48f15ca8908480dc490aa55928939afd5.png)

 ![桌面端视频通话（标准小部件）](https://global.discourse-cdn.com/meta/original/4X/f/1/1/f1107067facd697e15f7a582becd4daf3a7e3fab.jpeg)

 ![背景中的颜色动画](https://global.discourse-cdn.com/meta/original/4X/d/e/a/dea3b9dafbc85ffa5fb228d0f861bf972f554b3d.png)

**作者：** [diskuz.com](http://diskuz.com), Cristian Deraco  
**鸣谢：** 概念、功能和设计由 Cristian Deraco ([diskuz.com](http://diskuz.com)) 提供。使用 AI 辅助开发实现。  
**版本：** 0.4.0-beta

_这不是官方 Discourse 插件。_

**非常激动能与大家分享——diskuz Call 终于上线了！迫不及待想听听大家的想法** 🤩

---

_[View the full topic](https://meta.discourse.org/t/diskuz-call-voice-and-video-calls-inside-discourse-p2p-no-external-apps/398331)._
