<Record> verb for TwiML-style flows, an imperative API to start and stop recording on a live call, a recordings collection to list / fetch / delete, and transcription delivered to a callback URL. Migration is mostly a base-URL swap to https://api.vobiz.ai/api/v1, an auth-header swap (X-Auth-ID + X-Auth-Token in place of HTTP Basic), and a few renamed SDK methods that each take an explicit auth_id.
Set your credentials once:
AUTH_ID is your Vobiz Auth ID (MA_…) and AUTH_TOKEN is your Auth Token. In the Vobiz SDK, api_key is the Auth ID (sent as X-Auth-ID), and every account-scoped method takes that auth_id explicitly as its first argument.Twilio → Vobiz mapping
Before / after - record a voicemail in XML
Twilio’s<Record> and Vobiz’s <Record> share the verb name and most attributes. The main renames: recordingStatusCallback → callbackUrl, and transcription is enabled with transcriptionType + transcriptionUrl instead of transcribe + transcribeCallback.
vobizxml builder (same ResponseElement + add_* pattern you may know from PlivoXML):
Before / after - start & stop recording on a live call
Twilio starts an in-call recording by POSTing to the call’sRecordings sub-resource and stops it by updating that recording’s Status. Vobiz gives each action a dedicated method keyed by (auth_id, call_uuid), so you never have to track a separate recording SID just to stop it.
Before / after - list, fetch, and delete recordings
The recordings collection maps almost one-to-one. Twilio addresses a recording asrecordings(sid); Vobiz passes the id as recording_id and (as everywhere) an explicit auth_id.
Transcription callbacks
Both platforms deliver the transcript to a URL you own rather than blocking the call. Twilio poststranscribeCallback parameters; Vobiz posts to the transcriptionUrl you set on <Record> (or via transcription_type='auto' on start_recording). Point Vobiz at your existing endpoint and remap a few field names:
Vobiz · Flask (transcription webhook)
Key differences
- Stopping a recording is a single call. Vobiz’s
record_calls.stop_recording(auth_id, call_uuid)stops the active recording by call - you address the call, not a separate recording SID, so there’s less state to carry through your app. - One
<Record>for whole-call capture. Where Twilio recording is split across TwiML attributes and REST resources, Vobiz’s<Record recordSession="true">captures the entire session (including laterSpeak/Playand bridged legs), andstartOnDialAnswer="true"begins capture the moment the far leg answers. - Transcription is a two-tier
auto/hybridchoice.transcriptionType="auto"uses the default Vobiz engine;hybridblends Vobiz for common languages with a third-party provider for the long tail - a single attribute covers broad language coverage. - A dedicated callback for file readiness. Vobiz’s
callbackUrlfires when the recording file is actually downloadable, so your download/processing job starts on a real signal instead of polling after theactionURL returns. - Explicit
auth_ideverywhere. Every recording method takes the accountauth_idas its first argument, which makes multi-account and sub-account workloads explicit and easy to route. - Auth headers instead of Basic auth. Vobiz authenticates with
X-Auth-ID+X-Auth-Tokenheaders againsthttps://api.vobiz.ai/api/v1; the SDK sets these for you fromapi_key/auth_token. - Familiar verb and attribute names.
action,method,maxLength,timeout,playBeep, andfinishOnKeykeep their Twilio meanings on the Vobiz<Record>verb, so most of your recording XML ports with only the callback/transcription attributes renamed.
<Record> reference, pair recording with a menu using <Gather>, or go back to the Twilio → Vobiz overview.