Call status and disconnection reasons
Every row in Calls has two fields that explain what happened:
- Status: where the call ended up (answered, missed, failed, and so on).
- Disconnection reason (
endCallReasonin the API, webhooks and the MCP tools): why it ended.
Read them together. A Failed status says the call never worked. The reason says what is missing: credits, a trunk, channels, a valid number. The tables below give each value, what it means, and what to fix.
The Calls list shows the reason next to the status only for calls that did not connect. Open the call to see it on every row. The app shows each reason as a label in your language (no_channels shows as Trunk channel limit reached). The tables below use the code, which is what the API, webhooks and exports send.
Status
Section titled “Status”| Label in Calls | API value | Meaning |
|---|---|---|
| Scheduled | scheduled | Outbound call waiting for its time (campaign, callback, API with a time). Not dialed yet. |
| Pending | to_be_processed | Inbound call just arrived and is being routed to an agent. Should last a second or two. |
| Trying | trying | Outbound call sent to the carrier, waiting for the far end. |
| In progress | session_progress | Carrier is playing early media (a ringback tone or an announcement) before an answer. |
| Ringing | ringing | The far end is ringing. |
| Live | in_call | Connected and talking now. |
| Transferring | transferring | A transfer to a person, number or agent is in progress. |
| Answered | answered | Connected and ended normally. The reason says who hung up. |
| Transferred | transferred | Handed to another destination. The AI part of the call is over. |
| Voicemail | voice_mail | Outbound call reached a voicemail greeting. |
| No answer | missed | Nobody picked up, or the call could not reach an agent. Check the reason. |
| Busy | busy | The far end was busy or declined (SIP 486 / 603). |
| Canceled | cancelled | Scheduled call canceled, or the caller hung up before pickup. |
| Answered elsewhere | answered_elsewhere | Ring group: another phone answered first. Not a failure. |
| Failed | failed | The call never connected. The reason tells you what is missing. |
| Failed | failed_during_call | The call connected, then broke. Send the Call ID to Support. |
Disconnection reasons
Section titled “Disconnection reasons”Normal endings
Section titled “Normal endings”These are not failures.
| Reason | Meaning |
|---|---|
caller_hungup | The other party hung up. Shown as Caller hung up, tagged Normal. The most common reason. |
callee_hungup | On a bridged or conference call, the person you connected to hung up. |
call_transferred | The call was transferred. |
transfered_to_<destination>, transfered_to_agent_<name>, transferred to voip connection | The call was transferred, with the destination in the code. |
agent_handoff | The call moved to another AI agent mid-call. The call continues as a new row. |
answered_elsewhere | Another phone in the ring group answered first. |
caller_called_back | The same caller called back while this call was open. The new call replaces this one. |
| Free text such as “goodbye” or “caller confirmed the booking” | The agent ended the call itself with one of its Hang up reasons. The text is the agent’s own reason. |
Ended by the agent or a limit
Section titled “Ended by the agent or a limit”| Reason | Meaning | What to do |
|---|---|---|
call_maximum_time_reached | The call reached its maximum duration. | Expected for long calls. Ask Support if the limit is too short. |
maximum_time | The media session sat idle and was closed. | Nothing, unless you see it often. |
caller_does_not_speak | The call connected but the caller never spoke. | Usually a pocket dial or a silent line. |
caller_unresponsive_after_nudges | The caller went silent, and the agent hung up after its reminders. | Normal on outbound. Many on inbound can mean an audio problem. Report one Call ID. |
call_stuck | The agent stopped making progress (a loop or no reply) and the call was closed. | Report the Call ID. |
incorect_code | The caller used up their tries on a code or PIN check. (The code is spelled this way.) | Expected. |
pending_transfer_confirmation_timeout | A transfer waited for confirmation and nobody confirmed. | Check who confirms transfers under Transfer. |
transfer_request_false | The transfer was refused at confirmation. | Expected when the person refuses the transfer. |
Voicemail and carrier messages (outbound)
Section titled “Voicemail and carrier messages (outbound)”The agent recognizes these from what it hears on the line.
| Reason | Meaning |
|---|---|
caller_voice_mail | Voicemail greeting. The status is Voicemail. |
caller_does_not_exist | “This number is not in use” type message. Remove the number from your list. |
inbound_calls_blocked | The line blocks incoming calls (the Greek “φραγή εισερχομένων” message). |
The call could not be placed or reached
Section titled “The call could not be placed or reached”| Reason | Meaning | What to do |
|---|---|---|
caller_busy | Busy (SIP 486). | Retry later. Campaigns retry based on the campaign settings. |
caller_declined | Rejected (SIP 603). Shown as Declined. | Expected. |
no_answer, ring_timeout, no_pickup_after_ringing_max_seconds | Rang out with no answer. | Raise the ring time under Outgoing if calls ring out too soon. |
request_timeout | The far end did not respond in time (SIP 408). | Retry. If every call gets this, check the trunk. |
unavailable, temporarily_unavailable | Phone off or unreachable (SIP 480). | Retry later. |
phone_number_not_found | Number does not exist or is badly formatted (SIP 404). | Fix the number. Use international format (+30…). |
forbidden | The carrier refused the call (SIP 403). | The trunk is not allowed to call that destination, or the caller ID is not yours. Ask your carrier. |
not_acceptable_here | Audio format mismatch (SIP 488). | Check the trunk codec. Greek and EU carriers usually want PCMA. See Your own carrier. |
extension_rejected | The user’s extension or app rejected the call. | Expected. |
failed_to_connect | Other connection failure. | Retry. If it repeats, send Support the Call ID. |
Something is missing on your side
Section titled “Something is missing on your side”These reasons mean something has to be fixed in your account or at your carrier.
| Reason | What is missing | Where to fix it |
|---|---|---|
no_seconds_available_in_plan | Minutes. The plan is out of voice minutes. | Subscription & Billing: top up or upgrade. |
no_channels_available_in_plan | Concurrent-call slots. The plan was already on its maximum number of simultaneous calls. | Subscription & Billing. See concurrent calls. |
no_channels | Trunk channels. The carrier or trunk was already on its maximum number of simultaneous calls. | Raise the channel count at your carrier and on the trunk. |
insufficient_balance_in_voip_provider | Carrier credit. Your carrier account is out of balance. | Top up at your carrier, not in Voice Logica. |
voip_provider_issue, voip_temporary_issue | The carrier had a problem. | Retry. If it repeats, contact your carrier. |
voip_phone_service_failed | The phone line failed to authenticate or register (SIP 403/404). | Check the trunk or line username and password in Telephony. |
voip_phone_not_exist | The line used for the call was deleted. | Pick an existing trunk or line on the campaign or API call. |
no_agent, no_agent_id_connected_to_phone | No agent on the number. | Put an agent on the number: agent → Channels → Telephony. |
no_voip_connection_connected_to_phone | The number is not linked to a trunk or line. | Telephony. |
forward_call_to_agent_<id>_not_found | A routing rule or workflow sends calls to an agent that no longer exists. | Fix the rule under Telephony → Routing, or the workflow. |
outside_campaign_schedule | The campaign tried to dial outside its calling hours. | Expected. The lead gets dialed in the next window. |
do_not_respond_to_call | A Call Start Trigger workflow told the agent not to answer (for example, a blocked caller). Status is No answer. | Expected, if you built that workflow. |
fax | A fax machine called. | Nothing. |
call_cancelled_during_pickup_delay | The caller hung up during the pickup delay, before the agent answered. | Shorten the pickup delay if this happens often. |
mobile_busy_forward_user_unavailable, mobile_busy_forward_ai_fallback:<reason> | The call was forwarded to a user’s mobile, the user was busy or unavailable, and the AI took the call (or could not). | Check the user’s forwarding setup. |
Platform side
Section titled “Platform side”You cannot fix these yourself. Send Support the Call ID.
| Reason | Meaning |
|---|---|
no_rtp_stream | No audio arrived for 30 seconds, so the call was closed. |
no_rtp_service, rtp_alloc_failed | No media server was available for the call. |
transfer_failed, transfer_rejected | The transfer could not be completed. The caller stays with the agent or is disconnected. Check the destination first. |
shutdown | The call was closed during a server restart. |
Outbound calls that never dialed
Section titled “Outbound calls that never dialed”When a scheduled or campaign call is skipped before dialing, the reason is a sentence instead of a code. Examples: “Max retries reached”, “Daily attempt limit reached”, “Insufficient credits”, “Duplicate call”, “Campaign lead already closed”. The sentence says what stopped the call.
What is not covered here
Section titled “What is not covered here”- Your agent’s own Hang up reasons (for example
call_completed) are set on Hang up. They are stored as the disconnection reason when the agent ends the call. - The agent’s own free-text reasons are shown as written, not translated.
The call is Failed and has no reason
Send Support the Call ID. Every failed call should have a reason.
Which values do webhooks and the API send?
The same status and endCallReason codes as the tables above. Match on the code, not the translated label.
