<Response> wrapper and the same verb names and nesting rules as Plivo, so the vast majority of your XML works as-is.
There is exactly one real rename you need to make:
- Plivo’s
<GetDigits>and<GetInput>both become Vobiz’s<Gather>.
How Vobiz serves XML
Like Plivo, Vobiz fetches your call-control XML from your own HTTPS endpoint. When a call is answered, Vobiz POSTs to youranswer_url, and you return a <Response> document with Content-Type: application/xml. Verbs execute top to bottom. See How VobizXML works for the request and response lifecycle.
Verb mapping table
| PlivoXML element | VobizXML element | Notes |
|---|---|---|
<Response> | <Response> | Same wrapper. Return as application/xml. |
<GetDigits> | <Gather> | Renamed. type to inputType, timeout to executionTimeout. |
<GetInput> | <Gather> | Renamed. Same attribute changes as <GetDigits>. |
<Speak> | <Speak> | Same. Supports voice (WOMAN/MAN), language, loop. |
<Play> | <Play> | Same. Supports loop (0 = infinite). |
<Dial> | <Dial> | Same, with nested <Number>/<User>. Supports action, timeout, timeLimit, callerId, confirmSound, dialMusic. |
<Number> | <Number> | Same. Nests inside <Dial>. |
<User> | <User> | Same. Nests inside <Dial> for SIP/app endpoints. |
<Record> | <Record> | Same. Supports action, maxLength, timeout, playBeep, finishOnKey, fileFormat, recordSession, startOnDialAnswer. |
<Conference> | <Conference> | Same. Supports startConferenceOnEnter, endConferenceOnExit, callbackUrl. |
<Redirect> | <Redirect> | Same. Supports method. |
<Hangup> | <Hangup> | Same. Supports reason, schedule. |
<Wait> | <Wait> | Same. Supports length, silence, beep. |
<PreAnswer> | <PreAnswer> | Same. Only Speak/Play/Wait nest inside. |
<DTMF> | <DTMF> | Same. Send tones to a remote IVR. |
<MultiPartyCall> and other advanced verbs | No direct equivalent | Review and contact support before migrating. Do not assume a one-to-one mapping. |
Inside Gather: the attribute changes
When you rename<GetDigits> or <GetInput> to <Gather>, change these two attributes:
| Plivo attribute | Vobiz attribute | Values |
|---|---|---|
type | inputType | dtmf, speech, or dtmf speech |
timeout | executionTimeout | 5 to 60 (default 15) |
action, method, numDigits, finishOnKey, and language.
Before and after: an IVR menu
Here is a typical Plivo IVR that collects a single digit and routes the caller.PlivoXML (before)
PlivoXML
VobizXML (after)
Rename<GetDigits> to <Gather>, type to inputType, and timeout to executionTimeout. Nothing else changes.
VobizXML
Before and after: the SDK builder
If you build XML programmatically with the Plivo SDK, the change is just as small. Plivo’sadd_get_digits(...) (and add_get_input(...)) becomes Vobiz’s add_gather(...) on a vobizxml.ResponseElement(), with the same type to inputType and timeout to executionTimeout renames.
Plivo SDK builder (before)
Plivo SDK
Vobiz SDK builder (after)
Vobiz SDK
What to double-check after converting
- Every
<Gather>usesexecutionTimeout, nottimeout. This is the most common mistake when porting from Plivo. <MultiPartyCall>and other advanced Plivo verbs. These have no guaranteed one-to-one Vobiz equivalent. Review each one and contact support rather than inventing a mapping.- All URLs are fully qualified HTTPS. Action, callback,
confirmSound, anddialMusicURLs must be absolute HTTPS, just as in Plivo. - Your response is served as
application/xml. Nottext/htmlortext/plain.
Next steps
Webhooks and signatures
Map Plivo webhook parameters and signature validation to Vobiz.
Plivo to Vobiz overview
See the full migration guide for moving from Plivo to Vobiz.