X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=fs_selfservice%2FFS-SelfService%2FSelfService%2FFreeRadiusVoip.pm;h=25f673f4ad99ee4d3d7815005687b2a95cd40078;hb=c22d84e565ab16db142395dce2e8621624eff140;hp=c52a97fb24fc46fbccde895d9cdc74f5098b34ec;hpb=f0e99fc9288c22e1830a45d3e67d6d0241d98fd9;p=freeside.git diff --git a/fs_selfservice/FS-SelfService/SelfService/FreeRadiusVoip.pm b/fs_selfservice/FS-SelfService/SelfService/FreeRadiusVoip.pm index c52a97fb2..25f673f4a 100644 --- a/fs_selfservice/FS-SelfService/SelfService/FreeRadiusVoip.pm +++ b/fs_selfservice/FS-SelfService/SelfService/FreeRadiusVoip.pm @@ -1,8 +1,13 @@ #Add this to the modules section of radiusd.conf # perl { # #path to this module -# module=/usr/local/share/perl/5.8.8/FS/SelfService/FreeRadiusVoip.pm +# # deb 6 example +# #module=/usr/local/share/perl/5.10.1/FS/SelfService/FreeRadiusVoip.pm +# # deb 7 example +# module=/usr/local/share/perl/5.14.2/FS/SelfService/FreeRadiusVoip.pm +# # func_authorize = authorize; +# # } # #In the Authorize section @@ -11,9 +16,9 @@ # # #N/A# Add a line containing 'perl' to the Accounting section. # -# and on debian systems, add this to /etc/init.d/freeradius, with the +# and on debian 6 systems, add this to /etc/init.d/freeradius, with the # correct path (http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=416266) -# LD_PRELOAD=/usr/lib/libperl.so.5.8.8 +# LD_PRELOAD=/usr/lib/libperl.so.5.10 # export LD_PRELOAD BEGIN { $FS::SelfService::skip_uid_check = 1; } @@ -36,16 +41,21 @@ use constant RLM_MODULE_NUMCODES=> 9; #How many return codes there are sub authorize { - #my $src = $RAD_REQUEST{'User-Name'}; + #&log_request_attributes(); my $response = call_time( 'src' => $RAD_REQUEST{'Calling-Station-Id'}, 'dst' => $RAD_REQUEST{'Called-Station-Id'}, ); - if ( $response->{$error} ) { - $RAD_REPLY{'Access-Reject'} = $response->{'error'}; + if ( $response->{'error'} ) { + $RAD_REPLY{'Reply-Message'} = $response->{'error'}; return RLM_MODULE_REJECT; + } elsif ( $response->{'seconds'} ) { + $RAD_REPLY{'Session-Timeout'} = $response->{'seconds'}; + $RAD_REPLY{'Termination-Action'} = 0; + return RLM_MODULE_OK; } else { - $RAD_REPLY{'Session-Timeout'} = $response->{'seconds'} + # if the called number is free, put 1 in the Termination-Action attribute + $RAD_REPLY{'Termination-Action'} = 1; return RLM_MODULE_OK; }