Adding line 246 "edit global pockage definitions costs" back in
[freeside.git] / FS / FS / svc_phone.pm
index 72c609c..73bb772 100644 (file)
@@ -1,7 +1,10 @@
 package FS::svc_phone;
+use base qw( FS::svc_Domain_Mixin FS::svc_PBX_Mixin 
+             FS::location_Mixin
+             FS::svc_Common
+           );
 
 use strict;
-use base qw( FS::svc_Domain_Mixin FS::location_Mixin FS::svc_Common );
 use vars qw( $DEBUG $me @pw_set $conf $phone_name_max
              $passwordmin $passwordmax
            );
@@ -13,7 +16,6 @@ use FS::Record qw( qsearch qsearchs dbh );
 use FS::PagedSearch qw( psearch );
 use FS::Msgcat qw(gettext);
 use FS::part_svc;
-use FS::phone_device;
 use FS::svc_pbx;
 use FS::svc_domain;
 use FS::cust_location;
@@ -239,7 +241,7 @@ Class method which returns an SQL fragment to search for the given string.
 sub search_sql {
   my( $class, $string ) = @_;
 
-  my $conf = new FS::Conf;
+  #my $conf = new FS::Conf;
 
   if ( $conf->exists('svc_phone-allow_alpha_phonenum') ) {
     $string =~ s/\W//g;
@@ -464,7 +466,11 @@ and replace methods.
 sub check {
   my $self = shift;
 
-  my $conf = new FS::Conf;
+  #my $conf = new FS::Conf;
+
+  my $x = $self->setfixed;
+  return $x unless ref($x);
+  my $part_svc = $x;
 
   my $phonenum = $self->phonenum;
   my $phonenum_check_method;
@@ -546,8 +552,9 @@ sub check {
     return "SIP password must be shorter than $passwordmax characters"
       if length($self->sip_password) > $passwordmax;
 
-  } else { # option for this?
+  } elsif ( $part_svc->part_svc_column('sip_password')->columnflag ne 'F' ) {
 
+    # option for this?
     $self->sip_password(
       join('', map $pw_set[ int(rand $#pw_set) ], (1..min($passwordmax,16)) )
     );
@@ -648,9 +655,15 @@ sub radius_check {
   my $self = shift;
   my %check = ();
 
-  my $conf = new FS::Conf;
+  #my $conf = new FS::Conf;
 
-  $check{'User-Password'} = $conf->config('svc_phone-radius-default_password');
+  my $password;
+  if ( $conf->config('svc_phone-radius-password') eq 'countrycode_phonenum' ) {
+    $password = $self->countrycode. $self->phonenum;
+  } else {
+    $password = $conf->config('svc_phone-radius-default_password');
+  }
+  $check{'User-Password'} = $password;
 
   %check;
 }
@@ -685,11 +698,6 @@ Returns any FS::phone_device records associated with this service.
 
 =cut
 
-sub phone_device {
-  my $self = shift;
-  qsearch('phone_device', { 'svcnum' => $self->svcnum } );
-}
-
 #override location_Mixin version cause we want to try the cust_pkg location
 #in between us and cust_main
 # XXX what to do in the unlinked case???  return a pseudo-object that returns