Twilio <Dial> Timeout: Inconsistent 'canceled' Status
0 reputation · 21 Jan 2022, 19:18 UTC
Problem: Inconsistent 'canceled' CallStatus in Timeout
When an outbound call uses the timeout attribute on the <Dial> verb, Twilio waits for the called party to answer. If the caller hangs up before the call is answered, Twilio sends a StatusCallback with a CallStatus value. Although the documentation lists canceled as a possible status, real‑world tests show that this value is not always returned; many carriers deliver no-answer or failed instead.
The uncertainty makes it difficult to implement deterministic cleanup and billing logic. Developers must decide whether to rely on canceled, treat any non‑completed status as a failure, or inspect additional fields such as callDuration to infer the caller’s intent.
What status does Twilio reliably send when a caller ends the call before connection? Are there carrier‑specific differences that affect this value? How can an application reliably detect a user‑initiated hang‑up in all scenarios?