[commit] r12530 - freeswitch/trunk/scripts/contrib/intralanman/perl/cdr-csv
Author: intralanman Date: Mon Mar 9 00:38:45 2009 New Revision: 12530 Log: adding config file to hold configurables and logging to syslog now Added: freeswitch/trunk/scripts/contrib/intralanman/perl/cdr-csv/cdr-csv-importer.ini Modified: freeswitch/trunk/scripts/contrib/intralanman/perl/cdr-csv/cdr-csv-importer Modified: freeswitch/trunk/scripts/contrib/intralanman/perl/cdr-csv/cdr-csv-importer ============================================================================== --- freeswitch/trunk/scripts/contrib/intralanman/perl/cdr-csv/cdr-csv-importer (original) +++ freeswitch/trunk/scripts/contrib/intralanman/perl/cdr-csv/cdr-csv-importer Mon Mar 9 00:38:45 2009 @@ -2,32 +2,37 @@ use DBI; use Data::Dumper; +use Sys::Syslog; -$config->{connect_string} = 'DBI:mysql:freeswitch'; -$config->{username} = 'root'; -$config->{password} = ''; -$config->{table} = "cdrs"; -$config->{fields} = [ - "caller_id_name", - "caller_id_number", - "destination_number", - "context", - "start_stamp", - "answer_stamp", - "end_stamp", - "duration", - "billsec", - "hangup_cause", - "uuid", - "bleg_uuid", - "accountcode", - "read_codec", - "write_codec", - ]; +my $config={}; +my $db; +my $identifier = 'cdr-csv-importer'; + +sub parse_config { + open(CONFIG, "<cdr-csv-importer.ini") or die("Can't open config file (cdr-csv-importer.ini)\n"); + while (<CONFIG>) { + #print $_; + chomp; #kill whitespaces + + next if !(m/^[[:alnum:]]/); #skip lines that don't start right + next if m/^\s*$/; #skip lines with only whitespace + next if m/^;/; #skip ini comments + next if m(/^\[.*\]/); # skip the start of a section + + my ($key, $val) = split(/\s+=\s+/, $_, 2); + #print "'$key' = '$val'\n"; + if($key eq "fields") { + @{$config->{fields}} = split(/,/, $val); + } else { + $config->{$key} = $val; + } + } + close(CONFIG); +} sub create_table { - my $db = shift; - my $sql = "CREATE TABLE IF NOT EXISTS`cdrs` ( +# my $db = shift; + my $sql = "CREATE TABLE IF NOT EXISTS `$config->{table}` ( `id` int(11) NOT NULL auto_increment, `caller_id_name` varchar(255) NOT NULL default '', `caller_id_number` varchar(255) NOT NULL default '', @@ -62,7 +67,14 @@ $query->execute(); } -my $db = &connect_db; +openlog($identifier, 'ndelay,pid', LOG_USER); +open(STDERR,"|logger -t \"${identifier}[$$]: \"") or die "Error: Unable to redirect STDERR to logger!"; +open(STDOUT,"|logger -t \"${identifier}[$$]: \"") or die "Error: Unable to redirect STDOUT to logger!"; +&parse_config; +#print Dumper $config; +open(PID, ">$config->{pid_file}"); +print PID $$; +$db = &connect_db; &create_table($db); $field_count = @{$config->{fields}}; my $values = '?'; @@ -71,18 +83,23 @@ $fields = sprintf('%s, %s', $fields, $config->{fields}[$i]); $values = sprintf('%s, ?', $values); } -#print "$field_count - $fields $values\n"; my $query = sprintf( "INSERT INTO %s (%s) VALUES (%s);", $config->{table}, join(',', @{$config->{fields}}), $values ); -#print "$query\n"; +syslog(LOG_INFO, "$query"); + +sub mylog { + $log = shift; + syslog(LOG_INFO, "$log"); +} +print Dumper @ARGV; my $query_handle = $db->prepare($query); while (<STDIN>) { - print $_; + syslog(LOG_INFO, $_); chomp; @values = split(/,/); #print Dumper @values; Added: freeswitch/trunk/scripts/contrib/intralanman/perl/cdr-csv/cdr-csv-importer.ini ============================================================================== --- (empty file) +++ freeswitch/trunk/scripts/contrib/intralanman/perl/cdr-csv/cdr-csv-importer.ini Mon Mar 9 00:38:45 2009 @@ -0,0 +1,7 @@ +[default] +table = cdrs +username = freeswitch +password = Fr33Sw1tch +connect_string = DBI:mysql:freeswitch +pid_file = /var/run/cdr-csv-importer.pid +fields = caller_id_name,caller_id_number,destination_number,context,start_stamp,answer_stamp,end_stamp,duration,billsec,hangup_cause,uuid,bleg_uuid,accountcode,read_codec,write_codec
participants (1)
-
FreeSWITCH SVN