#!/usr/bin/perl # Asterisk AGI MySQL Call Logger # by Natas # http://www.oldskoolphreak.com # Logs all incoming calls to a database # Setup a database using the structure below # Change the variables $dsn & $dbh to match your settings # Run the AGI before calls are answered # Database Dump # -- Table structure for table `cdrs` # # CREATE TABLE `cdrs` ( # `numbercalled` varchar(20) NOT NULL default '', # `callerid` varchar(20) default NULL, # `calleridname` varchar(20) default NULL, # `time` varchar(24) NOT NULL # ) TYPE=MyISAM; use DBI; use Asterisk::AGI; $AGI = new Asterisk::AGI; %AGIData = $AGI->ReadParse (); $exten = $AGIData{'extension'}; $cid = $AGIData{'callerid'}; $cnam = $AGIData{'calleridname'}; $datetime = localtime(); $dsn = "DBI:mysql:databasename:hostname"; $dbh = DBI->connect($dsn, 'username', 'password'); $dbh->do("INSERT INTO cdrs (numbercalled, callerid, calleridname, time) VALUES ($exten,'$cid','$cnam','$datetime')"); $dbh->disconnect();