<Response> wrapper, same verb names, same nesting rules. The only structural rename is input collection — Plivo’s <GetDigits> and <GetInput> both become Vobiz’s <Gather>.
Verb mapping table
| PlivoXML verb | plivoxml builder method | VobizXML verb | vobizxml builder method | Notes |
|---|---|---|---|---|
<Response> | ResponseElement() | <Response> | vobizxml.ResponseElement() | Same root. Serve as application/xml. |
<GetDigits> | add_get_digits() | <Gather> | add_gather() (alias add_get_digits()) | Rename. timeout→executionTimeout, digitTimeout→digitEndTimeout. |
<GetInput> | add_get_input() | <Gather> | add_gather() (alias add_get_input()) | Rename only — inputType/executionTimeout already match. |
<Speak> | add_speak() | <Speak> | add_speak() | Same. voice (WOMAN/MAN), language, loop. |
<Play> | add_play() | <Play> | add_play() | Same. loop (0 = infinite). MP3/WAV over HTTPS. |
<Wait> | add_wait() | <Wait> | add_wait() | Same. length, silence/minSilence, beep. |
<Dial> | add_dial() | <Dial> | add_dial() | Same. Nest Number/User. Ports verbatim. |
<Number> | add_number() | <Number> | add_number() | Same. sendDigits, sipHeaders. |
<User> | add_user() | <User> | add_user() | Same. SIP endpoint as text content. |
<Record> | add_record() | <Record> | add_record() | Same verb; action is required in Vobiz. |
<Conference> | add_conference() | <Conference> | add_conference() | Same. Room name is text content. startConferenceOnEnter, endConferenceOnExit, callbackUrl. |
<Redirect> | add_redirect() | <Redirect> | add_redirect() | Same. method (GET/POST). |
<Hangup> | add_hangup() | <Hangup> | add_hangup() | Same. reason (rejected/busy), schedule. |
<DTMF> | add_dtmf() | <DTMF> | add_dtmf() | Same. Digits are text content; async (Python kwarg async_). |
<PreAnswer> | add_pre_answer() | <PreAnswer> | add_preanswer() | Same. Only Speak/Play/Wait nest inside. |
<Stream> | add_stream() | <Stream> | add_stream() | Same. bidirectional, audioTrack, contentType, keepCallAlive. |
Before / after: an IVR menu (GetDigits → Gather)
This is the most common port. Maptimeout→executionTimeout, digitTimeout→digitEndTimeout, and add inputType="dtmf".
PlivoXML (before)
VobizXML (after)
Digits (and, for speech, Speech, SpeechConfidenceScore, and BilledAmount).
Gotchas
<GetInput>is a free port — itsinputTypeandexecutionTimeoutalready match<Gather>; just rename the tag.<Record action>is required in Vobiz — Plivo allows<Record>without it; Vobiz needs it to deliverRecordUrl.- SSML is content, not builder verbs — pass
ssml="..."toadd_speak()/<Speak>instead of Plivo’sadd_break/add_prosody/etc. See SSML. - REST auth differs — Vobiz uses
X-Auth-ID+X-Auth-Tokenheaders (not HTTP Basic) againsthttps://api.vobiz.ai/api/v1. See auth & base URL.