MT#15113 - apply_rewrite: use billing domain for terminated susbcribers

Change-Id: I0231a23e9d4dd6b3d6c6dde0ff70125a93ed71c9
changes/56/2656/2
Kirill Solomko 10 years ago
parent 91de0e85dc
commit aa2d53e5fb

@ -1143,17 +1143,19 @@ sub apply_rewrite {
my $subscriber = $params{subscriber};
my $callee = $params{number};
my $dir = $params{direction};
my $sub_type = 'provisioning';
my $rwr_rs = undef;
return $callee unless $dir =~ /^(caller_in|callee_in|caller_out|callee_out)$/;
my ($field, $direction) = split /_/, $dir;
$dir = "rewrite_".$dir."_dpid";
unless ($subscriber && $subscriber->provisioning_voip_subscriber) {
$c->log->warn('could not apply rewrite: subscriber might have been terminated.');
unless ($subscriber) {
$c->log->warn('could not apply rewrite: no subscriber found.');
return $callee;
}
my $rwr_rs = NGCP::Panel::Utils::Preferences::get_usr_preference_rs(
} elsif ($subscriber->provisioning_voip_subscriber) {
$rwr_rs = NGCP::Panel::Utils::Preferences::get_usr_preference_rs(
c => $c, attribute => $dir,
prov_subscriber => $subscriber->provisioning_voip_subscriber,
);
@ -1166,6 +1168,20 @@ sub apply_rewrite {
unless($rwr_rs->count) {
return $callee;
}
} else {
$sub_type = 'billing';
if ($subscriber->domain && $subscriber->domain->provisioning_voip_domain) {
$rwr_rs = NGCP::Panel::Utils::Preferences::get_dom_preference_rs(
c => $c, attribute => $dir,
prov_domain => $subscriber->domain->provisioning_voip_domain,
);
unless($rwr_rs->count) {
return $callee;
}
} else {
return $callee;
}
}
my $rule_rs = $c->model('DB')->resultset('voip_rewrite_rules')->search({
'ruleset.'.$field.'_'.$direction.'_dpid' => $rwr_rs->first->value,
@ -1200,7 +1216,9 @@ sub apply_rewrite {
}
}
} else {
my $pref_rs = NGCP::Panel::Utils::Preferences::get_usr_preference_rs(
my $pref_rs = undef;
if ($sub_type eq 'provisioning') {
$pref_rs = NGCP::Panel::Utils::Preferences::get_usr_preference_rs(
c => $c, attribute => $avp,
prov_subscriber => $subscriber->provisioning_voip_subscriber,
);
@ -1210,6 +1228,12 @@ sub apply_rewrite {
prov_domain => $subscriber->provisioning_voip_subscriber->domain,
);
}
} elsif ($sub_type eq 'billing') {
$pref_rs = NGCP::Panel::Utils::Preferences::get_dom_preference_rs(
c => $c, attribute => $avp,
prov_domain => $subscriber->domain->provisioning_voip_domain,
);
}
next unless($pref_rs);
if($field =~ /\$\(avp/) { # $(avp(s:xxx)[*])
$cache->{$avp} = [ $pref_rs->get_column('value')->all ];

Loading…
Cancel
Save