To download individual recordings, click on the conversation you'd like to download. The details of the call will appear in the new slide-over window. There will be a download button in this window on the top right. Click on it to download the recording. 

save image

To download recordings in bulk, read further: 

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 12 | grep -v recording-file-does-not-exist | grep -v RecordingUrl` ; do wget --no-check-certificate $i ; done

You 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 like it the PHP way, you could try this:


$helptext = <<<END_OF_HELP
USAGE: php getrecording.php -f <inputfile> -o <output directory>

Downloading the recordings for the given Call records file.

  -f Exotel Call reports file
  -o Directory to store the downloaded recordings


$shortopts = "f:";  // Required value
$shortopts .= "o:";  // Required value

$options = getopt($shortopts);

$file = $options["f"];
$outputdir= $options["o"];

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;
}$recordingfield = 11;if (($handle = fopen($file, "r")) !== FALSE) {  while (($data = fgetcsv($handle, 0 , ",")) !== FALSE) {   //Picking up the recording url (12th field) and downloading into the outputdir   if(!empty($data[$recordingfield]) && ($data[$recordingfield]!="RecordingUrl")){     $recordingurl = $data[$recordingfield];     echo $recordingurl."\n";     echo "Fetching recording ...\n";     $content = file_get_contents($recordingurl);     //Checking if Call Sid, Direction and Status are present -(1)     if(!empty($data[0]) && !empty($data[1]) && !empty($data[6])){       if(!is_dir($outputdir)){         if (!mkdir($outputdir, 0777, true)) {             die('Failed to create output folders...');             exit(1);         }
       }       //File is named according to (1)       file_put_contents($outputdir."/".$data[0]."_".$data[1]."_".$data[6].".wav", $content);       echo "Done\n";     }
       echo "Using default file name for the recording...".$recordingurl."\n";
       file_put_contents($recordingurl.".wav", $content);
  echo "Done\n";
     }   }
  }  fclose($handle);}