important-judge-78504
04/30/2026, 11:24 PMtall-airline-16756
04/30/2026, 11:24 PMtall-airline-16756
04/30/2026, 11:24 PMimportant-judge-78504
04/30/2026, 11:24 PMtall-airline-16756
04/30/2026, 11:25 PM{
"room": "support-room-123",
"participant_sid": "PAxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
"destination": "sip:+14155551234@provider.example.com",
"transfer_type": "COLD"
}
Notes on formatting:
• Destination can be a full SIP URI (recommended) or a tel-style URI. Examples:
◦ SIP URI: sip:+14155551234@provider.example.com
◦ tel URI: tel:+14155551234
• Use E.164 phone format (+1XXXXXXXXXX) for the phone number portion.
• transfer_type: "COLD" indicates a cold transfer via SIP REFER (no warm handoff).
Minimal SDK-style pseudocode (adjust to your SDK/language):
const req = {
room: "support-room-123",
participant_sid: "PAxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
destination: "sip:+14155551234@provider.example.com",
transfer_type: "COLD"
};
livekit.sip.transferSIPParticipant(req)
.then(res => console.log("Transfer sent", res))
.catch(err => console.error("Transfer failed", err));
Would you like this in a specific language or with headers/example HTTP endpoint for your API client?
, with interactive elementsimportant-judge-78504
04/30/2026, 11:25 PMtall-airline-16756
04/30/2026, 11:25 PM{
"room": "support-room-123",
"participant_sid": "PAxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
"destination": "sip:+14155551234@provider.example.com",
"transfer_type": "COLD"
}
Alternate destination formats:
• SIP URI (recommended): sip:+14155551234@provider.example.com
• tel URI: tel:+14155551234
Use E.164 formatting for the phone number portion (+1...). You can also use CreateSIPParticipant with sip_call_to to place an outbound call to a phone number if you prefer creating a new SIP leg for warm-handoff flows.
Would you like an HTTP example with headers or a snippet in a specific SDK/language?
Sources: LiveKit Phone Numbers | Connect voice agents to phone lines | LiveKit | Agents telephony integration | LiveKit Documentation | The Handoff Pattern for Voice Agents That Replaces IVR Menus | LiveKit | The Human-in-the-Loop (HITL) Pattern for Voice Agents | LiveKit | Preserving Caller ID During SIP Transfers in LiveKit Agents, with interactive elementsimportant-judge-78504
04/30/2026, 11:58 PMtall-airline-16756
04/30/2026, 11:58 PMimportant-judge-78504
04/30/2026, 11:59 PMtall-airline-16756
04/30/2026, 11:59 PMSIPCall or SIPAdmin grant).
• Your SIP trunk/provider (Twilio) is blocking SIP REFER or outbound transfers.
• Caller-ID/passthrough or trunk routing rules are preventing the outbound transfer.
Can you share:
1. The exact TransferSIPParticipantRequest (redact secrets) or HTTP request you’re sending.
2. How the access token is created (which grants/scopes you include).
3. Any Twilio SIP trunk settings or error logs showing the 403 (Twilio or LiveKit logs).
If you prefer, I can show an example token creation with SIPCall and a sample HTTP transfer request once you confirm which language or client you’re using.
, with interactive elements