rhythmic-account-68046
08/29/2025, 12:17 PMtall-airline-16756
08/29/2025, 12:17 PMtall-airline-16756
08/29/2025, 12:18 PMTwirpError(code=canceled, message=twirp error unknown: call transfer failed, status=408)
, basically means the SIP transfer request timed out because the remote endpoint either rejected it or didn’t respond. This matches the SIP 408 Request Timeout status.
To help you get this sorted out, here are some friendly steps you can try:
1. Double-check the SIP URI Format and Reachability: Make sure the transfer_to
URI is formatted correctly (like tel:+1234567890
for phone numbers or <sip:user@domain.com>
for SIP addresses). It’s also a good idea to test if the destination is reachable on its own.
2. Confirm Your SIP Trunk Setup: Reach out to your SIP provider to verify that call transfer (SIP REFER) is enabled and that your trunk permissions allow sending REFER messages to the destination you want.
3. Check Transfer Status in Metadata: Take a look at the error metadata for SIP-specific details such as sip_status_code
and sip_status
. These can give clues about what’s going wrong.
4. Make Sure the Call is Active: Transfers only work if the call is active and answered. If the call is disconnected or unanswered, the transfer won’t go through.
5. Add Error Handling in Your Code: It’s helpful to log full error details in your transfer function and set up fallback actions just in case.
If you’re still stuck after trying these, checking your SIP provider’s logs might shed more light on how the REFER request is being handled. And of course, feel free to reach out if you want a hand with any of these steps—I’m here to help!
Sources: SIP troubleshooting guide | LiveKit Docs | agent.py | pkg/sip/inbound.go | livekit/livekit_cloud_agent.twirp.go