Skip to content

Call Lifecycle

The status property describes the overall call request.

Status Meaning Final?
queued Waiting to be dispatched. No
dispatching The system is starting the call. No
active The request is being handled by the calling system. No
completed Processing finished. Inspect outcome for the attempt result. Yes
failed The request could not complete successfully. Yes
canceled The request was canceled. Yes

Calls can move through states quickly; polling may skip intermediate states. Automatic attempts, when configured by the platform, can affect the final timing.

The outcome property refers to the latest attempt and can be null before an outcome is available. Common values include completed, failed, busy, no_answer, canceled, and interrupted.

Use both status and outcome. answeredAt and talkDurationSec provide additional context. An answered or completed call does not prove a user has verified an OTP; your application must validate the submitted code separately.

  1. Generate an OTP and an application verification ID.
  2. Submit the call with that ID as the idempotency key.
  3. Store callId alongside your verification record.
  4. Poll Get Call Status until a final state or your polling deadline.
  5. Keep OTP expiry, resend timing, and verification attempt limits in your application.