X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=FS%2FFS%2Fsvc_pbx.pm;h=e19dc88dd2b2f12661314a0f539216bf91979371;hb=76d6fe17d02b77301619065ad43d7300432e977c;hp=66e51da71ddeb0e95c837af988819706eb563db8;hpb=ded0ab5cac02f099b387de360fb6dd6bd8cbb6b4;p=freeside.git diff --git a/FS/FS/svc_pbx.pm b/FS/FS/svc_pbx.pm index 66e51da71..e19dc88dd 100644 --- a/FS/FS/svc_pbx.pm +++ b/FS/FS/svc_pbx.pm @@ -1,7 +1,8 @@ package FS::svc_pbx; +use base qw( FS::o2m_Common FS::device_Common FS::svc_External_Common ); use strict; -use base qw( FS::svc_External_Common ); +use Tie::IxHash; use FS::Record qw( qsearch qsearchs dbh ); use FS::PagedSearch qw( psearch ); use FS::Conf; @@ -61,6 +62,11 @@ Maximum number of extensions Maximum number of simultaneous users +=item ip_addr + +The IP address of this PBX, if that's relevant. This must be a valid IP +address (or blank), but it's not checked for block assignment or uniqueness. + =back =head1 METHODS @@ -80,6 +86,17 @@ points to. You can ask the object for a copy with the I method. sub table { 'svc_pbx'; } sub table_info { + + tie my %fields, 'Tie::IxHash', + 'svcnum' => 'PBX', + 'id' => 'PBX/Tenant ID', + 'uuid' => 'External UUID', + 'title' => 'Name', + 'max_extensions' => 'Maximum number of User Extensions', + 'max_simultaneous' => 'Maximum number of simultaneous users', + 'ip_addr' => 'IP address', + ; + { 'name' => 'PBX', 'name_plural' => 'PBXs', @@ -88,12 +105,7 @@ sub table_info { 'sorts' => 'svcnum', # optional sort field (or arrayref of sort fields, main first) 'display_weight' => 70, 'cancel_weight' => 90, - 'fields' => { - 'id' => 'ID', - 'title' => 'Name', - 'max_extensions' => 'Maximum number of User Extensions', - 'max_simultaneous' => 'Maximum number of simultaneous users', - }, + 'fields' => \%fields, }; } @@ -232,9 +244,10 @@ sub check { my $x = $self->setfixed; return $x unless ref($x); my $part_svc = $x; - - - $self->SUPER::check; + + return + $self->ut_ipn('ip_addr') + || $self->SUPER::check; } sub _check_duplicate {