Hi manudo,
You're correct — Plivo Zentrunk does not accept SIP REFER, and Vapi's transfer flow for BYO SIP trunks relies on REFER. The Plivo guide in our docs confirms this limitation:
https://docs.vapi.ai/advanced/sip/plivo
Workarounds/options:
• Use a different SIP provider that supports REFER (Twilio, Telnyx with proper config) and keep your Plivo number moved there.
• Use a PSTN provider (Twilio) for numbers used with warm transfers — warm-transfer features are only fully supported on Twilio.
• Implement proxying: have your own SIP gateway/B2BUA that accepts Vapi's REFER and re-originate an authenticated outbound call via Plivo using the provider credentials. (This requires building/hosting a SIP B2BUA and is non-trivial.)
• As a different approach, do the transfer from your telephony provider side: have Vapi signal a webhook or server message so your backend can initiate the outbound transfer using Plivo’s authenticated outbound trunk (if Plivo accepts such an API/Call Control flow). Note: Plivo still must support the method used; many customers report no viable REFER-based transfer via Plivo.
Short answer: there is no simple documented workaround inside Vapi — the practical options are switching provider for transfer-enabled numbers or implementing a SIP proxy/B2BUA to bridge Vapi ↔ Plivo with authenticated outbound calls.