Skript : Verpasste und getätigte Anrufe

DerDominic

Neuer User
Mitglied seit
1 Dez 2004
Beiträge
151
Punkte für Reaktionen
0
Punkte
0
Tach zusammen,

falls jemand mal seine getätigten oder angenommenen/verpassten Anrufe nachschauen will, hier ein php-Schnipsel für den Webserver, der ja so nebenbei mitlaufen kann.
Beim draufklicken der Telefonnummer wird per Reverssuche beim Örtlichen nachgeschaut.

Code:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Strict//EN"
"http://www.w3.org/TR/html4/strict.dtd">
<html> <head> <title>CDR-CSV</title> </head> <body>
<?php
        $Masterfile = "/var/log/asterisk/cdr-csv/Master.csv";
        $Nummer = $_GET['Nummer'];
        $Richtung = $_GET['Richtung'];
        $Tage = $_GET['Tage'];
        if (stristr($Richtung,'2')) {
                $inchecked='checked';
        } else {
                $outchecked='checked';
        }
        echo '<form action="cdr.php" method=GET>';
        echo 'Nummer <input type="text" size="15" maxlength="40" name="Nummer" value=',$Nummer,'>';
        echo '<input type="radio" name="Richtung" value="2" ',$inchecked,'>Eingehend';
        echo '<input type="radio" name="Richtung" value="1" ',$outchecked,'>Ausgehend ';
        echo '<input type="text" size="3" maxlength="3" name="Tage" value=',$Tage,'> letzte Tage';
        echo '<input type=submit value="Los">';
        echo '</form>';
        echo '<table border=1> <th>Nummer</th> <th>Datum</th> <th>Dauer</th>';
        function checktDate ($tDate) {
                global $Tage;
                $p = explode (" ",$tDate);
                $p = explode ("-",$p[1]);
                $mytime=mktime (0,0,0,$p[1],$p[2],$p[0]);
                $grenze  = mktime(0, 0, 0, date ("m") , date ("d")-$Tage, date("Y"));
                return ($mytime>$grenze);
        }
        function telnumLink ($text){
                $text=trim($text);
                return "[url='http://www.dasoertliche.de/DB4Web/es/oetb2suche/home.htm?kw_invers=$text&main=Antwort&s=2']$text[/url]";
        }
        $fd = fopen ($Masterfile, "r");
        while (!feof($fd)) {
                $buffer = fgets($fd, 4096);
                $buffer =strtr($buffer,'"',' ');
                $p = explode (",", $buffer);
                if ((stristr ($p[$Richtung],$Nummer)) &&
                    (checktDate($p[10])==1) &&
                    ($p[13] > 0)
                   ) echo "<tr><td>",telnumLink($p[$Richtung^3]),"</td><td>$p[10]</td><td>$p[13]</td></tr>";
        }
        fclose ($fd);
?>
</table> </body> </html>

Ist natürlich noch ausbaufähig

Dominic
 
Warning: stristr(): Empty delimiter. in /var/www/cdr.php on line 39

Any ideas?

Edit 20:54 Uhr:

Warning: stristr(): Empty delimiter. in /var/www/cdr.php on line 39

Any ideas?

Bitte von Christoph: Tze, so ein alter Hase und nutzt nicht "Edit". ;-)
 
schönes skript, funktioniert tadellos!

leider ist mein asterisk server nicht mein webserver, müsste den ordner /var/log/asterisk/cdr-csv/ also per nfs mounten.

auch cool wäre ein automatischer dasoertliche lookup für jeden anrufen und dann mögliche ausgabe per smbclient popup

gruss
jens
 
allesOK schrieb:
Warning: stristr(): Empty delimiter. in /var/www/cdr.php on line 39

Any ideas?
Am Anfang steht der PFad zu Deinem cdr-csv/Master.csv, prüfe doch mal nach ob dieser Pfad bei Dir auch so ist.

Dominic
 
Ja, der Pfad stimmt.

EDIT: Man darf das Nummern fled nicht leer lassen.

Ideas: Interessant wäre es interne Gespräche ausblenden zu können (weniger als 3 Stellen)
 
Holen Sie sich 3CX - völlig kostenlos!
Verbinden Sie Ihr Team und Ihre Kunden Telefonie Livechat Videokonferenzen

Gehostet oder selbst-verwaltet. Für bis zu 10 Nutzer dauerhaft kostenlos. Keine Kreditkartendetails erforderlich. Ohne Risiko testen.

3CX
Für diese E-Mail-Adresse besteht bereits ein 3CX-Konto. Sie werden zum Kundenportal weitergeleitet, wo Sie sich anmelden oder Ihr Passwort zurücksetzen können, falls Sie dieses vergessen haben.