Hey LiveKit team/community,
We’re currently building with LiveKit Agents in Node.js/TypeScript and are looking into implementing agent-assisted warm transfers for our voice agent workflow.
I noticed in the docs under Telephony → Features → Transfers → Agent-assisted transfer that the prebuilt WarmTransferTask is currently available in beta for Python, but not yet for Node.js:
Warm transfer task
Available in (BETA):
- [ ] Node.js
- [x] Python
For our use case, warm transfer is pretty important because we want the AI agent to place the caller on hold, call a human operator, provide a short contextual summary, and then connect both sides if the operator is available.
I see that the manual Node.js workflow is documented with things like:
customerSession.input.setAudioEnabled(false);
customerSession.output.setAudioEnabled(false);
Token generation with livekit-server-sdk, creating a consultation room with @livekit/rtc-node, dialing the manager with SipClient.createSIPParticipant, and then moving the participant with RoomService.moveParticipant.
That is helpful, but I was wondering:
-
Is a Node.js/TypeScript equivalent of
WarmTransferTaskplanned? -
Is there already an internal or example implementation that mirrors the Python task?
-
For production use today, would you recommend implementing the manual workflow ourselves, or waiting for the Node.js task?
-
Are there any known edge cases we should handle carefully in Node.js, such as manager unavailable, SIP failure, room cleanup, or re-enabling the caller audio after a failed transfer?
We’re using LiveKit for an AI voice agent in healthcare-related workflows, so a reliable warm transfer flow is a pretty important part of escalation to a human.
Would really appreciate any guidance, example code, or roadmap context here.
Thanks!