Skip to main content

Introduction

In every Bolna Voice AI conversation, the system records metadata about how and why a call was terminated. This information is critical for debugging, analytics, compliance, and improving user experience across various industries, geographies, and use cases. Each call termination is associated with:
  • hangup_by: Identifies the party or system that initiated the hangup (e.g., caller, callee, system).
  • hangup_code: A numeric code indicating the specific reason for the hangup, typically provided by the telecom provider or API response.
  • hangup_reason: A descriptive reason for the call termination, provided by either Bolna or the telephony provider.

Why Hangup Codes Matter

Understanding hangup statuses and codes helps:
  • Improve call handling workflows and automation
  • Identify systemic or geographic call issues
  • Monitor telecom partner reliability (e.g., Plivo, Twilio)
  • Pinpoint user-initiated hangups vs system or error-based disconnects
  • Enhance regional support (United States, India, Southeast Asia, MENA, etc.)

List of Hangup Statuses and Codes

Below is a detailed list of common call hangup reasons and their associated codes used in Bolna’s Voice AI system:
Hangup byHangup DescriptionHangup provider code
API RequestCall was ended by the Bolna agent via an API request4000, 4020
CalleeThe recipient of the call hung up (applies to outbound calls)3020, 4000
CallerThe caller ended the call (applies to inbound calls)4000
CarrierCall was terminated by the telecom carrier2000, 3000, 3010, 3020, 3040, 3050, 3070
ErrorCall ended due to an unexpected error3080, 3090, 3110, 5010, 5020, 7011, 8011
PlivoThe telephony provider (Plivo) disconnected the call1010, 4010, 5020, 6000, 6010, 6020
UnknownReason for call termination is unknown0
(empty)No hangup reason was recorded(empty)

Hangup Reasons

Bolna-Side Hangup Reasons

Bolna provides specific hangup reasons based on agent configuration:
  • inactivity_timeout: Call ended due to silence time threshold being exceeded
  • llm_prompted_hangup: Call ended based on custom prompt evaluation

Telephony Provider Hangup Reasons

Hangup reasons may also be provided by the telephony provider. The availability and detail of these reasons depend on the specific telephony provider being used.
Hangup ReasonDescription
Call recipient was busyCalled party was busy
Call unansweredCalled party did not answer
Call recipient number invalidInvalid or unreachable phone number
Call recipient hungupCall recipient ended the call
Carrier declinedCall declined by carrier
Call recipient rejectedCall was rejected by the called party
failedCall could not be initiated
Carrier ended because call limit exceededCall terminated due to duration limits
Bolna ErrorError from Bolna system
Carrier unable to receive mediaMedia connection issues
Network Congestion From CarrierNetwork congestion from carrier
End of inputs from BolnaCall ended after a complete conversation (without prompt)
Carrier unable to reach bolnaCarrier connectivity issue to Bolna
Carrier ended call because MPC duration limit exceededMulti-party call duration limit reached
Telephony Internal ErrorInternal telephony system error
Carrier Internal ErrorInternal carrier error
Call completedCall completed successfully
Call canceledCall was canceled
Call endedCall terminated
Call timed outCall exceeded timeout limit
UnknownUnknown reason

Notes on Code Interpretation

  • Multiple codes may map to a single hangup_by status depending on the network or device behavior.
  • Codes like 4000 appear in multiple categories (API, caller, callee) - interpretation depends on context and direction of the call (inbound vs outbound).
  • Carrier-related hangups are often location-sensitive. If you’re noticing frequent 3010 or 3050 codes in a specific region, consider checking local routing or carrier coverage.