Polaroid Photo

Bilder från Daniel Nylander.se

Daniel Nylander.se

Ubuntu, Debian, Translation Project, GNU, Linux, UNIX, VoIP, IT-Säkerhet, experiment, väl valda ord och delvis sinnesnärvaro

Välj ett ämne:

sön
26
jun '05

Slå upp inkommande samtal

Skrev ett litet Perl script som slår upp inkommande samtal mot en databas och plockar ut ett namn.
Version 0.0001 men fungerar.
Nästa fas blir att skriva klart ett webgränsnitt som man kan mata in namn och nummer.
Användbart? Tja, du väljer.


#!/usr/bin/perl

# Check incoming calls against local database of names
#
# Miserable Perl code by Daniel Nylander
#

use DBI;
use Asterisk::AGI;

#
# Set MySQL login/passwd
#
my $dsn = 'DBI:mysql:asterisk:localhost';
my $db_user_name = 'user';
my $db_password = 'password';

my $AGI = new Asterisk::AGI;
my %input = $AGI->ReadParse();

my $called = $input{'extension'};
my $caller=$input{'callerid'};

$AGI->verbose("Incoming call from $caller to $called",3);

my $dbh = DBI->connect($dsn, $db_user_name, $db_password);

my $sth = $dbh->prepare(qq{
select calleridname from checkcaller where callerid = "$caller" limit 1
});

$sth->execute();
$calleridname = $sth->fetchrow_array() ;

if ($calleridname eq "") {
$AGI->verbose ("Number $caller not found in database",3);
exit 0;
};

$AGI->set_callerid ("\"$calleridname < $caller>\"");
$AGI->verbose ("CALLERIDNAME is set to $calleridname < $caller>",3);

exit 0;

Databastabellen ”checkcaller” ser ut sÃ¥ här:

callerid varchar(80)
calleridname varchar(80)
lastcalled datetime

(kom på nu att jag glömt att uppdatera lastcalled kolumnen i koden.. ska fixas.

Start discussion »

Skriv ett svar