We’re transferring inbound calls from our Retell agent to a client’s dialer. Right now, their agents only see our Twilio DID as the caller ID. In our Transfer node we currently have “Displayed Phone Number: Transferee’s Number” selected, but when tested, the client still only sees our Twilio number — not the original caller’s number. We confirmed with their engineers that they can accept the caller’s number if we send it as the outbound caller ID. Can you confirm: Is there a variable (e.g., {{call.caller_number}}) we can use as the callerId on the outbound transfer leg? If so, how should we configure the Transfer node so that the inbound caller’s number is preserved? If the UI doesn’t expose this, is the recommended approach to use SIP with headers (P-Asserted-Identity, X-Caller-ANI) or a webhook/TwiML call with callerId={{inbound_caller}}?
Based on the documentation, when using cold transfers with “Transferee’s Number” selected, Retell AI should preserve the original caller’s number, but this requires specific telephony provider configuration that may not always work reliably.
Current Transfer Node Configuration
Your Transfer node setup with “Displayed Phone Number: Transferee’s Number” is correct according to the documentation. However, this feature relies on SIP REFER protocol and requires your telephony provider (Twilio) to be configured properly[1].
Required Twilio Configuration
For cold transfers with transferee caller ID to work, your Twilio configuration must have[1:1]:
- Enable SIP REFER
- Enable transfer to PSTN
- Set caller ID as transferee
Known Limitations
The documentation indicates there are known issues with this approach. Specifically, for cold transfers with transferee number, different telephony providers may or may not honor custom SIP headers in the REFER request. The documentation explicitly mentions that “Twilio for example, does not honor the custom SIP headers in the REFER request”[2].
Alternative Approaches
Since the standard approach may not work reliably with Twilio, here are the recommended alternatives:
- Use Warm Transfer: Consider switching to warm transfer, which provides more control over the process
- Custom SIP Headers: You can add custom SIP headers to transfers, though these may not be honored by Twilio for cold transfers with transferee caller ID[2:1]
- Direct API Integration: Work with your client to accept call context through other means (webhooks, custom headers, etc.)
Dynamic Variables
While the documentation doesn’t explicitly show a {{call.caller_number}} variable, dynamic variables are supported for transfer numbers and SIP headers[2:2]. You would need to check if caller number variables are available in your specific setup.
Unfortunately, the current Transfer node UI appears to be the primary method for configuring caller ID display, and the underlying SIP REFER limitations with Twilio may prevent this from working as expected.