TT#35507 helper/sync-db: add sync_smsc_peers

* sync_smsc_peers() is used to sync the 'smsc_peer' domain
      preference
    * generic_enum_sync() is extended and accepts boolean args
      $usr_pref, $dom_pref, $peer_pref

Change-Id: I376a2ba823bef53b3548b88c38960c893a74efc8
changes/43/20643/3
Kirill Solomko 8 years ago
parent d62f076556
commit b81f0ba511

@ -57,10 +57,16 @@ unless(defined $dbpass) {
$dbh = db_connect();
exit 1 unless(sync_extra_sockets($dbh,
$config->{kamailio}->{lb}->{extra_sockets}));
$config->{kamailio}->{lb}->{extra_sockets},
1, 1, 1));
exit 1 unless(sync_rtp_interfaces($dbh,
{ map {my $tmp = $_; $tmp =~ s/:.*//; ($_ => $_, $tmp => $tmp)} @{$config->{rtp_interfaces}} } ));
{ map {my $tmp = $_; $tmp =~ s/:.*//; ($_ => $_, $tmp => $tmp)} @{$config->{rtp_interfaces}} },
1, 1, 1));
exit 1 unless(sync_smsc_peers($dbh,
{ map { ($_->{id} => $_->{id}) } @{$config->{sms}->{smsc}} },
0, 1, 0));
exit 1 unless(sync_general_timezone($dbh,
$config->{general}->{timezone}));
@ -85,6 +91,9 @@ sub db_connect
sub generic_enum_sync {
my $dbh = shift;
my $config_hash = shift;
my $usr_pref = shift;
my $dom_pref = shift;
my $peer_pref = shift;
my $pref_name = shift;
my $sth = $dbh->prepare("select id from voip_preferences where attribute=?");
$sth->execute($pref_name);
@ -96,7 +105,7 @@ sub generic_enum_sync {
my $pref_id = $res->{id};
$sth->finish;
my $enum_insert_sth = $dbh->prepare("insert into voip_preferences_enum (preference_id, label, value, usr_pref, dom_pref, peer_pref) values(?, ?, ?, 1, 1, 1)");
my $enum_insert_sth = $dbh->prepare("insert into voip_preferences_enum (preference_id, label, value, usr_pref, dom_pref, peer_pref) values(?, ?, ?, ?, ?, ?)");
my $enum_update_sth = $dbh->prepare("update voip_preferences_enum set value=? where id=?");
my $enum_delete_sth = $dbh->prepare("delete from voip_preferences_enum where id=?");
$sth = $dbh->prepare("select id, label, value from voip_preferences_enum where preference_id=?");
@ -122,7 +131,8 @@ sub generic_enum_sync {
}
foreach my $label(keys %{$config_hash}) {
print "insert new $pref_name $label=$config_hash->{$label} from config into db\n";
$enum_insert_sth->execute($pref_id, $label, $config_hash->{$label});
$enum_insert_sth->execute($pref_id, $label, $config_hash->{$label},
$usr_pref ? 1 : 0, $dom_pref ? 1 : 0, $peer_pref ? 1: 0);
}
$enum_insert_sth->finish;
@ -140,6 +150,11 @@ sub sync_extra_sockets {
sub sync_rtp_interfaces {
return generic_enum_sync(@_, 'rtp_interface');
}
#
## smsc_* interfaces handling: ##############################
sub sync_smsc_peers {
return generic_enum_sync(@_, 'smsc_peer');
}
## general.timezone handling: ##############################
sub sync_general_timezone {

Loading…
Cancel
Save