通話控制
這組端點作用於已經在進行中的通話,以 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 即可恢復通話。
