Download Call Recordings
To download individual recordings, click on the conversation you'd like to download. The details of the call will appear in the new pop-up window. There will be a download button in this window, check for the three dots. Click on it to download the recording.

Download recordings in bulk
First, download the report of your choice. If you are on a *nix machine and if you have access to a shell, then you could run the following command:
for i in `cat Exotel_exotel_incoming_reports_dec_09.csv | cut -d , -f 14 | grep -v recording-file-does-not-exist | grep -v RecordingUrl` ; do wget --no-check-certificate $i ; doneYou will need to download any call report containing the voicemail links you want to download on your Linux Terminal, filter it according to the agents/groups numbers, etc, and store it.
You need to replace Exotel_exotel_incoming_reports_dec_09.csv with the file name you have, run the command on your terminal and the call recordings will get downloaded.
Or, if you could use this PHP script to download in bulk:
<?php
/*
USAGE : php bulk.php report.csv(The Call Report should be the input) output_dir(Eg: /Desktop)
The first argument is for the Report file from which the recordingUrl is extracted
The second argument is the path of the directory/folder in which you need your recordings to be present
*/
$file = $argv[1];
$outputdir = $argv[2];
if (empty($file)) {
print "Must provide a input file.\n";
print $helptext;
exit(1);
}
if (empty($outputdir)) {
print "Must provide a outputdir.\n";
print $helptext;
exit(1);
}
//Provide the row number of recordingurl in the csv file
$recordingfield = 1;
if (($handle = fopen($file, "r")) !== FALSE) {
while (($data = fgetcsv($handle, 0 , ",")) !== FALSE) {
//Picking up the recording url and downloading into the outputdir
if(!empty($data[$recordingfield]) && ($data[$recordingfield]!="RecordingUrl")) {
$recordingurl = $data[$recordingfield];
echo $recordingurl."\n";
echo "Fetching recording ...\n";
$path = pathinfo($recordingurl);
$filename = $path['basename'];
$ch = curl_init($recordingurl);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_NOBODY, 0);
curl_setopt($ch, CURLOPT_TIMEOUT, 5);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2);
$output = curl_exec($ch);
$status = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
if ($status == 200) {
file_put_contents($outputdir."/".$filename, $output);
}
echo "Done\n";
}
}
} else {
echo "Function is not working";
}
fclose($handle);