통화 제어
이 엔드포인트들은 이미 진행 중인 통화에 작용합니다. 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} | 참가자 한 명을 내보냅니다 |
| 강제 종료 | 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를 보내면 다시 연결됩니다.
