Reverse Lookup für Österreich - www.herold.at

gerbin

Neuer User
Mitglied seit
25 Apr 2005
Beiträge
1
Punkte für Reaktionen
0
Punkte
0
Hallo allerseits,

Kennt jemand eine Asterisk Lösung für die Namensanzeige in Österreich? Unter www.herold.at ist es jetzt auch möglich, über die Rufnummer den entsprechenden Teilnehmer zu suchen. Zur Zeit kenne ich nur Lösungen für Deutschland (www.dasoertliche.de), ist diese auch für Österreich umsetzbar?

mfg
Gerald
 
Hier habe ich eine PHP5 Klasse für www.tb-online.at:
(Gebraucht wird die HTTP extension für PHP von http://at.php.net/http )

PHP:
<?php

class TBonlineSearch {
    function __construct() {
	if(!http_support(HTTP_SUPPORT_REQUESTS)) {
	    die("TBonlineSearch: Need HTTP request support!\n");
	}
    }
    
    // geotype can be: ort | bezirk | bland
    function lookup($name, $geo, $geotype = "ort") {
	if(empty($name)) die("lookup(): No name given.\n");
	if(empty($geo)) die("lookup(): No geo-information given.\n");
		
	$fields = array(
	    'pc' => 'tb',
	    'was' => '',
	    'telnummer' => '',
	    'suchmaske' => '_einfach',
	    'aktion' => 'suchetb',
	    'loga' => '',
	    'selsort' => '',
	    'AktuelleSeite' => '0',
	    'blaettern' => '_einfach',
	    'karte' => 'nichtanzeigen',
	    'wen' => $name,
	    'geowahl' => $geotype,
	    'wo' => $geo
	);

	$response = http_post_fields("http://www.tb-online.at/index.php", $fields);
	preg_match_all('/\<div class\=\"adresse\"\>(.*?)\<\/div\>/s', $response, $matches);

	if(!count($matches[1])) {
	    return false;
	}
	 	
	$ret = array();
	foreach($matches[1] as $key) {
	    preg_match_all('/\<p class\=\"name\"\>(.*?)\<\/p\>/', $key, $x);
	    preg_match_all('/\<p class\=\"telnummer\"\>(.*?)\<\/p\>/', $key, $y);
	    $name = $x[1][0];
	    $numbers = split('<br />', $y[1][0]);
	    $numbers = str_replace(array(' ', '/', '-'), '', $numbers);    
	    $ret[] = array(
		'name' => $name,
		'numbers' => $numbers
	    );
	}
	return $ret;
    }
    
    function reverseLookup($num) {
	if (empty($num)) die("reverseLookup(): No number given.\n");

	$fields = array(
    	    'pc' => 'in',
    	    'suchmaske' => '_einfach',
    	    'aktion' => 'suchein',
    	    'loga' => '',
    	    'selsort' => '',
    	    'AktuelleSeite' => '0',
    	    'blaettern' => '_einfach'.$num,
    	    'wen' => '',
    	    'was' => '',
    	    'wo' => '',
    	    'karte' => 'nichtanzeigen',
    	    'telnummer' => $num
	);
	
	$response = http_post_fields("http://www.tb-online.at/index.php", $fields);
	preg_match_all('/\<p class\=\"name\"\>(.*)\<\/p\>/', $response, $matches);

	if(count($matches[1]) < 1) {
	    return false;
	} else if (count($matches[1]) >= 1) {
	    return $matches[1];
	}
    }
}
?>

Diese Klasse benutze ich in einem AGI-PHP-Skript um bei einem eingehenden Anruf einen reverse Lookup zu machen... Mein AGI-Skrip benötigt die PHP Klassen von http://phpagi.sourceforge.net/ und sieht wie folgt aus:
PHP:
#!/usr/bin/php -q
<?php
set_time_limit(5);
ob_implicit_flush(false);
error_reporting(E_ALL); 

require('phpagi.php');
require('TBonline.php');

function searchTB($num) {
    $tb = new TBonlineSearch();
    $matches = $tb->reverseLookup($num);
    if(empty($matches[0])) {
	return false;
    }
    return $matches[0];
}

$agi = new AGI();
$num = $agi->request['agi_callerid'];
$name = searchTB($num);

if($name) {
    $agi->verbose("lookupcid: \"$num\" --> $name");
    $agi->set_callerid("\"$name\"<$num>");
} else {
    $agi->verbose("lookupcid: \"$num\" --> nummer nicht gefunden...");
}
?>
 
Hi!

Sorry für die "naive" Frage eines *Neulings:

Wie muss ich die Scripts einbinden?

extensions.conf
Code:
exten => _X.,1,AGI(TBlookup.php)
?

Weil so bekomm ich immer einen Ausführungsfehler:

Code:
AGI Rx << verbose "Failed to execute '/var/lib/asterisk/agi-bin/TBlookup.php': Permission denied" 2
 
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.