[freeside-commits] freeside/FS/FS/part_export sqlradius.pm, 1.37, 1.38 phone_sqlradius.pm, NONE, 1.1
Ivan,,,
ivan at wavetail.420.am
Thu Oct 23 18:19:49 PDT 2008
Update of /home/cvs/cvsroot/freeside/FS/FS/part_export
In directory wavetail.420.am:/tmp/cvs-serv19977/part_export
Modified Files:
sqlradius.pm
Added Files:
phone_sqlradius.pm
Log Message:
add phone_sqlradius export
--- NEW FILE: phone_sqlradius.pm ---
package FS::part_export::phone_sqlradius;
use vars qw(@ISA $DEBUG %info );
use Tie::IxHash;
use FS::Record; #qw( dbh qsearch qsearchs str2time_sql );
#use FS::part_export;
use FS::part_export::sqlradius;
#use FS::svc_phone;
#use FS::export_svc;
#use Carp qw( cluck );
@ISA = qw(FS::part_export::sqlradius);
$DEBUG = 0;
tie %options, 'Tie::IxHash',
'datasrc' => { label=>'DBI data source ' },
'username' => { label=>'Database username' },
'password' => { label=>'Database password' },
'ignore_accounting' => {
type => 'checkbox',
label => 'Ignore accounting records from this database'
},
'hide_ip' => {
type => 'checkbox',
label => 'Hide IP address information on session reports',
},
'hide_data' => {
type => 'checkbox',
label => 'Hide download/upload information on session reports',
},
#should be default for this one, right?
#'show_called_station' => {
# type => 'checkbox',
# label => 'Show the Called-Station-ID on session reports',
#},
#N/A
#'overlimit_groups' => { label => 'Radius groups to assign to svc_acct which has exceeded its bandwidth or time limit', } ,
#'groups_susp_reason' => { label =>
# 'Radius group mapping to reason (via template user) (svcnum|username|username at domain reasonnum|reason)',
# type => 'textarea',
# },
;
%info = (
'svc' => 'svc_phone',
'desc' => 'Real-time export to SQL-backed RADIUS (FreeRADIUS, ICRADIUS) for phone provisioning and rating',
'options' => \%options,
'notes' => <<END,
Real-time export of <b>radcheck</b> table
<!--, <b>radreply</b> and <b>usergroup</b>-- tables>
to any SQL database for <a href="http://www.freeradius.org/">FreeRADIUS</a>
or <a href="http://radius.innercite.com/">ICRADIUS</a>.
<br><br>
This export is for phone/VoIP provisioning and rating. For a regular RADIUS
export, see sqlradius.
<br><br>
<!--An existing RADIUS database will be updated in realtime, but you can use
<a href="http://www.freeside.biz/mediawiki/index.php/Freeside:1.9:Documentation:Developer/bin/freeside-phone_sqlradius-reset">freeside-phone_sqlradius-reset</a>
to delete the entire RADIUS database and repopulate the tables from the
Freeside database.
<br><br>
-->
See the
<a href="http://search.cpan.org/dist/DBI/DBI.pm#connect">DBI documentation</a>
and the
<a href="http://search.cpan.org/search?mode=module&query=DBD%3A%3A">documentation for your DBD</a>
for the exact syntax of a DBI data source.
END
);
sub rebless { shift; }
sub export_username {
my($self, $svc_phone) = (shift, shift);
$svc_phone->countrycode. $svc_phone->phonenum;
}
sub _export_suspend {}
sub _export_unsuspend {}
#probably harmless that we ->can('usage_sessions').... ?
1;
Index: sqlradius.pm
===================================================================
RCS file: /home/cvs/cvsroot/freeside/FS/FS/part_export/sqlradius.pm,v
retrieving revision 1.37
retrieving revision 1.38
diff -u -d -r1.37 -r1.38
--- sqlradius.pm 22 Oct 2008 04:39:54 -0000 1.37
+++ sqlradius.pm 24 Oct 2008 01:19:46 -0000 1.38
@@ -49,7 +49,7 @@
$notes2 = <<'END';
An existing RADIUS database will be updated in realtime, but you can use
-<a href="../docs/man/bin/freeside-sqlradius-reset">freeside-sqlradius-reset</a>
+<a href="http://www.freeside.biz/mediawiki/index.php/Freeside:1.9:Documentation:Developer/bin/freeside-sqlradius-reset">freeside-sqlradius-reset</a>
to delete the entire RADIUS database and repopulate the tables from the
Freeside database. See the
<a href="http://search.cpan.org/dist/DBI/DBI.pm#connect">DBI documentation</a>
@@ -95,24 +95,24 @@
}
sub _export_insert {
- my($self, $svc_acct) = (shift, shift);
+ my($self, $svc_x) = (shift, shift);
foreach my $table (qw(reply check)) {
my $method = "radius_$table";
- my %attrib = $svc_acct->$method();
+ my %attrib = $svc_x->$method();
next unless keys %attrib;
- my $err_or_queue = $self->sqlradius_queue( $svc_acct->svcnum, 'insert',
- $table, $self->export_username($svc_acct), %attrib );
+ my $err_or_queue = $self->sqlradius_queue( $svc_x->svcnum, 'insert',
+ $table, $self->export_username($svc_x), %attrib );
return $err_or_queue unless ref($err_or_queue);
}
- my @groups = $svc_acct->radius_groups;
+ my @groups = $svc_x->radius_groups;
if ( @groups ) {
- cluck localtime(). ": queuing usergroup_insert for ". $svc_acct->svcnum.
- " (". $self->export_username($svc_acct). " with ". join(", ", @groups)
+ cluck localtime(). ": queuing usergroup_insert for ". $svc_x->svcnum.
+ " (". $self->export_username($svc_x). " with ". join(", ", @groups)
if $DEBUG;
my $err_or_queue = $self->sqlradius_queue(
- $svc_acct->svcnum, 'usergroup_insert',
- $self->export_username($svc_acct), @groups );
+ $svc_x->svcnum, 'usergroup_insert',
+ $self->export_username($svc_x), @groups );
return $err_or_queue unless ref($err_or_queue);
}
'';
@@ -283,9 +283,9 @@
}
sub _export_delete {
- my( $self, $svc_acct ) = (shift, shift);
- my $err_or_queue = $self->sqlradius_queue( $svc_acct->svcnum, 'delete',
- $self->export_username($svc_acct) );
+ my( $self, $svc_x ) = (shift, shift);
+ my $err_or_queue = $self->sqlradius_queue( $svc_x->svcnum, 'delete',
+ $self->export_username($svc_x) );
ref($err_or_queue) ? '' : $err_or_queue;
}
More information about the freeside-commits
mailing list