From 66eaa4a82b7fc52e711ecdefc95feedf629f71b1 Mon Sep 17 00:00:00 2001 From: Ivan Kohler Date: Fri, 11 Jan 2013 21:22:22 -0800 Subject: [PATCH] add svc_phone.sim_imsi, RT#20768 --- FS/FS/Schema.pm | 1 + FS/FS/svc_phone.pm | 15 +++++++++++++-- httemplate/edit/svc_phone.cgi | 5 +++++ httemplate/view/svc_phone.cgi | 2 +- 4 files changed, 20 insertions(+), 3 deletions(-) diff --git a/FS/FS/Schema.pm b/FS/FS/Schema.pm index 69e21da68..19edc25a9 100644 --- a/FS/FS/Schema.pm +++ b/FS/FS/Schema.pm @@ -3598,6 +3598,7 @@ sub tables_hashref { 'svcnum', 'int', '', '', '', '', 'countrycode', 'varchar', '', 3, '', '', 'phonenum', 'varchar', '', 15, '', '', #12 ? + 'sim_imsi', 'varchar', 'NULL', 15, '', '', 'pin', 'varchar', 'NULL', $char_d, '', '', 'sip_password', 'varchar', 'NULL', $char_d, '', '', 'phone_name', 'varchar', 'NULL', $char_d, '', '', diff --git a/FS/FS/svc_phone.pm b/FS/FS/svc_phone.pm index 1296c1e85..bf610c62b 100644 --- a/FS/FS/svc_phone.pm +++ b/FS/FS/svc_phone.pm @@ -23,10 +23,11 @@ $DEBUG = 0; @pw_set = ( 'a'..'k', 'm','n', 'p-z', 'A'..'N', 'P'..'Z' , '2'..'9' ); #ask FS::UID to run this stuff for us later -$FS::UID::callback{'FS::svc_acct'} = sub { +FS::UID->install_callback( sub { $conf = new FS::Conf; $phone_name_max = $conf->config('svc_phone-phone_name-max_length'); -}; +} +); =head1 NAME @@ -68,6 +69,10 @@ primary key =item phonenum +=item sim_imsi + +SIM IMSI (http://en.wikipedia.org/wiki/International_mobile_subscriber_identity) + =item sip_password =item pin @@ -147,6 +152,7 @@ sub table_info { disable_select => 1, }, 'phonenum' => 'Phone number', + 'sim_imsi' => 'IMSI', #http://en.wikipedia.org/wiki/International_mobile_subscriber_identity 'pin' => { label => 'Voicemail PIN', #'Personal Identification Number', type => 'text', disable_inventory => 1, @@ -466,6 +472,7 @@ sub check { $self->ut_numbern('svcnum') || $self->ut_numbern('countrycode') || $self->$phonenum_check_method('phonenum') + || $self->ut_numbern('sim_imsi') || $self->ut_anything('sip_password') || $self->ut_numbern('pin') || $self->ut_textn('phone_name') @@ -486,6 +493,10 @@ sub check { ; return $error if $error; + return 'Illegal IMSI (not 14-15 digits)' #shorter? + if length($self->sim_imsi) + && ( length($self->sim_imsi) < 14 || length($self->sim_imsi) > 15 ); + # LNP data validation return 'Cannot set LNP fields: no LNP in progress' if ( ($self->lnp_desired_due_date || $self->lnp_due_date diff --git a/httemplate/edit/svc_phone.cgi b/httemplate/edit/svc_phone.cgi index 9647b6887..8ee71b82d 100644 --- a/httemplate/edit/svc_phone.cgi +++ b/httemplate/edit/svc_phone.cgi @@ -28,6 +28,11 @@ my $begin_callback = sub { type => 'select-did', label => 'Phone number', multiple => $bulk, + }, + { field => 'sim_imsi', + type => 'text', + size => 15, + maxlength => 15, }; push @$fields, { field => 'domsvc', diff --git a/httemplate/view/svc_phone.cgi b/httemplate/view/svc_phone.cgi index 323be63dc..e956e7d49 100644 --- a/httemplate/view/svc_phone.cgi +++ b/httemplate/view/svc_phone.cgi @@ -16,7 +16,7 @@ my %labels = map { $_ => ( ref($fields->{$_}) ); } keys %$fields; -my @fields = qw( countrycode phonenum ); +my @fields = qw( countrycode phonenum sim_imsi ); push @fields, 'domain' if $conf->exists('svc_phone-domain'); push @fields, qw( pbx_title sip_password pin phone_name forwarddst email ); -- 2.11.0