Problem
Oftmals möchte man die Mitschnitte herunterladen und auf z.B. einem NAS speicher
Lösung
Hier hilft ein Linuxrechner mit php und dieses skript.
#!/usr/bin/php
<?php
$restuser='moby';
/* Instanzname und Passwort anpassen*/
$restpw='restpassword';
$url='https://pascom.cloud/instanzname/services/monitor/?durationfrom=3';
/*Vorhandene Mitschnitte auslesen */
$chpascom = curl_init();
curl_setopt($chpascom, CURLOPT_URL, $url);
curl_setopt($chpascom, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($chpascom, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($chpascom, CURLOPT_RETURNTRANSFER, true);
curl_setopt($chpascom, CURLOPT_USERPWD, "$restuser:$restpw");
curl_setopt($chpascom, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
$outputpascom = curl_exec($chpascom);
$infopascom = curl_getinfo($chpascom);
$errorpascom = curl_error($chpascom);
curl_close($chpascom);
$jsonpascom=json_decode($outputpascom);
for($i = 0; $i < count($jsonpascom); $i++){
$out=get_object_vars($jsonpascom[$i]);
$date = new DateTime();
$datum=$date->format('Y-m-d-H:i:s');
$time=$out['time'];
$id=$out['id'];
$timestamp=$out['timestamp'];
$time=str_replace(' ','-',$time);
$touchtime=str_replace('-','',$time);
$touchtime=str_replace(':','',$touchtime);
$touchtime=substr($touchtime, 0,-2);
$userid=$out['userId'];
$userName='mitschnitte-'.$out['userName'];
$extension=$out['extension'];
$inbound=$out['inbound'];
$internal=$out['internal'];
$duration=$out['duration'];
$connected=$out['connected'];
$deviceId=$out['deviceId'];
$deviceName=$out['deviceName'];
$locationId=$out['locationId'];
$locationName=$out['locationName'];
$recordId=$out['recordId'];
$name=$out['name'];
$number=$out['number'];
$prefix=$out['prefix'];
$phonebookEntryId=$out['phonebookEntryId'];
$result=$out['result'];
$resultDetails=$out['resultDetails'];
$via=$out['via'];
$viaDetails=$out['viaDetails'];
$phonecallRecordId=$out['phonecallRecordId'];
$chain=$out['chain'];
$labelList=$out['labelList'];
/* Einzelne Mittschnitte herunterladen */
$records[]=$recordId;
$urlrecord='https://pascom.cloud/instanzname/services/monitor/'.$recordId;
$chrecord = curl_init();
curl_setopt($chrecord, CURLOPT_URL, $urlrecord);
curl_setopt($chrecord, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($chrecord, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($chrecord, CURLOPT_RETURNTRANSFER, true);
curl_setopt($chrecord, CURLOPT_USERPWD, "$restuser:$restpw");
curl_setopt($chrecord, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
$outputrecord = curl_exec($chrecord);
$inforecord = curl_getinfo($chrecord);
$errorrecord = curl_error($chrecord);
curl_close($chrecord);
$jsonrecord=json_decode($outputrecord,true);
//print_r($jsonrecord);
for($a = 0; $a < count($jsonrecord); $a++){
$ruleId=$jsonrecord[0]['ruleid'];
$recordfile=$jsonrecord[0]['file'];
}
exec('curl -u '.$restuser.':'.$restpw.' -X GET "https://pascom.cloud/instanzname/services/monitor/'.$recordId.'/'.$ruleId.'/'.$recordfile.'/wav" -H "accept:audio/x-wav" > '.$i.'.wav');
}
/* Hiermit werden die Mitschnitte nummeriert als wav gespeichert, alternativ einfach die gewünschte Variable verwenden und ggf. danach als mp3 konvertieren und z.B. via scp verschieben.*/
?>