TT#35508 Improve SMS journaling, add SMS 'cli' field

* moved sms_journal record creation into a new
      NGCP::Utils::SMS::add_journal_record()
    * 'cli' is used when sending sms to store
      user_cli or cli subscriber preference.
      that is useful for calls where caller is a
      remote number

Change-Id: I80bc31da294a56b302e154133525eea187ab6aff
changes/64/20564/3
Kirill Solomko 7 years ago
parent 9ea0a79ac5
commit db1d5ef95b

@ -168,9 +168,9 @@ sub create_item {
# }
#}
my $rs = $self->item_rs($c);
my $item = $rs->create({
subscriber_id => $resource->{subscriber_id},
my $item = NGCP::Utils::SMS::add_journal_record({
c => $c,
prov_subscriber => $subscriber,
direction => 'out',
caller => $resource->{caller},
callee => $resource->{callee},

@ -97,8 +97,9 @@ sub receive :Chained('list') :PathPart('receive') :Args(0) {
}
$c->log->info("pcc is set to $pcc_enabled for prov subscriber id " . $prov_dbalias->subscriber_id);
my $created_item = $c->model('DB')->resultset('sms_journal')->create({
subscriber_id => $prov_dbalias->subscriber_id,
my $created_item = NGCP::Utils::SMS::add_journal_record({
c => $c,
prov_subscriber => $prov_dbalias->subscriber,
direction => "in",
caller => $from,
callee => $to,
@ -106,7 +107,7 @@ sub receive :Chained('list') :PathPart('receive') :Args(0) {
pcc_status => "none",
pcc_token => $pcc_token,
coding => $coding,
});
});
# check for cfs
{
@ -188,8 +189,9 @@ sub receive :Chained('list') :PathPart('receive') :Args(0) {
$c->log->info(">>>> forward sms to $dst");
my $pcc_status = $pcc_enabled ? "pending" : "none";
my $fwd_item = $c->model('DB')->resultset('sms_journal')->create({
subscriber_id => $prov_dbalias->subscriber_id,
my $fwd_item = NGCP::Utils::SMS::add_journal_record({
c => $c,
prov_subscriber => $prov_dbalias->subscriber,
direction => "forward",
caller => $to,
callee => $dst,

@ -48,7 +48,7 @@ has_field 'caller' => (
maxlength => 255,
element_attr => {
rel => ['tooltip'],
title => ['Our CLI in case of sent messages. Must be valid according to the preferences allowed_clis, user_cli, cli'],
title => ['A valid caller number in the E164 format. Must be valid according to the preferences alloed_clis, user_cli, cli'],
},
);
@ -58,7 +58,17 @@ has_field 'callee' => (
maxlength => 255,
element_attr => {
rel => ['tooltip'],
title => ['A valid CLI in the E164 format'],
title => ['A valid callee number in the E164 format'],
},
);
has_field 'cli' => (
type => 'Text',
required => 0,
maxlength => 128,
element_attr => {
rel => ['tooltip'],
title => ['Our CLI in case of sent messages. Automatically filled in from user_cli > cli'],
},
);

@ -8,6 +8,7 @@ use UUID;
use Module::Load::Conditional qw/can_load/;
use NGCP::Panel::Utils::Utf8;
use NGCP::Panel::Utils::Preferences;
sub get_coding {
my $text = shift;
@ -325,4 +326,34 @@ sub perform_prepaid_billing {
return;
}
sub add_journal_record {
my (%args) = @_;
my $c = $args{c};
my $prov_subscriber = $args{prov_subscriber};
$args{status} //= '';
$args{reason} //= '';
$args{subscriber_id} = $args{prov_subscriber}->id;
delete $args{c};
delete $args{prov_subscriber};
my $pref_rs_cli = NGCP::Panel::Utils::Preferences::get_usr_preference_rs(
c => $c, attribute => "user_cli",
prov_subscriber => $prov_subscriber,
);
my $cli = defined $pref_rs_cli->first ? $pref_rs_cli->first->value : undef;
unless ($cli) {
my $pref_rs_cli = NGCP::Panel::Utils::Preferences::get_usr_preference_rs(
c => $c, attribute => "cli",
prov_subscriber => $prov_subscriber,
);
$cli = defined $pref_rs_cli->first ? $pref_rs_cli->first->value : '';
}
return $c->model('DB')->resultset('sms_journal')->create(\%args));
}
1;

Loading…
Cancel
Save