MT#7177 API: also evaluate callee_xxx rwr vars.

Load the AVPs from the same subscriber as for caller, as we should
not intermix them anyways.
Treat non-existent vars as empty vars like kamailio does.
gjungwirth/voicemail_number
Andreas Granig 12 years ago
parent 7c8e355fbc
commit 462b0bf3e1

@ -852,8 +852,8 @@ sub apply_rewrite {
for my $field($match, $replace) {
#print ">>>>>>>>>>> normalizing $field\n";
my @avps = ();
@avps = ($field =~ /\$avp\(s:caller_([^\)]+)\)/g);
use Data::Printer; p @avps;
@avps = ($field =~ /\$avp\(s:calle(?:r|e)_([^\)]+)\)/g);
@avps = keys %{{ map { $_ => 1 } @avps }};
for my $avp(@avps) {
#print ">>>>>>>>>> checking avp $avp\n";
if(!exists $cache->{$avp}) {
@ -861,17 +861,17 @@ sub apply_rewrite {
c => $c, attribute => $avp,
prov_subscriber => $subscriber->provisioning_voip_subscriber,
);
unless($pref_rs->count) {
unless($pref_rs && $pref_rs->count) {
$pref_rs = NGCP::Panel::Utils::Preferences::get_dom_preference_rs(
c => $c, attribute => $avp,
prov_domain => $subscriber->provisioning_voip_subscriber->domain,
);
}
next unless($pref_rs->count);
$cache->{$avp} = $pref_rs->first->value;
next unless($pref_rs);
$cache->{$avp} = $pref_rs->first ? $pref_rs->first->value : '';
}
my $val = $cache->{$avp};
$field =~ s/\$avp\(s:caller_$avp\)/$val/g;
$field =~ s/\$avp\(s:calle(?:r|e)_$avp\)/$val/g;
#print ">>>>>>>>>>> normalized $field\n";
}
}

Loading…
Cancel
Save