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:
bref une fois tout installé il suffit de créer dans /var/lib/asterisk/agi-binCode:perl Makefile.PL make make install
un fichier myagi.agi par exemple et de le rendre éxecutable
Dans le dialplanCode:######################################## #!/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); ######################################################
voila ce que je trouve ensuite dans mon fichier logCode:exten => _0X.,1,DeadAGI(myagi.agi,${CDR(accountcode)},${EXTEN})
<14>myagi.agi[17414]:traduction:Code:ANSWER;2;2010-09-17 23:51:12;1284760256;101;101;0469665501;2010-09-17 23:50:56
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 :-)


Répondre avec citation
