feat(call): integrate LiveKit for voice and video calling
Replace the manual WebRTC signaling implementation with LiveKit SFU. This includes: - Adding LiveKit service, handler, and configuration. - Updating Docker Compose to include LiveKit server, Redis, and PostgreSQL. - Refactoring `CallService` and `WSHandler` to support LiveKit room readiness instead of raw SDP/ICE relaying. - Adding new API endpoints for LiveKit token generation and webhooks. - Removing deprecated WebRTC configuration and manual signaling DTOs.
This commit is contained in:
@@ -333,3 +333,15 @@ version_log:
|
||||
enabled: false # 启用后客户端可使用 /conversations/sync 增量同步
|
||||
sync_limit: 100 # 单次同步最大返回变更条数
|
||||
max_sync_gap: 1000 # 版本差距超过此值建议全量同步
|
||||
|
||||
# LiveKit SFU 配置(语音/视频通话)
|
||||
# 环境变量:
|
||||
# APP_LIVEKIT_ENABLED, APP_LIVEKIT_URL, APP_LIVEKIT_API_KEY, APP_LIVEKIT_API_SECRET
|
||||
# APP_LIVEKIT_TOKEN_TTL, APP_LIVEKIT_WEBHOOK_SECRET
|
||||
livekit:
|
||||
enabled: false
|
||||
url: "http://localhost:7880"
|
||||
api_key: "devkey"
|
||||
api_secret: "u1sLYiHWe4HIr3KrJrvknIleoHdgHdDqSjfkBvRs2AlA"
|
||||
token_ttl: 600 # token 有效期(秒)
|
||||
webhook_secret: "" # webhook 签名密钥(与 LiveKit 服务端配置一致)
|
||||
|
||||
32
configs/livekit.yaml
Normal file
32
configs/livekit.yaml
Normal file
@@ -0,0 +1,32 @@
|
||||
# LiveKit Server Configuration
|
||||
# See https://docs.livekit.io/realtime/server/config/ for all options
|
||||
|
||||
port: 7880
|
||||
rtc:
|
||||
tcp_port: 7881
|
||||
udp_port: 7882
|
||||
use_external_ip: false
|
||||
# Enable TURN/TLS relay for restrictive networks
|
||||
port_range_start: 7881
|
||||
port_range_end: 7882
|
||||
node_ip: 127.0.0.1
|
||||
|
||||
keys:
|
||||
devkey: u1sLYiHWe4HIr3KrJrvknIleoHdgHdDqSjfkBvRs2AlA
|
||||
|
||||
logging:
|
||||
level: info
|
||||
|
||||
# Redis for distributed state (required)
|
||||
redis:
|
||||
address: livekit-redis:6379
|
||||
|
||||
# PostgreSQL for persistent storage (rooms, participants, egress)
|
||||
db:
|
||||
address: postgres://postgres:postgres@livekit-postgres:5432/livekit?sslmode=disable
|
||||
|
||||
# Webhook for call history persistence
|
||||
# webhook:
|
||||
# urls:
|
||||
# - http://app:8080/api/v1/calls/webhook
|
||||
# api_key: devkey
|
||||
Reference in New Issue
Block a user