Skip to main content
The Unpod SDK replaces a Plivo multi-party-call (MPC) integration. Webhook field and event names follow Plivo, so most handler logic carries over. This page maps each Plivo call to the SDK, in call order.
IDs: Plivo MPCUUID is the SDK call_id. Plivo CallUUID is the SDK leg_id.

At a glance

1. Dial the agent (leg 1)

Dialing is asynchronous: create returns initiated; progress arrives as Call Status events.

2. Dial the customer after the agent answers

3. Play and stop audio

4. End the call

end on a call that already ended answers 202 again (a 404 only briefly right after hangup) - treat it as done.

5. Webhooks

Same three routes as Plivo. Swap Plivo’s signature check for parse_call_event:
The secret comes from client.telephony.webhook_secret.rotate(). See Webhooks.

Call Status

Recording Callback

One 2-channel WAV per call: agent on the left, customer on the right. Whether a call is recorded follows the recording policy (set by the Unpod team): record=True doesn’t override it today. See Recording.

Incoming Call

The StartApp / Hangup / RecordStop events and the reply XML are the same as Plivo’s - see Incoming Calls.

6. Hangup causes

Any other cause on the customer leg also ends the call. For every cause and code, see Hangup causes.

Known differences

  • Per-participant recordings: no per-participant files. One 2-channel WAV per call (split it).
  • Two participants per call at most.
  • Callback and audio URLs must be public https.
  • speak depends on TTS being available for your org.
  • Buying numbers from a carrier is not in the SDK - use the Unpod pool, or bring your own trunk.
Full hotline handler: Number Masking.