Standard Plivo Hangup Causes
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 Source | Description |
---|---|
Caller | The call was hung up by the caller. |
Call recipient | The call was hung up by the individual who was dialed. |
Plivo | Plivo initiated the hangup. Several scenarios, detailed in the hangup causes below, can result in Plivo initiating a call hangup. |
Carrier | The hangup signal was received from the remote carrier. |
API Request | The call was terminated via the Hangup or Cancel Call API request. |
Answer XML | The call was hung up using the Hangup XML element. |
Error | An error condition led to the call being terminated. |
Unknown | The source of the hangup could not be determined. |
List of hangup causes
Hangup Code and Hangup Cause | Description | Possible Hangup Sources | Applicable to Call Types | Possible 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. | Unknown | Outbound and Inbound | Any |
(1000) Canceled | The call was canceled using the Hangup Call API before it was answered. | API Request | Outbound and Inbound | Initiated Ringing |
(1010) Canceled (Out Of Credits) | The call was auto-canceled because the account ran out of credits. | Plivo | Outbound and Inbound | Any |
(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. | Plivo | Outbound | Any |
(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 Calls | Initiated |
(2010) Destination Out Of Service | The destination number is unavailable or out of service. | Carrier | Outbound Calls | Initiated |
(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. | Plivo | Outbound 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. | Plivo | Outbound | Pre-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. | Plivo | Outbound | Pre-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. | Plivo | Outbound | Pre-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. | Plivo | Outbound | Pre-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:
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. | Plivo | Outbound and Inbound | Initiated |
(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 Calls | Initiated, 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 Inbound | Initiated |
(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 | Outbound | Any |
(3050) Unallocated number | The destination number may be invalid or out of service. Please verify the accuracy of the destination number. | Plivo Carrier | Outbound | Any |
(3070) Request timeout | The carrier’s server located remotely did not generate a response within an appropriate time frame. | Carrier | Outbound | Initiated |
(3080) Internal server error from carrier | The server encountered an unexpected condition that prevented it from fulfilling the client’s request. | Plivo Carrier | Outbound | Any |
(3090) Network congestion from carrier | The remote carrier experienced network congestion that prevented it from fulfilling the request. | Carrier | Outbound | Any |
(3100) Busy everywhere | A call recipient’s end system was contacted successfully but the call recipient was busy. | Carrier | Outbound | 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 | Outbound | Any |
(3120) User does not exist anywhere | The end user does not exist. | Carrier | Outbound | Any |
(3130) Spam block | The end operator/carrier rejected the call due to possible spam flag on the from number used. | Carrier | Outbound | Any |
(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. | Plivo | Outbound | Any |
(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. | Plivo | Outbound and Inbound | Answered |
(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, Plivo | MPC API and MPC XML | Answered |
(4030) Kicked Out Of Multiparty Call | The participant was removed from the MPC using the Remove a Participant API. | API request, Plivo | MPC API and MPC XML | Answered |
(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. | Error | Outbound and Inbound | Any |
(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. | Error | Outbound and Inbound | Any |
(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. | Error | Outbound and Inbound | Any |
(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 For calls initiated using the Dial XML element, you can configure max call duration using the | Plivo | Outbound Calls | Answered |
(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 For calls initiated using the Dial XML element, you can configure max ring time using the | Plivo | Outbound 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. | Plivo | Outbound and Inbound | Answered |
(7011) Error Reaching Answer URL | A non-2xx HTTP response was encountered while fetching XML instructions from the specified answer URL. | Error | Outbound 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 | Error | Outbound and Inbound | Answered |
(7013) Error Reaching Transfer URL | A non-2xx HTTP response was encountered while fetching XML instructions from the specified transfer URL. | Error | Outbound 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. | Error | Outbound 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 Note that an invalid action URL results in call termination only if the | Error | Outbound and Inbound | Answered |
(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 . | Error | Outbound 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 . | Error | Outbound 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. | Error | Outbound and Inbound | Answered |
(7033) Invalid Method For Transfer URL | An unsupported HTTP method was specified for the transfer URL. Only GET and POST methods are supported. | Error | Outbound 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. | Error | Outbound 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. | Error | Outbound 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 | Error | Outbound and Inbound | Answered |
(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. | Error | Outbound 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. | Error | Outbound 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. | Plivo | Outbound (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 | API Request | Outbound (API Calls) | Answered |
(9110) Confirm Key Challenge Failed | The Add Participant API call was disconnected as the participant failed to enter the | Plivo | MPC API | Pre-Answer |