|
|
|
@ -1327,63 +1327,41 @@ sub dev_field_config :Chained('/') :PathPart('device/autoprov/config') :Args() {
|
|
|
|
|
};
|
|
|
|
|
foreach my $line($linerange->autoprov_field_device_lines->search({ device_id => $dev->id })->all) {
|
|
|
|
|
my $sub = $line->provisioning_voip_subscriber;
|
|
|
|
|
my $display_name = NGCP::Panel::Utils::Preferences::get_usr_preference_rs(
|
|
|
|
|
c => $c,
|
|
|
|
|
prov_subscriber => $sub,
|
|
|
|
|
attribute => 'display_name',
|
|
|
|
|
);
|
|
|
|
|
if($display_name->first) {
|
|
|
|
|
$display_name = $display_name->first->value;
|
|
|
|
|
} else {
|
|
|
|
|
$display_name = $sub->username;
|
|
|
|
|
};
|
|
|
|
|
my $cc = NGCP::Panel::Utils::Preferences::get_usr_preference_rs(
|
|
|
|
|
c => $c,
|
|
|
|
|
prov_subscriber => $sub,
|
|
|
|
|
attribute => 'cc',
|
|
|
|
|
my %sub_preferences_vars = (
|
|
|
|
|
display_name => $sub->username,
|
|
|
|
|
enable_t38 => 0,
|
|
|
|
|
concurrent_max => 0,
|
|
|
|
|
concurrent_max_per_account => 0,
|
|
|
|
|
cc => '',
|
|
|
|
|
ac => '',
|
|
|
|
|
);
|
|
|
|
|
if($cc->first) {
|
|
|
|
|
$cc = $cc->first->value;
|
|
|
|
|
} else {
|
|
|
|
|
$cc = '';
|
|
|
|
|
}
|
|
|
|
|
my $ac = NGCP::Panel::Utils::Preferences::get_usr_preference_rs(
|
|
|
|
|
my $pref_rs = NGCP::Panel::Utils::Preferences::get_usr_preferences_rs(
|
|
|
|
|
c => $c,
|
|
|
|
|
prov_subscriber => $sub,
|
|
|
|
|
attribute => 'ac',
|
|
|
|
|
#attribute => [keys %sub_preferences_vars],
|
|
|
|
|
);
|
|
|
|
|
if($ac->first) {
|
|
|
|
|
$ac = $ac->first->value;
|
|
|
|
|
} else {
|
|
|
|
|
$ac = '';
|
|
|
|
|
my $preferences = get_inflated_columns_all($pref_rs, 'hash' => 'attribute', 'column' => 'value' );
|
|
|
|
|
foreach my $key (keys %sub_preferences_vars){
|
|
|
|
|
if(exists $preferences->{$key}){
|
|
|
|
|
$sub_preferences_vars{$key} = $preferences->{$key};
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
my $t38 = NGCP::Panel::Utils::Preferences::get_usr_preference_rs(
|
|
|
|
|
c => $c,
|
|
|
|
|
prov_subscriber => $sub,
|
|
|
|
|
attribute => 'enable_t38',
|
|
|
|
|
);
|
|
|
|
|
if($t38->first) {
|
|
|
|
|
$t38 = $t38->first->value;
|
|
|
|
|
} else {
|
|
|
|
|
$t38 = 0;
|
|
|
|
|
};
|
|
|
|
|
$sub_preferences_vars{displayname} = delete $sub_preferences_vars{display_name};
|
|
|
|
|
# TODO: only push password for private/shared line?
|
|
|
|
|
my $aliases = [ $sub->voip_dbaliases->search({ is_primary => 0 })->get_column("username")->all ];
|
|
|
|
|
my $primary = $sub->voip_dbaliases->search({ is_primary => 1 })->get_column("username")->first;
|
|
|
|
|
|
|
|
|
|
push @{ $range->{lines} }, {
|
|
|
|
|
alias_numbers => $aliases,
|
|
|
|
|
alias_numbers => $aliases,
|
|
|
|
|
primary_number => $primary,
|
|
|
|
|
extension => $sub->pbx_extension,
|
|
|
|
|
username => $sub->username,
|
|
|
|
|
domain => $sub->domain->domain,
|
|
|
|
|
password => $sub->password,
|
|
|
|
|
displayname => $display_name,
|
|
|
|
|
keynum => $line->key_num,
|
|
|
|
|
type => $line->line_type,
|
|
|
|
|
t38 => $t38,
|
|
|
|
|
cc => $cc,
|
|
|
|
|
ac => $ac,
|
|
|
|
|
extension => $sub->pbx_extension,
|
|
|
|
|
username => $sub->username,
|
|
|
|
|
domain => $sub->domain->domain,
|
|
|
|
|
password => $sub->password,
|
|
|
|
|
keynum => $line->key_num,
|
|
|
|
|
type => $line->line_type,
|
|
|
|
|
preferences => $preferences,
|
|
|
|
|
%sub_preferences_vars,
|
|
|
|
|
};
|
|
|
|
|
if(!$ldap_attr_set && $linerange->name eq "Full Keys" && $line->line_type eq "private") {
|
|
|
|
|
$vars->{ldap}->{dn} = "uid=".$sub->uuid . ",o=" . $sub->account_id . $vars->{ldap}->{dn};
|
|
|
|
|