Public CallerID Lookup Sources?

Anybody have any advice on a good public callerID lookup source? I saw that has an API to where you can implement reverse number lookup into your application, but I dont quite understand how to do it, or if it will work with freePBX.

here is a snippet of php for an agi script.

sub anywho_lookup {
my ($npa, $nxx, $station) = @_;
my $ua = LWP::UserAgent->new( timeout => 45);
my $URL = ‘’;
$URL .= ‘?npa=’ . $npa . ‘&telephone=’ . $nxx . $station;
my $req = new HTTP::Request GET => $URL;
my $res = $ua->request($req);
if ($res->is_success()) {
if ($res->content =~ /(.)/s) {
my $listing = $1;
if ($listing =~ /(.
)</B>/) {
my $clidname = $1;
return $clidname;

A more detailed description of implemation in freepbx would be quite helpful than a snip.