59 lines
1.7 KiB
Markdown
59 lines
1.7 KiB
Markdown
# WebRTC 音视频客服 / WebRTC(coturn + janus)
|
||
|
||
组合关键字 `webrtc` = `coturn` + `janus` 两个组件,也可单独使用。
|
||
|
||
## 使用示例
|
||
|
||
```bash
|
||
# WebRTC 中间件
|
||
./start.sh webrtc middleware
|
||
|
||
# WebRTC 全栈(含 bytedesk 应用)
|
||
./start.sh webrtc all
|
||
|
||
# 呼叫中心 + WebRTC + 可观测性
|
||
./start.sh call webrtc all obs
|
||
|
||
# 单独启动 coturn
|
||
./start.sh middleware coturn
|
||
|
||
# 停止(关键字保持一致)
|
||
./stop.sh webrtc down
|
||
```
|
||
|
||
## 组件说明
|
||
|
||
| 关键字 | compose 文件(位于 compose/) | 服务名 | 镜像 | 默认端口 |
|
||
| --- | --- | --- | --- | --- |
|
||
| coturn | compose/compose-coturn.yaml | bytedesk-coturn | coturn/coturn:4.6.3 | 13478(STUN/TURN)、15349(TLS)、49160-49200(UDP 中继) |
|
||
| janus | compose/compose-janus.yaml | bytedesk-janus | bytedesk/janus | 18089(HTTP API)、18188(WebSocket)、17188(Admin) |
|
||
|
||
## TURN 凭据
|
||
|
||
`.env` 中配置(应用侧与 janus 共用):
|
||
|
||
```bash
|
||
COTURN_REALM=bytedesk.local
|
||
COTURN_USER=bytedesk
|
||
COTURN_PASS=bytedesk123
|
||
JANUS_ADMIN_SECRET=janusoverlord
|
||
```
|
||
|
||
## 健康检查
|
||
|
||
```bash
|
||
# janus(HTTP API 需 POST 到 /janus,直接 GET 返回 404 属正常)
|
||
curl -sS -X POST -H 'Content-Type: application/json' \
|
||
--data '{"janus":"ping","transaction":"check"}' \
|
||
http://localhost:18089/janus
|
||
|
||
# coturn
|
||
docker exec coturn-bytedesk turnutils_stunclient -p 3478 127.0.0.1
|
||
```
|
||
|
||
## 说明
|
||
|
||
- janus 不再声明对 coturn 的 depends_on(一镜像一文件后避免跨文件依赖),均已配置健康检查与 `restart: always` 自愈
|
||
- 应用侧 WebRTC 配置(`BYTEDESK_WEBRTC_JANUS_*`)默认指向 `bytedesk-janus` / `bytedesk-coturn` 服务名,无需额外配置
|
||
- janus 配置挂载自 `deploy/janus/etc/janus`
|