Transfer a call
Move a live caller to another number or address.
Also called blind call transfer, SIP URI transfer, route a call to Vapi, Retell or ElevenLabs over SIP
The claim
connect is the transfer verb. Its to can be a phone number, a sip: URI or a Resource address such as /public/support. Execution pauses while the two legs are bridged; when the far end hangs up, the verbs after connect run. That is the return path, and it is where the caller can be offered something else. transfer_after_bridge: "true" makes the transfer permanent instead.
How it works
- answer: {}
- play: { url: "say:Please hold while I connect you." }
- connect: { to: "+1555...", timeout: 20, ringback: ["ring:us"] }
- play: { url: "say:The other party has left the call. Thank you for calling." } # return path
- hangup: {}The sip section is the SIP variant: the same connect with a sip: URI and headers, which SignalWire stamps onto the INVITE so your PBX can route on them.
- connect:
to: "sip:support@pbx.example.com"
headers:
- { name: "X-Account-Id", value: "acct-1234" }To try several destinations in order or ring them at once, replace to with serial or parallel. See try-destinations-in-order. To brief the person before the bridge completes, add confirm. See brief-the-human-before-the-bridge-completes.
What to change first
Change to to a Resource address (/public/<name>) and route the call into a SWML script, an AI agent or a subscriber’s browser instead of a phone.
Where this sits
Before this
Seen in a build
One of 7 recipes composed by IVR navigator: an AI agent that works through phone menus to reach a human.