通话控制
这组端点作用于已经在进行中的通话,使用 LiveKit 房间名而不是 session id 来定位。因为在双方还在通话时,真正存在的是房间。
| 操作 | Route | 用途 |
|---|---|---|
| 保持 | POST /voice/calls/{roomName}/hold | 让对方进入保持,或恢复通话 |
| 模式 | POST /voice/calls/{roomName}/mode | 切换主管的监听模式 |
| 挂断 | POST /voice/calls/{roomName}/hangup | 结束通话并封存 session |
| 锁定 | POST /voice/calls/{roomName}/lock | 阻止其他人再加入 |
| 移出成员 | DELETE /voice/calls/{roomName}/participants/{identity} | 移出一位参与者 |
| 强制关闭 | POST /voice/calls/{uuid}/force-close | 关闭房间已不存在的 session |
API 密钥可以操作进行中的通话
在这组路由上,密钥携带的是所有者的权限。拿到密钥的人可以挂断甚至接管正在进行的通话。请只保存在服务端,一旦泄露立即重新签发。
保持与恢复
保持会做两件事:将双方静音,并播放等待音。即使没有配置等待音,静音也依然生效,因此被保持的一方不会听到坐席这端的声音。
bash
curl -X POST "$ME_BASE/voice/calls/$ROOM/hold" \
-H "API-Key: $ME_API_KEY" \
-H "X-TenantID: $ME_TENANT" \
-H "Content-Type: application/json" \
-d '{"muted": true, "holder_identity": "agent-42"}'json
{ "status": "ok", "held": true }向同一 route 发送 "muted": false 即可恢复通话。
