TT#58004 stop+start_profile instead of update_profile event

Change-Id: I0c53ecf324b0401df6379b4bf2ee76f8a0b12881
changes/97/29597/3
Rene Krenn 6 years ago
parent 7c571ed2b2
commit b431274d9c

@ -6,6 +6,8 @@ use NGCP::Panel::Utils::DateTime qw();
use constant ENABLE_EVENTS => 1;
use constant CREATE_EVENT_PER_ALIAS => 1;
#use end+start profile events instead of update event when moving numbers between pilot and extension susbcribers:
use constant MOVED_UPDATE_PROFILE_EVENT => 0;
sub insert_deferred {
my %params = @_;
@ -84,19 +86,19 @@ sub insert_profile_events {
if ($pilot_prov_subscriber) {
$context->{old} = $pilot_prov_subscriber->profile_id;
$context->{new} = $new_profile_id;
$inserted += _insert_profile_event($context);
$inserted += _insert_profile_event($context,MOVED_UPDATE_PROFILE_EVENT);
}
} else {
#aliases added
$context->{old} = undef;
$context->{new} = $new_profile_id;
$inserted += _insert_profile_event($context);
$inserted += _insert_profile_event($context,1);
}
} else {
#no number change
$context->{old} = $old_profile_id;
$context->{new} = $new_profile_id;
$inserted += _insert_profile_event($context);
$inserted += _insert_profile_event($context,1);
}
}
foreach my $old_alias (@$old_aliases) {
@ -107,13 +109,13 @@ sub insert_profile_events {
if ($pilot_prov_subscriber) {
$context->{old} = $old_profile_id;
$context->{new} = $pilot_prov_subscriber->profile_id;
$inserted += _insert_profile_event($context);
$inserted += _insert_profile_event($context,MOVED_UPDATE_PROFILE_EVENT);
}
} else {
#aliases deleted
$context->{old} = $old_profile_id;
$context->{new} = undef;
$inserted += _insert_profile_event($context);
$inserted += _insert_profile_event($context,1);
}
} else {
#no number change
@ -124,24 +126,41 @@ sub insert_profile_events {
$context->{old} = $old_profile_id;
$context->{new} = $new_profile_id;
$context->{create_event_per_alias} = undef;
$inserted += _insert_profile_event($context);
$inserted += _insert_profile_event($context,1);
}
}
sub _insert_profile_event {
my ($context) = @_;
my ($context,$update_profile_event) = @_;
my $inserted = 0;
if(($context->{old} // 0) != ($context->{new} // 0)) {
if(defined $context->{old} && defined $context->{new}) {
$context->{type} = "update_profile";
} elsif(defined $context->{new}) {
$context->{type} = "start_profile";
if ($update_profile_event) {
$context->{type} = "update_profile";
$inserted += insert(%$context);
} else {
$context->{type} = "end_profile";
my $new = $context->{new};
undef $context->{new};
$inserted += insert(%$context);
$context->{type} = "start_profile";
$context->{new} = $new;
my $old = $context->{old};
undef $context->{old};
$inserted += insert(%$context);
$context->{old} = $old;
$context->{type} = "update_profile";
}
} else {
$context->{type} = "end_profile";
if(defined $context->{new}) {
$context->{type} = "start_profile";
} else {
$context->{type} = "end_profile";
}
$inserted += insert(%$context);
}
$inserted += insert(%$context);
}
return $inserted;

@ -1,4 +1,4 @@
use Sipwise::Base;
#use Sipwise::Base;
use Net::Domain qw(hostfqdn);
use JSON qw();
use Test::More;
@ -168,7 +168,7 @@ my $custcontact = JSON::from_json($res->decoded_content);
my %subscriber_map = ();
my %customer_map = ();
#goto SKIP;
goto SKIP;
{ #end_ivr:
my $customer = _create_customer(
type => "sipaccount",
@ -408,7 +408,7 @@ my %customer_map = ();
#
#}
#SKIP:
SKIP:
{ #pilot_primary_number, primary_number, pilot_first_non_primary_alias, susbcriber_first_non_primary_alias:
my $customer = _create_customer(
@ -671,20 +671,56 @@ my %customer_map = ();
pilot_primary_alias_username_after => $cc.$ac.$sn,
);
#_check_event_history("end_profile when terminating a pbx extension subscriber w alias: ",$subscriber->{id},"%profile",[
# {},{},{},{},{},
# { %subscriber_event,
#
# type => "update_profile",
# old_status => $subscriberprofile2->{id},
# new_status => $subscriberprofile3->{id},
#
# non_primary_alias_username => $new_aliases->[0]->{cc}.$new_aliases->[0]->{ac}.$new_aliases->[0]->{sn},
# },
# { %subscriber_event,
#
# type => "update_profile",
# old_status => $subscriberprofile2->{id},
# new_status => $subscriberprofile3->{id},
#
# non_primary_alias_username => $new_aliases->[1]->{cc}.$new_aliases->[1]->{ac}.$new_aliases->[1]->{sn},
# },
#]);
_check_event_history("end_profile when terminating a pbx extension subscriber w alias: ",$subscriber->{id},"%profile",[
{},{},{},{},{},
{ %subscriber_event,
type => "update_profile",
type => "end_profile",
old_status => $subscriberprofile2->{id},
new_status => '',
non_primary_alias_username => $new_aliases->[0]->{cc}.$new_aliases->[0]->{ac}.$new_aliases->[0]->{sn},
},
{ %subscriber_event,
type => "start_profile",
old_status => '',
new_status => $subscriberprofile3->{id},
non_primary_alias_username => $new_aliases->[0]->{cc}.$new_aliases->[0]->{ac}.$new_aliases->[0]->{sn},
},
{ %subscriber_event,
type => "update_profile",
type => "end_profile",
old_status => $subscriberprofile2->{id},
new_status => '',
non_primary_alias_username => $new_aliases->[1]->{cc}.$new_aliases->[1]->{ac}.$new_aliases->[1]->{sn},
},
{ %subscriber_event,
type => "start_profile",
old_status => '',
new_status => $subscriberprofile3->{id},
non_primary_alias_username => $new_aliases->[1]->{cc}.$new_aliases->[1]->{ac}.$new_aliases->[1]->{sn},

Loading…
Cancel
Save