fix credit limits, RT#27267
[freeside.git] / FS / FS / svc_phone.pm
index ed0ec09..0677688 100644 (file)
@@ -239,7 +239,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;
@@ -466,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;
@@ -548,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)) )
     );
@@ -650,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;
 }
@@ -719,8 +730,8 @@ Accepts the following options:
 
 =item status => "" (or "processing-tiered", "done"): Return only CDRs with that processing status.
 
-=item inbound => 1: Return CDRs for inbound calls.  With "status", will filter 
-on inbound processing status.
+=item inbound => 1: Return CDRs for inbound calls (that is, those that match
+on 'dst').  With "status", will filter on inbound processing status.
 
 =item default_prefix => "XXX": Also accept the phone number of the service prepended 
 with the chosen prefix.
@@ -731,7 +742,9 @@ with the chosen prefix.
 
 =item calltypenum: Only return CDRs with this call type.
 
-=item disable_src => 1: Only match on "charged_party", not "src".
+=item disable_src => 1: Only match on 'charged_party', not 'src'.
+
+=item disable_charged_party => 1: Only match on 'src', not 'charged_party'.
 
 =item nonzero: Only return CDRs where duration > 0.
 
@@ -771,8 +784,8 @@ sub psearch_cdrs {
 
   } else {
 
-    @fields = ( 'charged_party' );
-    push @fields, 'src' if !$options{'disable_src'};
+    push @fields, 'charged_party' unless $options{'disable_charged_party'};
+    push @fields, 'src' unless $options{'disable_src'};
     $hash{'freesidestatus'} = $options{'status'}
       if exists($options{'status'});
   }