diff --git a/lib/NGCP/Panel/Controller/API/PbxDevices.pm b/lib/NGCP/Panel/Controller/API/PbxDevices.pm index e0fbf1f904..34af2e4d9a 100644 --- a/lib/NGCP/Panel/Controller/API/PbxDevices.pm +++ b/lib/NGCP/Panel/Controller/API/PbxDevices.pm @@ -46,6 +46,37 @@ sub query_params { param => 'station_name', description => 'Search for PBX devices matching a station_name pattern (wildcards possible)', query_type => 'string_like', + }, + { + param => 'pbx_extension', + description => 'Search for PBX devices matching a subscriber\'s extension pattern (wildcards possible)', + query => { + first => sub { + my $q = shift; + { 'provisioning_voip_subscriber.pbx_extension' => { like => "$q%" } }; + + }, + second => sub { + return { join => { 'autoprov_field_device_lines' => 'provisioning_voip_subscriber'} } + }, + }, + }, + { + param => 'display_name', + description => 'Search for PBX devices matching a subscriber\'s diplay name pattern (wildcards possible)', + query => { + first => sub { + my $q = shift; + { + 'attribute.attribute' => 'display_name', + 'voip_usr_preferences.value' => { like => "$q%" } + }; + + }, + second => sub { + return { join => { 'autoprov_field_device_lines' => {'provisioning_voip_subscriber' => { 'voip_usr_preferences' => 'attribute' } } } } + }, + }, } ];