This question originally came up in our Slack community and the thread has been consolidated here for long-term reference.
Hi LiveKit team
We’re currently using self-hosted LiveKit and ran into a limitation around the move_participant API, which is currently LiveKit Cloud–only.
await lkapi.room.move_participant(MoveParticipantRequest(
room="<CURRENT_ROOM_NAME>",
identity="<PARTICIPANT_ID>",
destination_room="<NEW_ROOM_NAME>",
))```
In our use case (agent-assisted **warm transfer** with SIP participants), the ability to *move an already-connected participant between rooms without dropping the media session* is critical for UX.
We understand that similar behavior can be approximated with permissions, subscriptions, or re-dialing, but none of these fully replicate the semantics of `move_participant`:
• no seamless transfer of an existing SIP call
• higher latency / re-dial UX
• more complex orchestration at the application layer
**Question / Request**
Are there any plans to support `move_participant` (or an equivalent room-handoff primitive) in **self-hosted LiveKit** as well?
Even a constrained or opt-in implementation would unlock a lot of advanced workflows (warm transfer, supervised calls, consult → merge patterns) for self-host users.
Happy to share more details about our architecture or contribute feedback/design discussion if helpful.
Thanks for building an awesome realtime platform