|
|
|
|
@ -61,8 +61,10 @@ sub get_data {
|
|
|
|
|
customer_id => $val->{customer_id},
|
|
|
|
|
username => $val->{username},
|
|
|
|
|
password => $val->{password},
|
|
|
|
|
is_pbx_group => $val->{is_pbx_group},
|
|
|
|
|
is_pbx_pilot => $val->{is_pbx_pilot},
|
|
|
|
|
pbx_extension => $val->{pbx_extension},
|
|
|
|
|
pbx_group_ids => $val->{pbx_group_ids},
|
|
|
|
|
primary_number => {
|
|
|
|
|
cc => $val->{cc},
|
|
|
|
|
ac => $val->{ac},
|
|
|
|
|
@ -124,7 +126,7 @@ sub manage_contracts
|
|
|
|
|
sub manage_domains
|
|
|
|
|
{
|
|
|
|
|
my $data = shift;
|
|
|
|
|
foreach my $domain (keys %{$data->{domains}})
|
|
|
|
|
foreach my $domain (sort keys %{$data->{domains}})
|
|
|
|
|
{
|
|
|
|
|
my $domain_data = $data->{domains}->{$domain};
|
|
|
|
|
my $d_data = {
|
|
|
|
|
@ -146,7 +148,7 @@ sub manage_domains
|
|
|
|
|
sub manage_customers
|
|
|
|
|
{
|
|
|
|
|
my $data = shift;
|
|
|
|
|
foreach my $customer (keys %{$data->{customers}})
|
|
|
|
|
foreach my $customer (sort keys %{$data->{customers}})
|
|
|
|
|
{
|
|
|
|
|
my $customer_data = $data->{customers}->{$customer};
|
|
|
|
|
manage_contacts($customer_data, 'customer');
|
|
|
|
|
@ -162,23 +164,63 @@ sub manage_customers
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
sub create_subscriber
|
|
|
|
|
{
|
|
|
|
|
my ($username, $domain , $data , $s) = @_;
|
|
|
|
|
my $pbx_groups = $data->{pbx_groups};
|
|
|
|
|
|
|
|
|
|
$s->{pbx_group_ids} = [];
|
|
|
|
|
$s->{username} = $username;
|
|
|
|
|
$s->{domain_id} = $data->{domains}->{$domain}->{domain_id};
|
|
|
|
|
$s->{customer_id} = $data->{customers}->{$s->{customer}}->{customer_id};
|
|
|
|
|
foreach my $group (@{$s->{pbx_groups}}) {
|
|
|
|
|
if (defined $pbx_groups->{$group}) {
|
|
|
|
|
push @{$s->{pbx_group_ids}}, $pbx_groups->{$group};
|
|
|
|
|
}
|
|
|
|
|
else {
|
|
|
|
|
print "pbx_group[$group] not defined!\n";
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
delete $s->{pbx_groups};
|
|
|
|
|
$s->{id} = $api->create_subscriber(get_data($s));
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
sub manage_pbx_groups
|
|
|
|
|
{
|
|
|
|
|
my $data = shift;
|
|
|
|
|
$data->{pbx_groups} = {};
|
|
|
|
|
foreach my $domain (sort keys %{$data->{subscribers}})
|
|
|
|
|
{
|
|
|
|
|
my $d_data = $data->{subscribers}->{$domain};
|
|
|
|
|
foreach my $username (sort keys %{$d_data})
|
|
|
|
|
{
|
|
|
|
|
my $s = $d_data->{$username};
|
|
|
|
|
next unless $s->{is_pbx_group};
|
|
|
|
|
create_subscriber($username, $domain, $data, $s);
|
|
|
|
|
$data->{pbx_groups}->{$username} = $s->{id};
|
|
|
|
|
print("$username\@$domain is a pbx_group[$s->{id}]\n");
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
sub main
|
|
|
|
|
{
|
|
|
|
|
my $data = shift;
|
|
|
|
|
manage_customers($data);
|
|
|
|
|
manage_domains($data);
|
|
|
|
|
manage_pbx_groups($data);
|
|
|
|
|
|
|
|
|
|
foreach my $domain (keys %{$data->{subscribers}})
|
|
|
|
|
foreach my $domain (sort keys %{$data->{subscribers}})
|
|
|
|
|
{
|
|
|
|
|
my $d_data = $data->{subscribers}->{$domain};
|
|
|
|
|
foreach my $username (keys %{$d_data})
|
|
|
|
|
foreach my $username (sort keys %{$d_data})
|
|
|
|
|
{
|
|
|
|
|
my $s = $d_data->{$username};
|
|
|
|
|
$s->{username} = $username;
|
|
|
|
|
$s->{domain_id} = $data->{domains}->{$domain}->{domain_id};
|
|
|
|
|
$s->{customer_id} = $data->{customers}->{$s->{customer}}->{customer_id};
|
|
|
|
|
my $id = $api->create_subscriber(get_data($s));
|
|
|
|
|
print("$username\@$domain created [$id]\n");
|
|
|
|
|
next if $s->{is_pbx_group};
|
|
|
|
|
create_subscriber($username, $domain, $data, $s);
|
|
|
|
|
print("$username\@$domain created [$s->{id}]\n");
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
return;
|
|
|
|
|
|