Plivo identifies why and how calls are disconnected in call detail records (CDR), which you can retrieve via our API or view on the Plivo console at Voice > Logs > Calls.

Hangup information is also included in callback requests sent upon call hangup.

  • For outbound API calls, hangup information is included in the payload sent to the hangup_url specified in the Make Call API request.
  • For incoming calls, this information is included in the payload sent to the hangup_url specified for the associated Plivo application.
  • For calls initiated using the Dial XML element, this information is included in the payload of DialHangup events sent to the Dial callbackUrl.

List of hangup sources

Hangup SourceDescription
CallerThe call was hung up by the caller.
Call recipientThe call was hung up by the individual who was dialed.
PlivoPlivo initiated the hangup. Several scenarios, detailed in the hangup causes below, can result in Plivo initiating a call hangup.
CarrierThe hangup signal was received from the remote carrier.
API RequestThe call was terminated via the Hangup or Cancel Call API request.
Answer XMLThe call was hung up using the Hangup XML element.
ErrorAn error condition led to the call being terminated.
UnknownThe source of the hangup could not be determined.

List of hangup causes

Hangup Code and Hangup CauseDescriptionPossible Hangup SourcesApplicable to Call TypesPossible Call States At Hangup
(0)
Unknown

The reason for hangup could not be determined.

A known bug sets hangup cause to Unknown for calls hung up using the Delete All Calls API.

UnknownOutbound and InboundAny
(1000)
Canceled
The call was canceled using the Hangup Call API before it was answered.API RequestOutbound and Inbound

Initiated

Ringing

(1010)
Canceled (Out Of Credits)
The call was auto-canceled because the account ran out of credits.PlivoOutbound and InboundAny
(1020)
Canceled (Simultaneous dial limit reached)
The call could not be connected because the Simultaneous dial limit had been surpassed for the destination number/SIP endpoint.PlivoOutboundAny
(2000)
Invalid Destination Address

The destination number or SIP endpoint was found to be invalid.

Check that the destination number is valid and is specified in E.164 format (e.g. +12292442099 or 12292442099).

Plivo

Carrier

Outbound CallsInitiated
(2010)
Destination Out Of Service
The destination number is unavailable or out of service.CarrierOutbound CallsInitiated
(2020)
Endpoint Not Registered

The destination SIP endpoint was found to be unregistered or could not be reached.

Confirm that the endpoint was logged in and connected to internet. If the call was to an endpoint connected through the Plivo iOS or Android SDK, ensure that your application is correctly configured to receive VoIP push notifications from Plivo. Read more about debugging calls to endpoints on iOS and Android SDKs.

PlivoOutbound Calls (SIP Calls)Initiated
(2030)
Destination Country Barred

The call was barred, as the destination country are disabled for the account or subaccount that initiated the call.

Check country permissions under Voice > Geo Permissions on the Plivo console.

PlivoOutboundPre-Initiation
(2040)
Destination Number Barred

The call was barred, as calls to premium rate numbers are disabled for the account or subaccount that initiated the call.

Check high risk permissions under Voice > Geo Permissions on the Plivo console.

PlivoOutboundPre-Initiation
(2050)
Destination Prefix Barred

The call was blocked because the destination prefix is not permitted for the account or subaccount that initiated the call.

Check prefix permissions under Voice > Geo Permissions on the Plivo console.

PlivoOutboundPre-Initiation
(2060)
Loop Detected
The outbound B-leg call was barred because the call would have resulted in a call loop by redialing the A leg’s To number.PlivoOutboundPre-Initiation
(2070)
Violates Media Anchoring

This error occurs for PSTN (Public Switched Telephone Network) calls to/from India due to local regulations. Here’s what you need to know:

  • Applies only to India PSTN calls.
  • For outbound calls: The server initiating the call to Plivo must be located in India.
  • For inbound calls: The application handling the inbound call must be located in India.
  • Conference calls should not mix PSTN and WebRTC legs, as this is not allowed by local regulations.

If you’re facing this issue, ensure that the server or application involved in the call is based in India and that conference calls don’t mix PSTN with WebRTC. For further assistance, feel free to contact Plivo support.

PlivoOutbound and InboundInitiated
(3000)
No Answer
The destination was unavailable or unreachable when the call was attempted.

Plivo, If the destination is a Plivo SIP endpoint.

Carrier, If the destination is a PSTN phone number or external SIP endpoint.

Outbound CallsInitiated, Ringing
(3010)
Busy Line
A busy signal was received from the called party.

Plivo, if the destination is a Plivo SIP endpoint

Carrier, if the destination is a PSTN phone number or external SIP endpoint

Outbound and InboundInitiated
(3020)
Rejected
The call was rejected by the called party.

Called party

Answer XML, if an inbound call is rejected using the Hangup XML element

Outbound and Inbound

Initiated

Ringing

(3030)
Unknown Caller ID
The call was rejected because the outbound call was initiated using a non-Plivo number as the caller ID. To ensure successful call termination, please use a number rented from Plivo.

Plivo

Answer XML, if an inbound call is rejected using the Hangup XML element

Outbound

Pre-Initiation

Ringing

(3040)
Forbidden
Request is valid, but the destination may have rejected or blocked the incoming call. Have the call recipient check their side to make sure calls aren’t blocked.

Plivo

Carrier

OutboundAny
(3050)
Unallocated number
The destination number may be invalid or out of service. Please verify the accuracy of the destination number.

Plivo

Carrier

OutboundAny
(3070)
Request timeout
The carrier’s server located remotely did not generate a response within an appropriate time frame.CarrierOutboundInitiated
(3080)
Internal server error from carrier
The server encountered an unexpected condition that prevented it from fulfilling the client’s request.

Plivo

Carrier

OutboundAny
(3090)
Network congestion from carrier
The remote carrier experienced network congestion that prevented it from fulfilling the request.CarrierOutboundAny
(3100)
Busy everywhere
A call recipient’s end system was contacted successfully but the call recipient was busy.CarrierOutbound

Initiated

Ringing

(3110)
Declined
The system was contacted successfully, but the user or end operator either cannot or does not want to participate.

Error

Carrier

OutboundAny
(3120)
User does not exist anywhere
The end user does not exist.CarrierOutboundAny
(3130)
Spam block
The end operator/carrier rejected the call due to possible spam flag on the from number used.CarrierOutboundAny
(3140)
DNO Caller ID
Indicates the caller ID used is part of the Do Not Originate (DNO) list. This Caller ID can only be used to accept incoming calls.PlivoOutboundAny
(4000)
Normal Hangup
The call was terminated normally.

Caller

Called party

API request, if the call was hung up using the Hangup API

Answer XML, if the call was hung up using the Hangup XML element

Outbound and Inbound

Ringing

Answered

(4010)
End Of XML Instructions

There were no more XML instructions to execute.

This is a normal hangup reason for calls that are being controlled by their own XML. This includes A legs (outbound and inbound) and B legs that have been transferred to their own XML using the Transfer API.

PlivoOutbound and InboundAnswered
(4020)
Multiparty Call Ended

The call was canceled using the Stop an MPC API request, or the MPC ended due to reaching its max duration limit.

API request, PlivoMPC API and MPC XMLAnswered
(4030)
Kicked Out Of Multiparty Call

The participant was removed from the MPC using the Remove a Participant API.

API request, PlivoMPC API and MPC XMLAnswered
(5000)
Network Error
A network error resulted in the call being hung up. This is a generic error that covers fatal network conditions and signaling issues. Please contact Plivo support if you encounter this error for your call flows.ErrorOutbound and InboundAny
(5010)
Internal Error
An error condition within the Plivo system resulted in the call being hung up. Please contact Plivo support if you encounter this error for your call flows.ErrorOutbound and InboundAny
(5020)
Routing Error
The call could not be routed to the destination address. Please contact Plivo support if you encounter this error for your call flows.ErrorOutbound and InboundAny
(6000)
Scheduled Hangup

The call was automatically terminated based on the max duration configured for the call.

For API-initiated calls, you can configure max call duration using the time_limit request parameter.

For calls initiated using the Dial XML element, you can configure max call duration using the timeLimit attribute. This property defaults to four hours when not specified.

PlivoOutbound CallsAnswered
(6010)
Ring Timeout Reached

The call was automatically terminated as it was not answered within the ring timeout value configured for the call.

For API-initiated calls, you can configure max ring time using the ring_timeout request parameter. This property defaults to 120 seconds when not specified.

For calls initiated using the Dial XML element, you can configure max ring time using the timeout attribute. This property defaults to 120 seconds when not specified.

PlivoOutbound Calls

Initiated

Ringing

(6020)
Media Timeout
Plivo terminated the call because it didn’t receive any media packets from the remote carrier or endpoint for 60 seconds. Nonreceipt of media packets for that long indicates that the connection with the remote party was lost.PlivoOutbound and InboundAnswered
(7011)
Error Reaching Answer URL
A non-2xx HTTP response was encountered while fetching XML instructions from the specified answer URL.ErrorOutbound and Inbound

Initiated

Ringing

(7012)
Error Reaching Action URL

A non-2xx HTTP response was encountered while fetching XML instructions from the specified action URL.

Note that a non-2xx response results in call termination only if the redirect attribute is set to true.

ErrorOutbound and InboundAnswered
(7013)
Error Reaching Transfer URL
A non-2xx HTTP response was encountered while fetching XML instructions from the specified transfer URL.ErrorOutbound and Inbound

Ringing

Answered

(7014)
Error Reaching Redirect URL
A non-2xx HTTP response was encountered while fetching XML instructions from the specified redirect URL.ErrorOutbound and Inbound

Ringing

Answered

(7022)
Invalid Action URL

The action URL specified for the XML element is not a valid URL. Please ensure the URL begins with http or https.

Note that an invalid action URL results in call termination only if the redirect attribute is set to true.

ErrorOutbound and InboundAnswered
(7023)
Invalid Transfer URL
The URL specified in the transfer API request is not a valid URL. Please ensure the URL begins with http or https.ErrorOutbound and Inbound

Ringing

Answered

(7024)
Invalid Redirect URL
The URL specified in the redirect XML element is not a valid URL. Please ensure the URL begins with http or https.ErrorOutbound and Inbound

Ringing

Answered

(7032)
Invalid Method For Action URL
An unsupported HTTP method was specified for the action URL. Only GET and POST methods are supported.ErrorOutbound and InboundAnswered
(7033)
Invalid Method For Transfer URL
An unsupported HTTP method was specified for the transfer URL. Only GET and POST methods are supported.ErrorOutbound and Inbound

Ringing

Answered

(7034)
Invalid Method For Redirect URL
An unsupported HTTP method was specified for the redirect URL. Only GET and POST methods are supported.ErrorOutbound and Inbound

Ringing

Answered

(8011)
Invalid Answer XML
The XML returned by the answer URL is not valid Plivo XML. View debug logs for the call on your Plivo console for more information.ErrorOutbound and Inbound

Ringing

Answered

(8012)
Invalid Action XML

The XML returned by the action URL is not valid Plivo XML. View debug logs for the call on your Plivo console for more information.

Note that invalid XML results in call termination only if the redirect attribute is set to true.

ErrorOutbound and InboundAnswered
(8013)
Invalid Transfer XML
The XML returned by the transfer URL is not valid Plivo XML. View debug logs for the call on your Plivo console for more information.ErrorOutbound and Inbound

Ringing

Answered

(8014)
Invalid Redirect XML
The XML returned by the redirect URL is not valid Plivo XML. View debug logs for the call on your Plivo console for more information.ErrorOutbound and Inbound

Ringing

Answered

(9000)
Lost Race

Another B leg that was dialed in parallel accepted the call first.

This is a common hangup reason in simultaneous dial scenarios where multiple destinations are tried in parallel. The first destination to accept the call is connected with the A leg, and other calls are immediately terminated.

PlivoOutbound (Dial XML)Any
(9100)
Machine Detected

The call was answered by an answering machine.

This hangup reason is possible only for API-initiated calls having the machine_detection request parameter set to hangup.

API RequestOutbound (API Calls)Answered
(9110)
Confirm Key Challenge Failed

The Add Participant API call was disconnected as the participant failed to enter the confirm_key DTMF input set in the MPC application.

PlivoMPC APIPre-Answer