Hi everyone — I’m hitting a wall with a custom SIP trunk setup and could really use some help from anyone who’s dealt with this.
Setup
Phone number imported from Telnyx
sip_outbound_trunk_config configured with:
termination_uri = sip-eu-west.telnyx.com
auth_username + auth_password set
Telnyx OVP enabled for Western Europe (Level 2 verified)
All transfer_call tools point to landlines in the same country (E.164 format)
Issue
Every warm transfer_call fails with:
SIP status: 478 — Unresolvable destination
twirp error: unexpected status from INVITE
Logs also show: custom sip headers undefined
What I’ve verified so far
Inbound calls through the same Telnyx trunk work perfectly
Outbound calls from Telnyx WebRTC dialer (same credentials) work → Telnyx is not the issue
Failed transfers do NOT show in Telnyx CDRs → INVITE never leaves Retell
Debug vars show:
lk-real-ip: 18.98.16.122
lk-transport: tcp
→ traffic is coming from LiveKit internal SIP gateway, not my trunk
Hypothesis
transfer_call is being routed through Retell’s default (LiveKit) carrier instead of my configured SIP trunk.
That carrier likely doesn’t support the destination country → causing the 478.
I also found thread #572 which seems to confirm this, but the suggested workaround (Retell-managed numbers) isn’t viable for my target country.
Questions
Is there a way to force transfer_call to use sip_outbound_trunk_config?
The docs mention X-Telnyx-Username header — where do you actually configure custom SIP headers? I don’t see this in UI or API
Is there any way to enable additional countries on Retell’s default outbound carrier?
If this is a limitation, what’s the recommended workaround? External bridge (e.g. jambonz / FreeSWITCH)?
Any insight would be hugely appreciated 🙏