For any call that gets routed via Exotel, the status is tabulated based on the direction of the call initiation viz. Incoming and Outgoing, which in turn results in inferring the Leg1 status (status of the 1st party on the call i.e. From Number) and Leg2 status (status of the 2nd party on the call i.e. To Number).
Dashboard: Inbox & Reports
Completed - the caller & the callee were successfully connected over a call
Call attempt - the caller hung up before the call could be routed to any of the agents
Missed call:
No answer - the call was not answered by any of the agents after it rang for the specified duration
Busy - none of the agents were available to answer the call
Failed - calls could not either reach or connect to the agents
Voicemail - based on the call flow, if a voicemail applet is configured, then any calls that end up here would have a final status indicating that it is a ‘voicemail’
Dashboard: Call Stats (Beta)
This feature is available only on demand and might be chargeable. Please contact your account manager or write to hello@exotel.com.
What does the status bucket mean on the page?
completed - The destination number answered the call.
no-answer - Exotel dialed the number but no one answered before the timeout elapsed.
canceled - The caller disconnected the call during a dial attempt or ringing the destination number.
busy - Exotel dialed the number but received a busy response from the destination number.
Inbound calls
Leg1Status will always be 'completed' if the call is picked up by Exotel i.e., if the caller is connecting to a call flow that has a menu prompt such as Greeting, IVR, Gather, and Voicemail as the first applet.
Leg1Status | Leg2Status (DialCallStatus) | Status | Description |
completed | completed | completed | This indicates that a connection was established and audio was exchanged between the caller and the callee. |
completed | no-answer | completed | Exotel dialed the number but we did not get an answered event back before the timeout value elapsed. |
completed | busy | completed | Exotel dialed the number but received a busy response |
completed | failed | completed | Exotel's carriers could not connect the call. Possible reasons include the number is switched off or not reachable, the number being invalid, transient connection error, etc. |
completed | canceled | completed | Exotel dialed the number (Leg2) but Leg1 disconnected the call before we received the completed / busy / failed / no-answer signal (i.e. before the timeout period elapsed). This can occur if a user disconnects when the call is queued / ringing or as he begins to hear the operator tone suggesting the phone number is invalid or switched off. |
completed | N/A (empty) | completed | The incoming call didn't have a second leg or the user disconnected before Exotel reached the connect applet to begin dialing. |
Completed | N/A | Missed-Call | This status comes up when all of your agents were busy on other calls or all of them had toggled off. |
Leg1Status can vary in case the caller is connecting to a call flow that does not have a menu prompt in the beginning as Exotel will directly patch the user to the 2nd leg without picking up the call.
Leg1Status | Leg2Status (DialCallStatus) | Status | Description |
busy | no-answer / busy | completed | Exotel dialed the number but we did not get answered event back before the timeout value elapsed or Leg2 disconnected. In such cases, Exotel will send a busy signal back to Leg1. |
no-answer | no-answer | completed | Exotel dialed the number but we did not get answered event back before the timeout value elapsed. In such cases, Exotel will send a no-answer signal back to Leg1. |
busy | canceled | completed | Exotel dialed the number but Leg1 disconnected the call before the timeout value elapsed. In such cases, Exotel will receive a busy signal from Leg1. |
NOTE: In case of an incoming call, for all purposes, Leg2Status will determine all scenarios to find out what happened with a call. 'Status' and 'Leg1Status' are not really relevant to be used for practical purposes and are present due to archaic (backward compatibility) reasons
Explanation:
The overall ‘Status’ will always be 'completed' in case of an incoming call as it has successfully arrived at Exotel from the caller.
Leg2Status (also passed as 'DialCallStatus' in pass-thru) will refer to the call status of the callee (to whom the caller wanted to get connected to) of the last attempted number via the connect applet (if it attempts to multiple numbers).
Outbound calls
Connecting two numbers (API Link)
Leg1Status | Leg2Status (DialCallStatus) | Status | Description |
completed | completed | completed | This indicates that a connection was established and audio was exchanged between the caller and the callee. |
completed | no-answer | no-answer | This indicates Leg1 picked up the call and Exotel dialed the Leg2 number but we did not get an answered event back before the timeout value elapsed. |
completed | busy | busy | This indicates Leg1 picked up the call and Exotel dialed the Leg2 number but received a busy response |
completed | failed | failed | This indicates Leg1 picked up the call and Exotel dialed the Leg2 number but Exotel's carriers could not connect the call. Possible reasons include the number is switched off or not reachable, the number being invalid, transient connection error, etc. |
completed | canceled | failed | Exotel dialed the number (Leg2) but Leg1 disconnected the call before we received the completed / busy / failed / no-answer signal (i.e. before the timeout period elapsed). This can occur if a user disconnects before the ringing is completed or as soon as he begins to hear the operator tone suggesting the phone number is invalid / switched off. |
completed | N/A (empty) | failed | This indicates Leg1 picked up the call but the call didn't have a second leg or the user disconnected before Exotel began to dial. |
no-answer | N/A (empty) | no-answer | This indicates Exotel dialed the Leg1 number but we did not get an answered event back before the timeout value elapsed. |
busy | N/A (empty) | busy | Exotel dialed the Leg1 number but received a busy response. |
failed | N/A (empty) | failed | Exotel's carriers could not connect Leg1 of the call. Possible reasons include the number is switched off or not reachable, the number being invalid, transient connection error, etc. |
NOTE: In case of an outgoing call, for all purposes, Leg1Status and Leg2Status will determine all scenarios to find out what happened with a call. 'Status' is not really relevant to be used for practical purposes and is present due to archaic (backward compatibility) reasons
Connecting a number to a call flow (API Link)
Leg1 Status | Leg2 Status (DialCallStatus) | Status | Description |
completed | completed | completed | This indicates that a connection was established and audio was exchanged between the caller and the callee. |
completed | no-answer | completed | This indicates Leg1 picked up the call and Exotel dialed the Leg2 number but we did not get an answered event back before the timeout value elapsed. |
completed | busy | completed | This indicates Leg1 picked up the call and Exotel dialed the Leg2 number but received a busy response |
completed | failed | completed | This indicates Leg1 picked up the call and Exotel dialed the Leg2 number but Exotel's carriers could not connect the call. Possible reasons include the number is switched off or not reachable, the number is invalid, transient connection error, etc. |
completed | canceled | completed | Exotel dialed the number (Leg2) but Leg1 disconnected the call before we received the completed / busy / failed / no-answer signal (i.e. before the timeout period elapsed). This can occur if a user disconnects before the ringing is completed or as soon as he begins to hear the operator tone suggesting the phone number is invalid / switched off. |
completed | N/A (empty) | completed | This indicates Leg1 picked up the call but the call didn't have a second leg or the user disconnected before Exotel began to dial. |
no-answer | N/A (empty) | no-answer | This indicates Exotel dialed the Leg1 number but we did not get an answered event back before the timeout value elapsed. |
busy | N/A (empty) | busy | Exotel dialed the Leg1 number but received a busy response. |
failed | N/A (empty) | failed | Exotel's carriers could not connect Leg1 of the call. Possible reasons include the number is switched off or not reachable, the number being invalid, transient connection error, etc. |
NOTE: In case of an outgoing call, for all purposes, Leg1Status and Leg2Status will determine all scenarios to find out what happened with a call. 'Status' is not really relevant to be used for practical purposes and is present due to archaic (backward compatibility) reasons
Points to remember:
- In the Call details API, we have the Leg1Status and Leg2Status that denote the statuses of those specific legs, in a particular call
Here, you would also find an additional parameter called ‘canceled’, which would essentially indicate that ‘the call was canceled while queued or ringing’ i.e. during the call run
Similarly, in the pass-thru applet, we have a ‘DialCallStatus’ that corresponds to Leg2Status
Irrespective of the status, a call is charged based on the Leg1 or Leg2 (or both) having answered a call from an Exotel number (ExoPhone), at any given point in time
- Below are the reasons for Leg2 which can be N/A (empty/null):
- No number is returned to dial out the 2nd leg of the call
- The number is returned but before even Exotel starts dialing out, the 1st leg caller dropped the call
- If there is no Leg2 in the call flow
Glossary:
Leg1Status | Status of the first leg of the call. Can be one of
|
Leg2Status | Status of the second leg of the call. Can be one of
|
If you have any questions or concerns, please connect with us using the chat widget on your Exotel Dashboard or Whatsapp us on 08088919888