B11TENCOURT
07/27/2026, 9:28 PMAI Evy
07/27/2026, 9:28 PMAI Evy
07/27/2026, 9:28 PMAI Evy
07/27/2026, 9:28 PMAI Evy
07/27/2026, 9:29 PMB11TENCOURT
07/27/2026, 9:32 PMAI Evy
07/27/2026, 9:32 PMAI Evy
07/27/2026, 9:33 PMAI Evy
07/27/2026, 9:33 PMcustom_sip_headers object [(1) ]() . Only headers whose name starts with X- (case-insensitive) , plus the allowlisted headers User-to-User, Diversion, History-Info, and P-Asserted-Identity, are forwarded . Header names are emitted in lowercase . The object may be empty or omitted when no qualifying headers are present, so treat it as optional . You can access these headers in your inbound webhook payload to detect when a call was diverted from your own transfer destination .
On-hold music during warm transfer. For warm transfers, you can configure the on-hold music that plays to the caller while they are on hold [(2) ]() . The default is a standard ringtone . The caller hears this configured audio while the transfer is dialing .
Transfer timeout events. When you subscribe to transfer webhooks, transfer_cancelled is triggered when a transfer is cancelled or fails to connect [(3) ]() . The webhook payload includes transfer_destination and (when available) transfer_option . For transfer events, use event + call_id + start_timestamp (and, if needed, transfer_destination) to ensure each transfer attempt is processed exactly once, since a single call may contain multiple transfer attempts .
Human detection limitations. The documentation states that when human detection is enabled, the agent checks if a human is present after the transfer target answers [(2) ]() . However, the sources don't expliciAI Evy
07/27/2026, 9:33 PMAI Evy
07/27/2026, 9:33 PMB11TENCOURT
07/27/2026, 10:04 PMAI Evy
07/27/2026, 10:04 PMAI Evy
07/27/2026, 10:04 PMAI Evy
07/27/2026, 10:04 PMreject: true in your response to decline calls from specific numbers .
The webhook receives the from_number in the request payload, which you can check against your blocklist . When you respond with reject: true, Retell hangs up before any agent or voice setup, and no call object is created .
Here's how the webhook works: the request includes from_number and to_number . You check the from_number against your list of blocked numbers (including your own Retell numbers) , then respond with:
json
{
"call_inbound": {
"reject": true
}
}
Only the boolean true rejects the call—any other value is ignored and the call proceeds normally . Rejecting takes priority over agent selection, so override_agent_id and agent_override are ignored when reject is true .
This approach lets you block your own Retell numbers from calling in without needing per-agent or per-number blocklist configuration .AI Evy
07/27/2026, 10:04 PM