Skip to main content
Call transfers let your AI agent hand a live call to a human. You configure one or more transfer destinations per agent, and the AI decides when to use them based on your prompt. telli supports two types: cold (instant handoff) and warm (the AI briefs the human first).

Cold vs. Warm Transfer

The caller is connected directly via SIP REFER. Fast, zero delay, and the only type that supports SIP URI targets and custom SIP headers.Downside: If the destination doesn’t answer, the caller is stuck hearing ringing and the AI cannot return. No context is passed to the human.

When to Pick Which

ScenarioRecommended
Transfer to a call center queue (always staffed)Cold—fast, and someone will always pick up
Transfer to a specific person who may be busyWarm—AI returns gracefully if they don’t answer
You need to pass call context to the humanWarm—the briefing agent summarizes everything
PBX/SIP integration with custom routingCold—supports SIP URIs and custom headers
Transfer to a voicemail-heavy destinationWarm—detects voicemail and returns to caller

Warm Transfer Briefing

The briefing is what the AI tells the human before connecting the caller. In Auto mode (default) the AI summarizes who the caller is, what they called about, what was discussed, and what they need, then asks “Are you ready to take the call?” You can supply a custom briefing prompt instead. It replaces the default instructions, but the system still appends the full conversation history, instructs the agent to ask permission before connecting, and provides the connect_to_customer, voicemail_detected, and supervisor_unavailable tools. Briefing prompts support contact variables like {{contact.name}}. During the briefing the human can accept (caller connected), say they’re unavailable (AI returns and offers alternatives), or not answer (AI returns after a timeout: default 30s ringing, 5 min max total).

DTMF and SIP Headers

Post-dial DTMF—Send touch-tones after the destination answers, for IVR menus or extensions. Supports 0-9, A-D, *, #, and w (0.5s pause). Example: 123w45#. Supports contact variables (1w{{contact.extension}}#). Available for both cold and warm. Custom SIP headers (cold only)—Attach headers to the REFER request for call correlation, routing, or analytics. telli always includes X-Telli-Call-Id automatically so you can match the transfer back to the original call. Add your own name/value pairs under the “Advanced” section of a cold destination; values support contact variables. Not available for warm transfers.

Limited Hours

Each destination can have its own optional schedule: enable/disable per day, time windows per day, and a timezone (e.g. Europe/Berlin). You can also block specific dates (holidays), inheriting from account-level no-call dates or disabling per destination. When someone requests a transfer outside the configured hours:
  • Auto (recommended)—The AI informs the caller transfers aren’t available, optionally including the schedule and next available slot. You can toggle the schedule details off.
  • Manual message—The AI speaks an exact message you provide, verbatim, with no improvisation.

Routing Logic in the Prompt

The transfer tool gives the AI the ability to transfer; your prompt tells it when. A typical multi-destination pattern:
## Transfer Routing

- Pricing, quotes, or purchase questions → [transferCall]:sales
- Technical issues, bugs, or error messages → [transferCall]:support
- Billing disputes or invoice questions → [transferCall]:billing
- Explicit request for a manager → [transferCall]:manager

## When NOT to Transfer
- Do not transfer if you can answer the question yourself
- Only transfer for complex issues you cannot resolve
- Always confirm with the caller before transferring
Common rules also include ending the call when the question is answered, using [scheduleCallback] when the destination is unavailable, and summarizing what you’ve tried before transferring as a last resort.

Troubleshooting

IssueColdWarm
Destination doesn’t answerCaller hears ringing indefinitely; AI cannot return (SIP limitation)Cancels after max ringing duration (default 30s, range 5–120s); AI returns to caller
Voicemail on destinationNo detection; caller connected to voicemailBriefing agent detects within 10–30s and returns to caller
Recommendation: If your destination might not answer or go to voicemail, always use warm transfer and set a reasonable max ringing duration (30–60s recommended).