adriaVidal
09/29/2025, 11:55 AMVapi Support Bot
09/29/2025, 11:56 AMtransfer-destination-request event should return the resolved SIP URI directly, not a template variable. Here’s a sample response structure:
json
{
"destination": {
"type": "sip",
"number": "+34XXXXXXXXX",
"sipUri": "sip:+34XXXXXXXXX@mydomain"
}
}
Make sure your backend replaces the variable with the actual number before sending this response to Vapi, so the REFER header is populated correctly.
Reference: [Vapi dynamic transfer docs](https://docs.vapi.ai/calls/call-dynamic-transfers#build-your-webhook-server)
Source:
- [Dynamic call transfers | Vapi Docs](https://docs.vapi.ai/calls/call-dynamic-transfers#build-your-webhook-server)adriaVidal
09/29/2025, 12:21 PMadriaVidal
09/29/2025, 12:22 PMVercel
09/30/2025, 6:18 AMChiranjeet Mishra
10/01/2025, 6:40 PM{
"type": "transferCall",
"function": {
"name": "warmTransferAssistant"
},
"destinations": [
{
"type": "sip",
"sipUri": "${transfer_destination_request.result}@mydomain",
"transferPlan": {
"mode": "warm-transfer-experimental",
"transferAssistant": {
"firstMessage": "Hi, I have a customer waiting. Are you available?",
"maxDurationSeconds": 120,
"model": {
"provider": "openai",
"model": "gpt-4o",
"messages": [
{
"role": "system",
"content": "You are handling a warm transfer. Check if the operator is available."
}
]
}
}
}
}
]
}
The transfer destination should be set programmatically after your custom function returns the result, rather than trying to interpolate it directly in SIP header
If this doesn’t resolve the issue, please let us know and we’ll be happy to step in and assist further.adriaVidal
10/09/2025, 3:46 PMChiranjeet Mishra
10/13/2025, 7:15 PMvariableExtractionPlan [1](https://docs.vapi.ai/call-forwarding)
- The extracted variables are available to all subsequent assistants in the conversation chain
2. Configuration: You can set up variable extraction in two ways:
- Through the destination configuration:
{
"destinations": [
{
"type": "assistant",
"assistantName": "support-assistant",
"variableExtractionPlan": {
"schema": {
"type": "object",
"properties": {
"customerName": {
"type": "string"
},
"issue": {
"type": "string"
}
}
}
}
}
]
}
- Through the tool function parameters (which will also be sent as variables)
If you're having issues with variables not being passed, make sure that:
1. You have properly configured the variableExtractionPlan in your transfer tool
2. The schema correctly defines the variables you want to extract
3. The variables are properly formatted according to the schema
Let me know if you need help with specific variable passing configurations!