From b72107bf7d69bbb9e60deaadcbac52872c42fcbb Mon Sep 17 00:00:00 2001 From: Marco Capetta Date: Fri, 11 Apr 2025 11:12:12 +0200 Subject: [PATCH] MT#62546 Fix permanent registration nat flags Due to changes in how kamailio manage the NAT contacts and the corresponding natping, the flags that the API or web interface sets while a permanent registration is created have to be updated. Before: * Default cflag is set to 0 (natping disabled) * If nat option, then cflag is set to 64 New: * Default cflag is set to 256 (netping disabled) * If nat option, then cflag is set to 128 Change-Id: I39b1d7a697ef72267fd8a05edf0552d2c1403733 (cherry picked from commit 1be3f5a2572d40cfbae8b231dca03806b6c1445d) --- lib/NGCP/Panel/Controller/Subscriber.pm | 4 ++-- lib/NGCP/Panel/Role/API/SubscriberRegistrations.pm | 6 +++--- lib/NGCP/Panel/Utils/ProvisioningTemplates.pm | 4 ++-- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/lib/NGCP/Panel/Controller/Subscriber.pm b/lib/NGCP/Panel/Controller/Subscriber.pm index 9a47bc749d..09951f72a5 100644 --- a/lib/NGCP/Panel/Controller/Subscriber.pm +++ b/lib/NGCP/Panel/Controller/Subscriber.pm @@ -4552,8 +4552,8 @@ sub create_registered :Chained('master') :PathPart('registered/create') :Args(0) try { my $values = $form->values; $values->{flags} = 0; - $values->{cflags} = 0; - $values->{cflags} |= 64 if($values->{nat}); + $values->{cflags} = 256; + $values->{cflags} |= 128 if($values->{nat}); NGCP::Panel::Utils::Kamailio::create_location($c, $c->stash->{subscriber}->provisioning_voip_subscriber, $values diff --git a/lib/NGCP/Panel/Role/API/SubscriberRegistrations.pm b/lib/NGCP/Panel/Role/API/SubscriberRegistrations.pm index 0ce73b01f2..5b3f61875a 100644 --- a/lib/NGCP/Panel/Role/API/SubscriberRegistrations.pm +++ b/lib/NGCP/Panel/Role/API/SubscriberRegistrations.pm @@ -179,7 +179,7 @@ sub resource_from_item { my $sub = $self->subscriber_from_item($c, $item); return unless($sub); $resource->{subscriber_id} = int($sub->id); - $resource->{nat} = $resource->{cflags} & 64; + $resource->{nat} = $resource->{cflags} & 128; if ($resource->{path}) { (my ($socket)) = $resource->{path} =~/;socket=([^>]+)>/; if ($socket) { @@ -325,8 +325,8 @@ sub update_item { } my $values = $form->values; $values->{flags} = 0; - $values->{cflags} = 0; - $values->{cflags} |= 64 if($values->{nat}); + $values->{cflags} = 256; + $values->{cflags} |= 128 if($values->{nat}); NGCP::Panel::Utils::Kamailio::create_location($c, $sub->provisioning_voip_subscriber, diff --git a/lib/NGCP/Panel/Utils/ProvisioningTemplates.pm b/lib/NGCP/Panel/Utils/ProvisioningTemplates.pm index 848a1eb26f..b5b73d0aeb 100644 --- a/lib/NGCP/Panel/Utils/ProvisioningTemplates.pm +++ b/lib/NGCP/Panel/Utils/ProvisioningTemplates.pm @@ -1045,8 +1045,8 @@ sub _init_registrations_context { push(@{$context->{registrations}}, \%registration); $registration{flags} = 0; - $registration{cflags} = 0; - $registration{cflags} |= 64 if($registration{nat}); + $registration{cflags} = 256; + $registration{cflags} |= 128 if($registration{nat}); }