Данные в таблице users:
tel_number - номер телефона
ext_number - номер extension
name - имя пользователя
ip_address - ip адрес телефона
secret - md5 хеш строки [user]:asterisk:[password]
echo -n “<user>:<realm>:<secret>” | md5sum#! /usr/local/bin/perluse strict;use warnings;use File::Copy;use DBI;binmode(STDOUT,':utf8');my $dn = "DBI:mysql:asterisk";my $user = "ast_reader";my $pass = 'ast_reader_password';my $temp_file = '/tmp/sip_users.tmp';my $sip_users_file = '/usr/local/etc/asterisk/sip_users.conf';my %attr = (PrintError=>0, RaiseError=>1, mysql_enable_utf8=>1);my $dbh = DBI->connect($dn, $user, $pass, \%attr);my $sth = $dbh->prepare('select tel_number, ext_number, name, ip_address, secret from users'); $sth->execute();open(my $fh, '>:encoding(UTF-8)', $temp_file);print $fh "; WARNING!!! This File is automatically overwritten by sip_reload command!\n";print $fh "; DO NOT MODIFY THIS FILE! Use sip_reload command from shell.\n\n";while (my $ref = $sth->fetchrow_hashref()) { print $fh "[$ref->{'tel_number'}](sip-tmpl,codec-tmpl)\n"; print $fh " permit=$ref->{'ip_address'}\n"; print $fh " accountcode=$ref->{'tel_number'}\n"; print $fh " callerid=$ref->{'name'} <$ref->{'tel_number'}>\n"; print $fh " md5secret=$ref->{'secret'}\n\n"; print "$ref->{'name'} - $ref->{'tel_number'} - $ref->{'ext_number'}\n"}print $fh "; Created: ", scalar (localtime), "\n";close $fh;$sth->finish;$dbh->disconnect();move($temp_file, $sip_users_file) or die("Can't move file.");system qq(asterisk -rx 'sip reload');