summaryrefslogtreecommitdiff
path: root/FS
diff options
context:
space:
mode:
Diffstat (limited to 'FS')
-rw-r--r--FS/FS/Schema.pm1
-rw-r--r--FS/FS/svc_phone.pm15
2 files changed, 14 insertions, 2 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