To get the details of a call, you will need to make an HTTP GET request to
https://<your_api_key>:<your_api_token><subdomain>/v3/accounts/<your_sid>/calls/<call_sid>
Example (For Singapore Stamp)-
https://<your_api_key>:<your_api_token>@ccm-api.exotel.com/v3/accounts/<your_sid>/calls/<call_sid>
Example (For Mumbai Stamp)
https://<your_api_key>:<your_api_token>@ccm-api.in.exotel.com/v3/accounts/<your_sid>/calls/<call_sid>
<your_api_key> and <your_api_token> with the API key and token created by you OR use Basic Authentication.<your_sid> with your “Account sid”<subdomain> with the region of your account<call_sid> with the Call Sid provided during Click to Call API request.<your_api_key> , <your_api_token> and <your_sid> are available in the API settings page of your Exotel Dashboard
curl -X GET https://:/v3/accounts//calls/ -H 'content-type: application/json'
var request = require("request");
var options = { method: 'GET',
url: 'https://:/v3/accounts//calls/',
headers:
{ 'content-type': 'application/json' } };
request(options, function (error, response, body) {
if (error) throw new Error(error);
console.log(body);
});
$request->setMethod(HTTP_METH_GET);
$request->setHeaders(array(
‘content-type’ => ‘application/json’,
));
try {
$response = $request->send();
echo $response->getBody();
} catch (HttpException $ex) {
echo $ex;
}
import requests
url = "https://:/v3/accounts//calls/"
headers = {
'content-type': "application/json"
}
response = requests.request("GET", url, headers=headers)
print(response.text)
package main
import (
"fmt"
"strings"
"net/http"
"io/ioutil"
)
func main() {
url := "https://:/v3/accounts//calls/"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("content-type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := ioutil.ReadAll(res.Body)
fmt.Println(res)
fmt.Println(string(body))
}
|
Parameter Name |
Type & Value |
|
request_id |
This indicates the unique id of the request. Useful for debugging and tracing purposes. |
|
method |
This indicates the HTTP method for the request such as GET/POST/PUT etc. |
|
http_code |
This indicates the HTTP code for the request such as 200, 400, 500 etc. |
|
response |
Response block contains the user device record matching the request URI. The block contains
|
|
Parameter |
Value/Description |
|
sid |
string; an alpha-numeric unique identifier of the call |
|
direction |
|
|
virtual_number |
This is your ExoPhone/Exotel Virtual Number |
|
state |
|
|
status |
Overall call status, could be one of:
|
|
legs |
This URL can be used as a GET API to fetch the legs information of a given call_sid |
|
created_time |
Time in format YYYY-MM-DD HH:mm:ss+|–hh:mm; Date and time (along with the offset) at which the user initiated the API |
|
updated_time |
Time in format YYYY-MM-DD HH:mm:ss+|–hh:mm; Date and time (along with the offset) at which the status of the call was last updated in our system |
|
start_time |
Time in format YYYY-MM-DD HH:mm:ss+|–hh:mm; Date and time (along with the offset) when the call request was initiated to the operator |
|
end_time |
Time in format YYYY-MM-DD HH:mm:ss+|–hh:mm; Date and time (along with the offset) when the call was completed |
|
total_duration |
Total call duration in seconds (From start_time to end_time) |
|
total_talk _time |
Total time a customer was on call. If there were more than one conversation, it would be the sum of all conversations.
Eg- User 1 spoke to Customer for 5 minutes and transferred to User 2 and spoke to customer for 10 minutes, total_talk_time for the call would be 15 minutes |
|
custom_field |
The value that was passed in the custom_field parameter of the API (if set during the request) will be populated here. |
|
app_id |
Flow ID which was used at the start of the call. Null if flow was not used. |
|
app_name |
Flow Name which was used at the start of the call. Null if flow was not used |
|
digits |
DTMF digits pressed during the call separated by “-” for different applets. Similar to how it is represented in Call Reports |
|
recordings |
Array; It will contain all recordings associated with the call. Each array will contain
|
{
"request_id": "62bd4015e8c04ecea3a5fbd7272f95ae",
"method": "GET",
"http_code": 200,
"metadata": null,
"response": {
"code": 200,
"error_data": null,
"status": "success",
"call_details": {
"sid": "cabfb1dfa8c5e1c7f2c458423b7716b3",
"direction": "outbound",
"virtual_number": "+911414941199",
"state": "active",
"status": null,
"legs": "/v3/accounts/Exotel/calls/cabfb1dfa8c5e1c7f2c458423b7716b3/legs",
"created_time": "2022-11-03 22:54:40+05:30",
"updated_time": "2022-11-03 22:54:58+05:30",
"start_time": "2022-11-03 22:54:57+05:30",
"end_time": "1970-01-01 05:30:00+05:30",
"total_duration": null,
"total_talk_time": null,
"custom_field": null,
"app_id": null,
"app_name": null,
"digits": null,
"recordings": null
}
}
}
{
"request_id": "9107ba6bdfc5493e806b7ea82706f2e0",
"method": "GET",
"http_code": 200,
"metadata": null,
"response": {
"code": 200,
"error_data": null,
"status": "success",
"call_details": {
"sid": "cabfb1dfa8c5e1c7f2c458423b7716b3",
"direction": "outbound",
"virtual_number": "+911414941199",
"state": "terminal",
"status": "completed",
"legs": "/v3/accounts/Exotel/calls/cabfb1dfa8c5e1c7f2c458423b7716b3/legs",
"created_time": "2022-11-03 22:54:40+05:30",
"updated_time": "2022-11-03 22:56:05+05:30",
"start_time": "2022-11-03 22:54:57+05:30",
"end_time": "2022-11-03 22:56:04+05:30",
"total_duration": null,
"total_talk_time": 59,
"custom_field": null,
"app_id": null,
"app_name": null,
"digits": null,
"recordings": [
{
"url": "https://s3-ap-south-1.amazonaws.com/exotel-mum1-recordings/Exotel/cabfb1dfa8c5e1c7f2c458423b7716b3.mp3"
}
]
}
}
}