X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=FS%2FFS%2Fsvc_phone.pm;h=0ed01ad366987c911e38450c2265c7eb3ccb2b17;hb=611624bc08f525d19e1bd548a7d005aa73a53145;hp=88582d393d90d8bc8c675253a6971c667ded6a28;hpb=f379188e8ba1388c4735de69defd794c3d96bcf6;p=freeside.git diff --git a/FS/FS/svc_phone.pm b/FS/FS/svc_phone.pm index 88582d393..0ed01ad36 100644 --- a/FS/FS/svc_phone.pm +++ b/FS/FS/svc_phone.pm @@ -1,15 +1,15 @@ package FS::svc_phone; use strict; -use vars qw( @ISA @pw_set $conf ); +use base qw( FS::svc_Domain_Mixin FS::svc_Common ); +use vars qw( @pw_set $conf ); use FS::Conf; use FS::Record qw( qsearch qsearchs dbh ); use FS::Msgcat qw(gettext); -use FS::svc_Common; use FS::part_svc; use FS::phone_device; - -@ISA = qw( FS::svc_Common ); +use FS::svc_pbx; +use FS::svc_domain; #avoid l 1 and o O 0 @pw_set = ( 'a'..'k', 'm','n', 'p-z', 'A'..'N', 'P'..'Z' , '2'..'9' ); @@ -67,6 +67,10 @@ Voicemail PIN =item phone_name +=item pbxsvc + +Optional svcnum from svc_pbx + =back =head1 METHODS @@ -104,6 +108,19 @@ sub table_info { }, 'sip_password' => 'SIP password', 'phone_name' => 'Name', + 'pbxsvc' => { label => 'PBX', + type => 'select-svc_pbx.html', + disable_inventory => 1, + disable_select => 1, #UI wonky, pry works otherwise + }, + 'domsvc' => { + label => 'Domain', + type => 'select', + select_table => 'svc_domain', + select_key => 'svcnum', + select_label => 'domain', + disable_inventory => 1, + }, }, }; } @@ -149,6 +166,7 @@ sub label { my $self = shift; my $phonenum = $self->phonenum; #XXX format it better my $label = $phonenum; + $label .= '@'.$self->domain if $self->domsvc; $label .= ' ('.$self->phone_name.')' if $self->phone_name; $label; } @@ -258,6 +276,8 @@ sub check { || $self->ut_anything('sip_password') || $self->ut_numbern('pin') || $self->ut_textn('phone_name') + || $self->ut_foreign_keyn('pbxsvc', 'svc_pbx', 'svcnum' ) + || $self->ut_foreign_keyn('domsvc', 'svc_domain', 'svcnum' ) ; return $error if $error;