application/x-www-form-urlencoded callbacks with the same call params, and both sign each request with an HMAC keyed by your auth token plus a nonce. Two things to know when mapping: Vobiz delivers Ring / StartApp / Hangup as events to the answer flow, and Vobiz V2/V3 sign the base URL + nonce.
Callback URL & event mapping
| Plivo | Vobiz | Notes |
|---|---|---|
answer_url (mandatory) | answer_url + answer_method | Returns XML to drive the call. |
hangup_url + hangup_method | hangup_url + hangup_method | Fire-and-forget end-of-call notification; also emits a Hangup event. |
fallback_url / fallback_answer_url | fallback_answer_url + fallback_method | Invoked when the primary answer URL is unreachable. |
action attribute (Dial, Record, GetInput…) | action attribute (Dial, Record, Gather…) | Expects an XML response to continue. |
callbackUrl attribute (notify-only) | callbackUrl / callback_url attribute | Async notification; no XML expected. |
| Event: answered | Event: StartApp | ”Call answered.” |
| Event: hangup | Event: Hangup | ”Call ended.” |
| Event: ringing | Event: Ring | ”Call is ringing.” |
Signature header mapping
| Plivo | Vobiz | Scheme |
|---|---|---|
X-Plivo-Signature-V3 | X-Vobiz-Signature-V3 | HMAC-SHA256, base64. Signs baseURL + "." + nonce. |
X-Plivo-Signature-V3-Nonce | X-Vobiz-Signature-V3-Nonce | Random nonce for the V3 signature. |
| — | X-Vobiz-Signature-V2 (+ -Nonce) | HMAC-SHA256, base64. Signs baseURL + nonce (no .). |
X-Plivo-Signature-Ma-V3 | X-Vobiz-Signature-MA-V3 | Same scheme, signed with the main (parent) account token on sub-account callbacks. |
X-Plivo-Signature-V2 (legacy SHA1) | X-Vobiz-Signature (legacy SHA1) | Backwards compatibility only — avoid. |
Signature scheme. Vobiz V3 signs
baseURL + "." + nonce (query params stripped); V2 signs baseURL + nonce. Verify Vobiz callbacks with the HMAC validator below.Before / after: verifying the signature
On Vobiz, verifying a callback is a few lines of stdlib HMAC.Python (Flask)
CallUUID, From, To, Direction, CallStatus, HangupCause, Duration, plus Event / timestamp / auth_id on every callback. See the Vobiz XML request params and Callbacks reference.
Key differences & gotchas
- Signed string. Vobiz V2/V3 hash the base URL + nonce, which proves the request origin and URL — validate incoming param values in your handler as usual.
- Events instead of dedicated URLs. Branch on the
Eventfield forRing,StartApp, andHangup. - Header casing & compares. Nonces are 20-digit strings; read headers case-insensitively and compare with
hmac.compare_digest/crypto.timingSafeEqual, never==. - Main-account (MA) signatures. Sub-account callbacks add a parent-signed header (
X-Vobiz-Signature-MA-V3) — reuse the validator with the parent token.
Validating callbacks
Canonical Vobiz signature reference with Python, Node, Go, and Ruby.
Migration gotchas
Edge cases when moving from Plivo to Vobiz.