Caller Name Lookup Sources HTTP

Nur das bei Superfecta nichts für Deutschland dabei ist. Ich wollte gerade das Script oben dafür umschreiben aber die haben schon wieder was geändert und der Name funktioniert nicht mehr.

Code:
 class="preview" onclick="return logDetail('0428009494827', 'name', this)"><span class="">GESUCHTERNAME&nbsp;</span>

Ich weiß leider nicht was man da noch abändern muss:
Code:
$reg_name    = '/class="preview" onclick="return logDetail[(][)]">([^&]*)/';
 
Musste vor kurzem anpassen. Meins schaut z.Z. so aus:

Code:
<?php 
# Aufruf mit 'cidlookup.php?cid=49301234567' 
# Liefert Name zurueck 

    $name    = ""; 
    $details = ""; 

    if ($cid == "") { 
        $name    = "anonymer Anrufer"; 
        $details = "Keine Details"; 
    } else { 
        $cid = preg_replace("|^49|s","0",$cid); 
        # reverse Lookup via www.dasoertliche.de 
        $host = 'www3.dasoertliche.de'; 
        $path = '/Controller'; 
        $data = 'form_name=search_inv&la=de&page=5&context=4&action=43&buc=&ph=' . rawurlencode ($cid);
 
        $fp = fsockopen ($host, 80); 
        if (!$fp) 
            $name = "Fehler in Abfrage $errstr ( $errno)"; 
        else { 
            $result = ""; 
            fputs ($fp, 'POST ' . $path . ' HTTP/1.1' . "\r\n"); 
            fputs ($fp, 'User-Agent: Mozilla/4.0 Compatible' . "\r\n");            
            fputs ($fp, 'Host: ' . $host . "\r\n"); 
            fputs ($fp, 'Content-type: application/x-www-form-urlencoded' . "\r\n");
            fputs ($fp, 'Content-length: ' . strlen ($data) . "\r\n"); 
            fputs ($fp, 'Connection: close' . "\r\n\r\n"); 
            fputs ($fp, $data); 
            while (!feof($fp)) 
                    $result .= fgets($fp, 128); 
            fclose ($fp); 
        } 
        # Name und Anschrift herausfischen

        $reg_name    = '/class="preview" onclick="return logDetail[(].+[)]"><span class="">([^&]*)/';
        $reg_details = '/<div class="strasse">\W*([^<]*)<span class="">([^<]*)/m';
            if (preg_match ($reg_name, $result, $matches))
            $name =  str_replace ('&nbsp;', ' ', $matches[1]);
            $name =  ltrim($name);
        if (preg_match ($reg_details, $result, $matches2))
            $details =  str_replace ('&nbsp;', ' ', $matches2[1]);
            $details =  "$details $matches2[2]";
            $details =  str_replace ('&nbsp;', ' ', $details);
            $details =  str_replace ('nbsp', ' ', $details);
            $details =  str_replace ('  ', ' ', $details);
            $details =  ltrim($details);
        if ($name == "") {
            if (preg_match ('/war leider nicht erfolgreich/', $result, $matches)) {
                $name =  "Telefonnummer $cid";
                $details = "Kein Eintrag";
            }
        }
    }
    print utf8_encode($name) ." . ". utf8_encode($details);
#    print "$name . $details";
?>

viele Grüße
Andi
 
Für Superfecta müsste das dann so aussehen:

source-dasoertliche.php
Code:
<?php

if($usage_mode == ´get caller id´)
{
    if($debug)
    {
	print "Searching Dasoertliche...<br>";
     }
	
    if ($thenumber == "") { 
        $name    = "Anonymer Anrufer"; 
    } else { 
        # reverse Lookup via www.dasoertliche.de 
        $host = 'www3.dasoertliche.de'; 
        $path = '/Controller'; 
        $data = 'form_name=search_inv&la=de&page=5&context=4&action=43&buc=&ph=' . rawurlencode ($thenumber);
 
        $fp = fsockopen ($host, 80); 
        if (!$fp) 
            $name = "Fehler in Abfrage $errstr ( $errno)"; 
        else { 
            $result = ""; 
            fputs ($fp, 'POST ' . $path . ' HTTP/1.1' . "\r\n"); 
            fputs ($fp, 'User-Agent: Mozilla/4.0 Compatible' . "\r\n");            
            fputs ($fp, 'Host: ' . $host . "\r\n"); 
            fputs ($fp, 'Content-type: application/x-www-form-urlencoded' . "\r\n");
            fputs ($fp, 'Content-length: ' . strlen ($data) . "\r\n"); 
            fputs ($fp, 'Connection: close' . "\r\n\r\n"); 
            fputs ($fp, $data); 
            while (!feof($fp)) 
                    $result .= fgets($fp, 128); 
            fclose ($fp); 
        } 

        # Name herausfischen 
        $reg_name    = '/class="preview" onclick="return logDetail[(].+[)]"><span class="">([^&]*)/';

        if (preg_match ($reg_name, $result, $matches)) 
            $name =  str_replace ('&nbsp;', ' ', $matches[1]); 
        if ($name == "") { 
            if (preg_match ('/war leider nicht erfolgreich/', $result, $matches)) { 
                $name =  "Nicht gefunden"; 
            } 
        } 
    } 
	$caller_id = trim(strip_tags($name));

}

?>

Probieren kann ich es nicht, da Freepbx noch nicht lauffähig ist bei mir. Details wie Adresse werden bei Superfecta afaik nicht ausgewertet, deswegen habe ich das rausgenommen. Ebenso erschließt sich mir nicht der Sinn warum man vorne die 49 anfügen sollte.

Path: /admin/modules/superfecta/bin/source-dasoertliche.php
Query: thenumber=[NUMBER]
 
Zuletzt bearbeitet:
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.