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
 
Kostenlos!

Zurzeit aktive Besucher

Statistik des Forums

Themen
247,825
Beiträge
2,274,327
Mitglieder
376,807
Neuestes Mitglied
rafaello123