$b['timestamp']) return -1; elseif ($a['timestamp'] < $b['timestamp']) return 1; return 0; } function read_directory($directory) { $result = array(); if ($dir = opendir(SPOOL_DIR . '/' . $directory)) { while (($filename = readdir($dir)) !== false) { if (($pos = strpos($filename, '.vmsg')) !== false || ($pos = strpos($filename, '.msg')) !== false) { $fname = substr($filename,0,$pos); $info = message_info($directory, $fname); $info['fname'] = $fname; $result[] = $info; } } closedir($dir); } else { error_log('Cannot open directory ' . SPOOL_DIR . '/' . $directory); } usort($result, "call_cmp"); return $result; } function callinfo($dir, $call) { return read_info($dir, $call); } function send_call($dir, $call) { if ($_SERVER['HTTP_USER_AGENT'] == 'NSPlayer') return; $dir = str_replace('/','x',$dir); $call = str_replace('/','x',$call); if ($dir == 'messages') $ext = '.msg'; else $ext = '.vmsg'; $fname = SPOOL_DIR . '/' . $dir . '/' . $call . $ext; $aufile = SPOOL_DIR . '/' . $dir . '/' . $call . '.au'; if (!is_file($fname)) { printf("

Anruf %s in %s nicht gefunden!

", $call, $dir); return; } system('vboxtoau < ' . $fname . ' > ' . $aufile); if (($f = fopen($aufile, 'r')) === false) { printf("

Anruf %s in %s konnte geoeffnet werden!

", $call, $dir); 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("Content-Length: " . filesize($aufile)); header("Cache-Control: no-cache" ); header("Pragma: no-cache" ); sleep(1); fpassthru($f); fclose($f); unlink($aufile); } 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'); } function save_call() { $info = read_info($_POST['dir'], $_POST['call']); $info['name'] = $_POST['name']; $info['note'] = $_POST['note']; write_info($_POST['dir'], $_POST['call'], $info); } ?>