package NGCP::Panel::Utils::Kamailio; use Sipwise::Base; use NGCP::Panel::Utils::XMLDispatcher; use NGCP::Panel::Utils::DateTime; use Data::Dumper; sub delete_location_contact { my ($c, $prov_subscriber, $contact) = @_; my $aor = $prov_subscriber->username . '@' . $prov_subscriber->domain->domain; my $ret = NGCP::Panel::Utils::XMLDispatcher::dispatch($c, "proxy-ng", 1, 1, < ul.rm_contact location $aor $contact EOF } sub delete_location { my ($c, $prov_subscriber) = @_; my $aor = $prov_subscriber->username . '@' . $prov_subscriber->domain->domain; my $ret = NGCP::Panel::Utils::XMLDispatcher::dispatch($c, "proxy-ng", 1, 1, < ul.rm location $aor EOF } sub create_location { my ($c, $prov_subscriber, $contact, $q, $expires, $flags, $cflags) = @_; my $aor = get_aor($c, $prov_subscriber); my $path = $c->config->{sip}->{path} || ''; if($expires) { $expires = NGCP::Panel::Utils::DateTime::from_string($expires)->epoch; } else { $expires = 4294967295; } $flags //= 0; $cflags //= 0; my $ret = NGCP::Panel::Utils::XMLDispatcher::dispatch($c, "proxy-ng", 1, 1, < ul.add location $aor $contact 0 $q $flags $cflags $expires EOF } sub flush { my ($c) = @_; my $ret = NGCP::Panel::Utils::XMLDispatcher::dispatch($c, "proxy-ng", 1, 1, < ul.flush EOF } # returns: () or (ID, STATUS, [XML]) sub trusted_reload { my ($c) = @_; my ($ret) = NGCP::Panel::Utils::XMLDispatcher::dispatch($c, "proxy-ng", 1, 1, < permissions.trustedReload EOF return ref $ret ? @{ $ret } : (); } sub get_aor{ my ($c, $prov_subscriber) = @_; return $prov_subscriber->username . '@' . $prov_subscriber->domain->domain; } 1; # vim: set tabstop=4 expandtab: