#!/usr/bin/perl use Config::IniFiles; use DBI; my $dbtype = "mysql"; my $dbhost = "somehost.somedomain.org"; my $dbport = "3306"; my $dbuser = "someuser"; my $dbpass = "somepass"; my $dbname = "asterisk_config"; my $dbtable = "sippeers"; my $dsn = "dbi:$dbtype:database=$dbname;host=$dbhost;port=$dbport"; my $dbh = DBI->connect($dsn, $dbuser, $dbpass) or die "Couldn't connect to database $DBI::erstr\n"; my %ini; tie %ini, 'Config::IniFiles', ( -file => "/etc/asterisk/sip.conf" ); foreach (keys %ini) { next if $_ eq "general"; next if $_ eq "authentication"; print "Preparing to convert user: $_\n"; my %section = %{$ini{$_}}; my $username = $_; my @keys = keys %{$ini{$_}}; my $fields = join(', ', @keys); my @values = (); foreach $key (@keys) { my $value = $ini{$username}{$key}; # print "$key = $value\n"; push(@values, $value); } my $values = join(', ', @values); my $sql = "insert into $dbtable ($fields) values ($values)"; print "sql: $sql\n"; # my $statement = $dbh->prepare($sql) or die "Couldn't prepare query '$sql': $DBI::errstr\n"; # $statement->execute() or die "Couldn't execute query '$sql': $DBI::errstr\n"; }