通話の制御
このエンドポイント群はすでに通話中の呼に対して動作します。呼び出しには session id ではなく LiveKit のルーム名を使います。通話が続いている間、実体として存在するのはルームだからです。
| 操作 | 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} | 参加者を 1 名退出させる |
| 強制クローズ | POST /voice/calls/{uuid}/force-close | ルームが既に無い session を閉じる |
API キーは通話中の呼を操作できます
この経路では、キーは所有者の権限を持ちます。キーを入手した者は通話中の呼を切断したり、引き継いだりできます。サーバー側にのみ保管し、漏洩したら直ちに再発行してください。
保留と再開
保留は 2 つのことを行います。両者の音声をミュートし、保留音を流します。ミュートは保留音が設定されていなくても動作するため、保留中の相手にオペレーター側の音声が聞こえることはありません。
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 を送ると再開します。
