Bonjour,
Pas mal de temps à perdre today pendant la réparation de mon PC de dev
je me suis donc amusé avec syslog pour récupérer des CDR formatés a votre choix
sur un serveur syslog windows.
J'ai pris un truc basic pour les tests http://www.sysrose.com/
mais ca permet de voir les logs en console et en plus de les écrires dans un fichier log
du pc win.
coté astérisk
installer
asterisk perl http://asterisk.gnuinter.net/files/a...rl-1.01.tar.gz
perl net syslog http://search.cpan.org/CPAN/authors/...og-0.03.tar.gz
pour installer un package perl toujours la meme procédure:
décompressez le fichier téléchargé, rendez vous dans le répertoire et entrez les commandes une par une:
Code:
perl Makefile.PL
make
make install
bref une fois tout installé il suffit de créer dans /var/lib/asterisk/agi-bin
un fichier myagi.agi par exemple et de le rendre éxecutable
Code:
########################################
#!/usr/bin/perl
use Net::Syslog;
$SIG{HUP} = 'ignore_hup';
use Asterisk::AGI;
use POSIX qw(strftime);
sub today() {
my $now = strftime "%Y-%m-%d %H:%M:%S", localtime;
return $now;
}
$datecall = today();
$AGI = new Asterisk::AGI;
my %input = $AGI->ReadParse();
exit unless $input{'request'};
sub savecdr() {
my ($dialstatus, $answeredtime, $startcall) = @_;
&load_config();
my $s=new Net::Syslog(Facility=>'user',Priority=>'notice');
$s->send(''.$dialstatus.';'.$answeredtime.';'.$startcall.';'.$input{'uniqueid'}.';'.$input{'callerid'}.';'.$input{'accountcode'}.';'.$input{'extension'}.';'.$datecall.'',Priority=>'info',SyslogHost=>'ip.machine.serveur.syslog',SyslogPort=>'514' );
$AGI->hangup();
exit;
}
$AGI->answer();
$dialstr = "SIP/nom_du_sip_carrier/$input{'extension'}|90|HL";
$AGI->exec("DIAL $dialstr");
$answeredtime = $AGI->get_variable("ANSWEREDTIME");
$dialstatus = $AGI->get_variable("DIALSTATUS");
$startcall = today();
#return $dialstatus;
&savecdr($dialstatus, $answeredtime, $startcall);
######################################################
Dans le dialplan
Code:
exten => _0X.,1,DeadAGI(myagi.agi,${CDR(accountcode)},${EXTEN})
voila ce que je trouve ensuite dans mon fichier log
<14>myagi.agi[17414]:
Code:
ANSWER;2;2010-09-17 23:51:12;1284760256;101;101;0469665501;2010-09-17 23:50:56
traduction:
répondu;2secondes;répondu à 2010-09-17 23:51:10;uniqueID1284760256;callerid 101; accountcode 101;numero appelé 0469665501; appel envoyé à 2010-09-17 23:50:59
Résultat un fichier log propre et mis en forme sur votre PC à exploiter avec ce que vous voulez :-)