Hab jetzt ne Lösung gebaut:
<?
setlocale (LC_TIME, 'de_DE');
$server = "ftp://192.168.178.1/TOSHIBA-TransMemory-01/FRITZ/voicebox/rec/";
$files = scandir( $server, 0 );
$formerindex = GetValue(24722 /*[Telefon\.LastKnownIndex]*/);
$i = 0;
$lastindex = 0;
for( ; $i < count ($files); $i++ ) {
if( strncmp( $files[$i], "rec.0.", 6 ) == 0 ) { $lastindex++; }
}
$lastindex--;
SetValue(24722 /*[Telefon\.LastKnownIndex]*/, $lastindex );
SetValue(41550 /*[Telefon\Anrufe]*/ , getLastCalls( $lastindex, 5 ) );
function getLastCalls( $last, $number ) {
$result = "<form><table cellpadding='10'>";
for( $i = $last - $number; $i <= $last; $i++ ) {
$result = $result . getCall( $i );
}
return $result . "</table></form>";
}
function getCall( $index ) {
global $server, $formerindex;
$filename = sprintf("rec.0.%03d", $index );
//echo $lastindex, $filename
$localfilename = "C:/IP-Symcon/webfront/user/".$filename.".wav";
if( !file_exists($localfilename) ) {
$ftpfile = $server . $filename;
$source = "/TOSHIBA-TransMemory-01/FRITZ/voicebox/rec/$filename";
$target = fopen("C:/anrufb.fritz", "w");
$conn = ftp_connect("192.168.178.1");
ftp_login($conn,"x","x");
ftp_chdir($conn,"/TOSHIBA-TransMemory-01/FRITZ/voicebox/rec/");
$moddate = ftp_mdtm($conn,$filename);
ftp_fget($conn,$target,$source,FTP_BINARY);
ftp_close($conn);
IPS_Execute("C:\dec.exe", "C:\anrufb.fritz ".$localfilename, false, true);
touch( $localfilename, $moddate );
} else {
$moddate = filemtime( $localfilename );
}
$str = '<tr><td><embed src="/user/'.$filename.'.wav" autostart=false width=0 height=0 name="sound'.$index.'" enablejavascript="true">';
$str = $str . ($index > $formerindex ? "NEU " : "") . strftime("%d.%m.%Y %H:%M:%S",$moddate) . '</td><td align="left"><input type="button" value="Abspielen" onClick="document.sound'.$index.'.Play()"/></td></tr>';
return $str;
}
?>
Dieses Script nutze ich zusammen mit der Anrufliste von P. es wird also in einer ~HTMLBox abwechselnd die Anruferliste oder die Sprachnachrichten angezeigt. Ausserdem merkt sich das Skript in einer zweiten Var den höchsten Index, der beim letzten
Mal gelesen wurde und markiert alle, die dazu gekommen sind als neu.
Diese zwei Variabeln müssen also vorhanden sein (Referenzen anpassen).
Die Sprachnachrichten werden per FTP runtergeladen, konvertierung und direkt in <IPS>/webfront/user gespeichert und von dort dann auch im HTML referenziert.
Wers nutzen will muss auf die Pfade achten / anpassen. Bei Interesse kommentier ich das noch etwas besser.
Ach ja bevor ichs vergesse, damit das <embed> tag funktioniert, muss ein passendes Plugin aktiv sein (z.B. QuickTime) sonst hört man nix.
gruss steve
PS: vielleicht hat ja jemand Lust das HTML etwas aufzumotzen (bin kein HTML-Künstler), die Buttons sehen nämlich echt suboptimal aus.