return $info;
}
-function get_incoming()
+function call_cmp($a, $b)
+{
+ if (!empty($a['read']) && empty($b['read']))
+ return 1;
+ elseif (!empty($b['read']) && empty($a['read']))
+ return -1;
+ elseif ($a['timestamp'] > $b['timestamp'])
+ return -1;
+ else
+ return 1;
+ return 0;
+}
+
+function read_directory($directory)
{
$result = array();
- if ($dir = opendir(SPOOL_DIR . '/incoming')) {
+ if ($dir = opendir(SPOOL_DIR . '/' . $directory)) {
while (($filename = readdir($dir)) !== false) {
if (($pos = strpos($filename, '.vmsg')) !== false) {
$fname = substr($filename,0,$pos);
- $info = message_info('incoming', $fname);
+ $info = message_info($directory, $fname);
$info['fname'] = $fname;
$result[] = $info;
}
}
closedir($dir);
}
+
+ usort($result, "call_cmp");
return $result;
}
return;
}
+ $info = read_info($dir, $call);
+ if (empty($info['read'])) {
+ $info['read'] = date('U');
+ write_info($dir, $call, $info);
+ }
+
header(sprintf('Content-disposition: inline; filename="%s.au"', $call));
header('Content-Type: audio/basic');
header("Cache-Control: ");
pclose($p);
}
-?>
\ No newline at end of file
+function archive_call($call)
+{
+ $basename = SPOOL_DIR . '/' . 'incoming' . '/' . $call;
+ $basenew = SPOOL_DIR . '/' . 'archive' . '/' . $call;
+
+ rename($basename . '.vmsg', $basenew . '.vmsg');
+ rename($basename . '.info', $basenew . '.info');
+}
+
+function delete_call($dir, $call)
+{
+ $basename = SPOOL_DIR . '/' . $dir . '/' . $call;
+
+ unlink($basename . '.vmsg');
+ unlink($basename . '.info');
+}
+
+?>