Skip to content

音视频通话 ​

这篇解决什么 ​

通话房间落哪张表、媒体和信令各走谁。读完能对上 im_rtc_call + LiveKit,以及后端只签 Token、不转发音视频。

默认端口 48080。先完成 IM 功能设计。信令推送见 IM WebSocket。

示意图:业务状态在库表。媒体进 LiveKit。来电 / 接通 / 结束走 IM 长连接。

从哪改 ​

名称说明仓库路径
通话@RequestMapping("/im/rtc")ruoyi-office/yudao-module-im/.../rtc/ImRtcCallController.java
WebhookPOST /im/livekit/webhookImRtcLiveKitController
运营/im/manager/rtcImRtcCallManagerController
配置yudao.im.rtcImProperties.Rtc
客户端LiveKit SDK 封装LiveKitClient
用户页通话容器ruoyi-office-vben/.../im/home/components/rtc/

接口:/create、/invite(仅群)、/join、/accept、/reject、/cancel、/leave 等。room 是业务 UUID,同时当 LiveKit 房间名。

ImRtcCallStatusEnum:10 创建,20 进行中,30 已结束。第一位非发起人接通后进入 20。主表一行通话,明细在 im_rtc_participant。

yudao.im.rtc.enabled 默认 true。关掉后接口抛未启用。默认 livekit-url 为 ws://127.0.0.1:7880;livekit-api-url 空则把 ws 换成 http 调删房。群通话默认最多 16 人。Token 默认 6 小时。

Webhook:@PermitAll + @TenantIgnore,靠 JWT + body sha256 验签。处理成员离开 / 房间结束做兜底。信令类型 1601–1603 不入库;1610 / 1611 通话开始结束会写入私聊或群消息表。

字段 ​

名称说明仓库路径
room业务通话编号ImRtcCallDO
conversationType / mediaType私聊或群、音或视同上
inviterUserId / groupId发起人;私聊群号为空同上
status / endReason状态机、结束原因同上
livekitUrl / apiKey / apiSecret媒体服务ImProperties.Rtc

生产必须改 apiSecret

配置类要求 Secret 长度 ≥ 32。默认值只够本机联调。Webhook 伪造请求验签失败会直接丢掉。

演示站客户端走公网 wss 时

删房应配内网 livekit-api-url,避免业务机绕公网 hairpin。ImProperties 注释就是这么写的。

按本仓库 DO 生成的 ER。

配置与操作 ​

YAML 改 yudao.im.rtc:enabled 默认 true(关掉后接口抛未启用);livekit-url 默认 ws://127.0.0.1:7880;livekit-api-url 空则把 ws 换成 http 调删房;apiKey / apiSecret(Secret 长度 ≥ 32);群通话最多 group-max-participants(默认 16);Token 默认 6 小时。

保存后用户在 /im/home 调 POST /im/rtc/create。接口还有 /invite(仅群)、/join、/accept、/reject、/cancel、/leave。room 同时是业务 UUID 和 LiveKit 房间名。后端只签 Token,不转发音视频。来电信令 1601–1603 不入库;1610 / 1611 会写入私聊或群消息。Webhook POST /im/livekit/webhook(@PermitAll + @TenantIgnore)靠 JWT + body sha256 验签。台账在 通话记录(7585,/im/rtc),查询权限 im:manager:rtc:query。媒体连 7880,业务通知走 /infra/ws,两条不要混。开启见 IM 功能设计。

通话记录

本系统截图:IM 即时通讯 → 通话记录。一行 im_rtc_call,状态 10 创建 / 20 进行中 / 30 已结束。

通话详情

本系统截图:通话记录点「详情」。参与人在 im_rtc_participant。

相关篇 ​

联系我们

获取报价、演示和二开方案

微信咨询二维码

微信咨询

17156169080

添加时备注「RuoYi Office」

在线体验商业版