Reference
Call lifecycle
Complete reference for every call status and ended-reason code. Use this when filtering call logs, building webhook handlers, or diagnosing why a call stopped.
Call state flow
queuedringingin-progresscompleted
Outbound calls may also end at busy, no-answer, or failed before reaching in-progress.
Call statuses
Returned in the status field of the call object.
| Status | Type | Description |
|---|---|---|
queued | Transitional | Call has been created and is waiting for a carrier slot or agent availability. |
ringing | Transitional | The destination number is ringing. For outbound calls, waiting for recipient to answer. |
in-progress | Active | Call is active. Myra and the caller are connected. |
forwarding | Transitional | Call is being transferred to another number (e.g. human handoff). |
completed | Terminal | Call ended normally. Check ended_reason for the specific cause. |
busy | Terminal | Outbound: destination was busy. No call was established. |
failed | Terminal | Call could not be established due to a carrier or infrastructure error. |
no-answer | Terminal | Outbound: destination did not answer within the timeout period. |
canceled | Terminal | Call was canceled before it was answered (via API or dashboard). |
Ended reasons
When a call reaches completed status, the ended_reason field explains why. This is also sent in the call.ended webhook event.
| Reason | Trigger | Description |
|---|---|---|
customer-ended-call | Caller | Caller hung up normally. |
assistant-ended-call | Myra | Myra ended the call, typically after completing the task or reaching a configured end condition in the prompt. |
assistant-forwarded-call | Myra | Myra transferred the call to a human agent or another number using the transfer tool. |
assistant-error | System | The LLM returned an error or timed out. Myra could not generate a reply. |
pipeline-error | System | A critical error in the transcription or TTS pipeline terminated the call. |
customer-did-not-give-speech | Caller | No speech detected from the caller within the timeout window. Common for missed outbound calls that were answered by voicemail. |
silence-timed-out | System | Extended silence on both sides exceeded the configured timeout. |
max-duration-exceeded | System | Call reached the maximum duration configured for the agent. |
inbound-trunk-error | Carrier | The inbound SIP trunk returned an error. Contact support if this is frequent. |
outbound-trunk-error | Carrier | The outbound SIP trunk could not route the call. Often a carrier or number-format issue. |
vonage-disconnected | Carrier | Carrier-level disconnect. Check the phone number status in the dashboard. |
Using ended_reason in webhooks
The
ended_reason is included in the call.ended webhook payload. Use it to trigger follow-up actions � e.g. only send a confirmation SMS when the reason is assistant-ended-call, not when it is customer-ended-call prematurely.Related pages
Webhooks & Events
Receive call.ended and other events with the ended_reason in the payload.
Read more
API Reference � Calls
GET /v1/calls and GET /v1/calls/:id � full call object schema.
Read more
Troubleshooting
Debug specific ended_reason codes like assistant-error or pipeline-error.
Read more
Outbound Campaigns
Handle busy, no-answer, and failed statuses in batch outbound flows.
Read more