diff --git a/lib/NGCP/Panel/Form/Customer/PbxFieldDeviceAPI.pm b/lib/NGCP/Panel/Form/Customer/PbxFieldDeviceAPI.pm index 628c7482ca..611e69eee4 100644 --- a/lib/NGCP/Panel/Form/Customer/PbxFieldDeviceAPI.pm +++ b/lib/NGCP/Panel/Form/Customer/PbxFieldDeviceAPI.pm @@ -100,6 +100,16 @@ has_field 'lines.type' => ( element_class => [qw/ngcp-linetype-select/], ); +has_field 'lines.target_number' => ( + type => 'Text', + required => 1, + label => 'Linerange', + element_attr => { + rel => ['tooltip'], + title => ['The target number.'], + }, +); + has_field 'lines.deviceid_number_id' => ( type => '+NGCP::Panel::Field::PosInteger', required => 0, diff --git a/lib/NGCP/Panel/Role/API/PbxDevices.pm b/lib/NGCP/Panel/Role/API/PbxDevices.pm index 6c1a19a4a6..249e536fcc 100644 --- a/lib/NGCP/Panel/Role/API/PbxDevices.pm +++ b/lib/NGCP/Panel/Role/API/PbxDevices.pm @@ -217,6 +217,11 @@ sub update_item { $line->{line_type} = delete $line->{type}; + if (defined $line->{target_number} && $line->{target_number} !~ /^[0-9#*]+$/) { + $self->error($c, HTTP_UNPROCESSABLE_ENTITY, "Invalid 'target_number' ($line->{target_number}), can contain only '0-9' numbers and '#','*' characters"); + return; + } + if($oldline) { $oldline->update($line); } else {