pax_global_header00006660000000000000000000000064122341700360014510gustar00rootroot0000000000000052 comment=db65b808ac1de50c4f56c9a9f3185c3921ea922a Authen-Radius-0.24/000077500000000000000000000000001223417003600141065ustar00rootroot00000000000000Authen-Radius-0.24/Changes000066400000000000000000000120051223417003600153770ustar00rootroot00000000000000Revision history for Perl extension Radius. 0.24 Wed Oct 30 13:21:00 2013 - Added support for changing I/O activity timeouts, so that custom retransmission policies can be implemented - Added ACCESS_CHALLENGE packet type definition (thanks to Stephane Billiart for the patch) - Fix the excessive wait on processing broadcasts when at least one of the nodes in node list did not listen on the requested port (a side-effect is that it is now possible to set timeout in floating seconds since the epoch) 0.23 Sat Aug 17 21:48:00 2013 - Clear authenticator as a part of clear_attibutes(), so multiple requests, sent using the same object, will have different authenticators (as they should) 0.22 Wed Nov 07 20:27:00 2012 - Fix the excessive "types mismatch" warnings on PoD packets 0.21 Mon Oct 29 09:00:00 2012 - Added support for attribute values for byte and short attribute types 0.20 Tue Nov 09 22:45:59 2010 - Fixed the bug with the incorrect encoding of Cisco AVPair attributes 0.19 Tue Nov 02 00:07:00 2010 - Improved support for CoA (thanks Oleg Gawriloff and Matej Vela) - Ability to work with dictionaries in FreeRADIUS format (thanks to Alexandr Kovalenko and Matej Vela) - Support (partial) for WIMAX attributes 0.18 Sun Oct 05 01:00:00 2010 (this version was not released to CPAN, only used for internal testing) - Support for a list of multiple RADIUS servers (RADIUS cluster) 0.17 Thu Jan 14 09:20:00 2010 - Support for RFC3579 - Message-Authenticator 0.16 Mon Dec 14 13:34:00 2009 - Generate random authenticators - Support for CoA request (thanks to Oleg Gawriloff for the patch) - Ability to specify the source IP/port for outgoing packets 0.15 Mon Oct 05 12:00:00 2009 - Bugfixes in error handling 0.14 Mon Aug 17 15:00:00 2009 - Authen::Radius is now distributed under the Perl Artistic License v2.0 - Support for RADIUS retransmits - For the "check_pwd" method plance the local socket's "real" IP address into the NAS-IP-Address attribute instead of 127.0.0.1 0.13 Mon Feb 19 22:09:00 2006 - Packet-of-disconnect support (thanks to Kostas Kalevras for the patch) - Print hexdump of packets to STDERR (thanks to Kevin Steves) 0.12 Fri Dec 17 19:00:00 2004 - Include the default set of radius dictionaries with the module, so it can be used on the generic system without having to install extra components from the RADIUS server. 0.11 Mon Mar 22 22:51:00 2004 - Fixed incorrect constant definition for ACCESS_REJECT (thanks to Alexey Antipov for the error report) 0.10 Fri Mar 05 21:00:00 2004 - Authenticator for the accounting requests (Thanks to Brian Andrus for the patch provided) - Support for password, longer than 16 characters (Thanks to Will LaSala and Robert Tuttle for the problem report and patches) - Include NAS-IP-Address into the check_pwd to avoid error "non-RFC packet error" from some of the RADIUS servers (Thanks to Jacinta Alice Richardson, Bill Schoolfield and Ed Kubaitis for the problem report and patches) - Modify the example in perldoc to avoid confusion with the User-Pasword vs Password attribute. (Thanks to Didier Conchaudron for the problem report) - Limit the maximum value length for string and avpair attributes 0.09 Thu Jun 19 22:00:00 2003 - Replaced obsolete MD5 module with the Digest::MD5 (Thanks Jonathan Earle for his patch). - More careful handling of the return values in check_pwd to avoid "Use of uninitialized value" warnings. (Thanks to Kelsey Cummings for the notice). 0.08 Sun Mar 24 23:00:00 2003 - Extra debug message when adding a new attribute 0.07 Thu Feb 06 14:00:00 2003 - Support for the include command in the dictionaries - Support for Digest-Attributes - Bugfix for the Password attribute (attribute with id=2 should be encrypted only for the undefined [default] vendor) - Asked CPAN maintainers to be granted ownership on this module, since the original author seem to be unavailable for quite long time. - Debug possibility (hexdump of the outgoing and incoming packets) 0.06 Tue May 28 13:05:00 2002 (this version was never released to CPAN) - Vendor support in the dictionaries - Cisco AV pair attribute support 0.05 Thu May 01 12:08:12 1997 - Bugfix to pad passwords up to nearest multiple of 16 (thanks to "Mark R. Levinson" ) 0.04 Mon Mar 31 20:04:33 1997 - changed module name to Authen::Radius - added check_pwd() wrapper method (doesn't need a dictionary!) for quick & easy username+password verification - added actual timeout test on the IO recv() call - remote socket port now defaults to 1645 if no port is specified and there is no 'radius' entry in /etc/services - added documentation on all interface methods (perldoc Authen::Radius) 0.03 Tue Mar 25 19:51:23 1997 - added errors 0.02 Mon Mar 24 11:51:23 1997 - replaced socket() & family with IO::Socket calls - made new() method accept a single hash instead of multiple scalars 0.01 Sun Mar 23 23:05:23 1997 - original version; Authen-Radius-0.24/INSTALL000066400000000000000000000023511223417003600151400ustar00rootroot00000000000000 *** IMPORTANT on *** Before you can install RadiusPerl, you'll have to make sure the following modules are installed first : * Digest::MD5 2.20 or higher * IO 1.12 or higher * Data::HexDump 0.02 or higher All of these are available from CPAN. *** IMPORTANT off *** To install the Radius Client module for Perl 5, proceed as follows : 1 Unpack the RadiusPerl source archive into a suitable directory with gunzip -cf RadiusPerl-x.xx.tar.gz |tar xvf - 2 Go into the newly created directory with cd RadiusPerl-x.xx 3 Build the module as usual : perl Makefile.PL make make test make install Note that for 'make test' to work, you should have a Radius server running with the IP address & secret of the target machine in its clients file. You should also know a username & password in order to test if authentication works OK. Doing a 'make test' will first ask you for each of these. Also, if you plan to do something more complicated than just verify username & password - you should have the RADIUS dictionary file available on the host where you will run you radius client utility, and use load_dictionary before you will try to send any requests. See the file 'README' for general notes on RadiusPerl. Carl Declerck, Andrew Zhilenko Authen-Radius-0.24/LICENSE000066400000000000000000000211261223417003600151150ustar00rootroot00000000000000This program, Authen::Radius module, is distributed under the Perl Artistic License v2.0 ------------------------------------------------------------------------------- Copyright (c) 2000-2006, The Perl Foundation. Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. Preamble This license establishes the terms under which a given free software Package may be copied, modified, distributed, and/or redistributed. The intent is that the Copyright Holder maintains some artistic control over the development of that Package while still keeping the Package available as open source and free software. You are always permitted to make arrangements wholly outside of this license directly with the Copyright Holder of a given Package. If the terms of this license do not permit the full use that you propose to make of the Package, you should contact the Copyright Holder and seek a different licensing arrangement. Definitions "Copyright Holder" means the individual(s) or organization(s) named in the copyright notice for the entire Package. "Contributor" means any party that has contributed code or other material to the Package, in accordance with the Copyright Holder's procedures. "You" and "your" means any person who would like to copy, distribute, or modify the Package. "Package" means the collection of files distributed by the Copyright Holder, and derivatives of that collection and/or of those files. A given Package may consist of either the Standard Version, or a Modified Version. "Distribute" means providing a copy of the Package or making it accessible to anyone else, or in the case of a company or organization, to others outside of your company or organization. "Distributor Fee" means any fee that you charge for Distributing this Package or providing support for this Package to another party. It does not mean licensing fees. "Standard Version" refers to the Package if it has not been modified, or has been modified only in ways explicitly requested by the Copyright Holder. "Modified Version" means the Package, if it has been changed, and such changes were not explicitly requested by the Copyright Holder. "Original License" means this Artistic License as Distributed with the Standard Version of the Package, in its current version or as it may be modified by The Perl Foundation in the future. "Source" form means the source code, documentation source, and configuration files for the Package. "Compiled" form means the compiled bytecode, object code, binary, or any other form resulting from mechanical transformation or translation of the Source form. Permission for Use and Modification Without Distribution (1) You are permitted to use the Standard Version and create and use Modified Versions for any purpose without restriction, provided that you do not Distribute the Modified Version. Permissions for Redistribution of the Standard Version (2) You may Distribute verbatim copies of the Source form of the Standard Version of this Package in any medium without restriction, either gratis or for a Distributor Fee, provided that you duplicate all of the original copyright notices and associated disclaimers. At your discretion, such verbatim copies may or may not include a Compiled form of the Package. (3) You may apply any bug fixes, portability changes, and other modifications made available from the Copyright Holder. The resulting Package will still be considered the Standard Version, and as such will be subject to the Original License. Distribution of Modified Versions of the Package as Source (4) You may Distribute your Modified Version as Source (either gratis or for a Distributor Fee, and with or without a Compiled form of the Modified Version) provided that you clearly document how it differs from the Standard Version, including, but not limited to, documenting any non-standard features, executables, or modules, and provided that you do at least ONE of the following: (a) make the Modified Version available to the Copyright Holder of the Standard Version, under the Original License, so that the Copyright Holder may include your modifications in the Standard Version. (b) ensure that installation of your Modified Version does not prevent the user installing or running the Standard Version. In addition, the Modified Version must bear a name that is different from the name of the Standard Version. (c) allow anyone who receives a copy of the Modified Version to make the Source form of the Modified Version available to others under (i) the Original License or (ii) a license that permits the licensee to freely copy, modify and redistribute the Modified Version using the same licensing terms that apply to the copy that the licensee received, and requires that the Source form of the Modified Version, and of any works derived from it, be made freely available in that license fees are prohibited but Distributor Fees are allowed. Distribution of Compiled Forms of the Standard Version or Modified Versions without the Source (5) You may Distribute Compiled forms of the Standard Version without the Source, provided that you include complete instructions on how to get the Source of the Standard Version. Such instructions must be valid at the time of your distribution. If these instructions, at any time while you are carrying out such distribution, become invalid, you must provide new instructions on demand or cease further distribution. If you provide valid instructions or cease distribution within thirty days after you become aware that the instructions are invalid, then you do not forfeit any of your rights under this license. (6) You may Distribute a Modified Version in Compiled form without the Source, provided that you comply with Section 4 with respect to the Source of the Modified Version. Aggregating or Linking the Package (7) You may aggregate the Package (either the Standard Version or Modified Version) with other packages and Distribute the resulting aggregation provided that you do not charge a licensing fee for the Package. Distributor Fees are permitted, and licensing fees for other components in the aggregation are permitted. The terms of this license apply to the use and Distribution of the Standard or Modified Versions as included in the aggregation. (8) You are permitted to link Modified and Standard Versions with other works, to embed the Package in a larger work of your own, or to build stand-alone binary or bytecode versions of applications that include the Package, and Distribute the result without restriction, provided the result does not expose a direct interface to the Package. Items That are Not Considered Part of a Modified Version (9) Works (including, but not limited to, modules and scripts) that merely extend or make use of the Package, do not, by themselves, cause the Package to be a Modified Version. In addition, such works are not considered parts of the Package itself, and are not subject to the terms of this license. General Provisions (10) Any use, modification, and distribution of the Standard or Modified Versions is governed by this Artistic License. By using, modifying or distributing the Package, you accept this license. Do not use, modify, or distribute the Package, if you do not accept this license. (11) If your Modified Version has been derived from a Modified Version made by someone other than you, you are nevertheless required to ensure that your Modified Version complies with the requirements of this license. (12) This license does not grant you the right to use any trademark, service mark, tradename, or logo of the Copyright Holder. (13) This license includes the non-exclusive, worldwide, free-of-charge patent license to make, have made, use, offer to sell, sell, import and otherwise transfer the Package with respect to any patent claims licensable by the Copyright Holder that are necessarily infringed by the Package. If you institute patent litigation (including a cross-claim or counterclaim) against any party alleging that the Package constitutes direct or contributory patent infringement, then this Artistic License to you shall terminate on the date that such litigation is filed. (14) Disclaimer of Warranty: THE PACKAGE IS PROVIDED BY THE COPYRIGHT HOLDER AND CONTRIBUTORS "AS IS' AND WITHOUT ANY EXPRESS OR IMPLIED WARRANTIES. THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, OR NON-INFRINGEMENT ARE DISCLAIMED TO THE EXTENT PERMITTED BY YOUR LOCAL LAW. UNLESS REQUIRED BY LAW, NO COPYRIGHT HOLDER OR CONTRIBUTOR WILL BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING IN ANY WAY OUT OF THE USE OF THE PACKAGE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.Authen-Radius-0.24/MANIFEST000066400000000000000000000001141223417003600152330ustar00rootroot00000000000000Changes Makefile.PL LICENSE MANIFEST Radius.pm test.pl install-radius-db.PL Authen-Radius-0.24/Makefile.PL000066400000000000000000000006741223417003600160670ustar00rootroot00000000000000use ExtUtils::MakeMaker; # See lib/ExtUtils/MakeMaker.pm for details of how to influence # the contents of the Makefile that is written. WriteMakefile( 'NAME' => 'Authen::Radius', 'VERSION_FROM' => 'Radius.pm', # finds $VERSION 'PPM_INSTALL_SCRIPT' => 'install-radius-db.PL', 'PREREQ_PM' => { 'Digest::MD5' => 2.20, 'IO' => 1.12, 'Data::Dumper' => 1, 'Data::HexDump' => 0.02 } ); Authen-Radius-0.24/README000066400000000000000000000025071223417003600147720ustar00rootroot00000000000000This is RadiusPerl version 0.16. RadiusPerl is a Perl 5 module (Radius.pm) which allows you to communicate with a Radius server from Perl. You can just authenticate usernames/passwords via Radius, or comletely imitate AAA requests and process server response. IMPORTANT: As of v0.04 the name of this module has changed to Authen::Radius, instead of just 'Radius'. Please update your scripts accordingly! See the file 'INSTALL' for installation instructions. See the file 'Changes' for modifications or new additions to the module interface. Type 'perldoc Authen::Radius' for a quick synopsis of the available methods. RadiusPerl currently is developed & tested on FreeBSD (originally on Linux). It should run on any Perl 5 supported platform though. Let me know if it doesn't work on your machine (and *why* you think it doesn't work :). I welcome any feedback, enhancements, new ideas etc. for this module. Please send them to carl@miskatonic.inbe.net or to the andrew@portaone.com (current maintainer of the module). Please note that I am not able to provide services for debugging your scripts or RADIUS servers. \RadiusPerl is (c)1997 Carl Declerck. See the Perl Artistic License 2.0 (http://www.perlfoundation.org/artistic_license_2_0) for copying and usage policy. That's it! Carl Declerck, Andrew Zhilenko Authen-Radius-0.24/Radius.pm000066400000000000000000001042611223417003600156770ustar00rootroot00000000000000############################################################################# # # # Radius Client module for Perl 5 # # # # Written by Carl Declerck , (c)1997 # # All Rights Reserved. See the Perl Artistic License 2.0 # # for copying & usage policy. # # # # Modified by Olexander Kapitanenko, Andrew Zhilenko # # and the rest of PortaOne team (c) 2002-2013 # # Current maintainer's contact: perl-radius@portaone.com # # # # See the file 'Changes' in the distribution archive. # # # ############################################################################# package Authen::Radius; use strict; use FileHandle; use IO::Socket; use IO::Select; use Digest::MD5; use Data::Dumper; use Data::HexDump; use Time::HiRes qw(time); use vars qw($VERSION @ISA @EXPORT); require Exporter; @ISA = qw(Exporter); @EXPORT = qw(ACCESS_REQUEST ACCESS_ACCEPT ACCESS_REJECT ACCESS_CHALLENGE ACCOUNTING_REQUEST ACCOUNTING_RESPONSE ACCOUNTING_STATUS DISCONNECT_REQUEST DISCONNECT_ACCEPT DISCONNECT_REJECT COA_REQUEST COA_ACCEPT COA_REJECT COA_ACK COA_NAK); $VERSION = '0.24'; my (%dict_id, %dict_name, %dict_val, %dict_vendor_id, %dict_vendor_name ); my ($request_id) = $$ & 0xff; # probably better than starting from 0 my ($radius_error, $error_comment) = ('ENONE', ''); my $debug = 0; use constant WIMAX_VENDOR => '24757'; use constant WIMAX_CONTINUATION_BIT => 0b10000000; # # we'll need to predefine these attr types so we can do simple password # verification without having to load a dictionary # $dict_id{'not defined'}{1}{'type'} = 'string'; # set 'Username' attr type to string $dict_id{'not defined'}{2}{'type'} = 'string'; # set 'Password' attr type to string $dict_id{'not defined'}{4}{'type'} = 'ipaddr'; # set 'NAS-IP-Address' attr type to string use constant ACCESS_REQUEST => 1; use constant ACCESS_ACCEPT => 2; use constant ACCESS_REJECT => 3; use constant ACCOUNTING_REQUEST => 4; use constant ACCOUNTING_RESPONSE => 5; use constant ACCOUNTING_STATUS => 6; use constant ACCESS_CHALLENGE => 11; use constant DISCONNECT_REQUEST => 40; use constant DISCONNECT_ACCEPT => 41; use constant DISCONNECT_REJECT => 42; use constant COA_REQUEST => 43; use constant COA_ACCEPT => 44; use constant COA_ACK => 44; use constant COA_REJECT => 45; use constant COA_NAK => 45; my $HMAC_MD5_BLCKSZ = 64; my $RFC3579_MSG_AUTH_ATTR_ID = 80; my $RFC3579_MSG_AUTH_ATTR_LEN = 18; my %SERVICES = ( 'radius' => 1812, 'radacct' => 1813, 'radius-acct' => 1813 ); sub new { my $class = shift; my %h = @_; my ($host, $port, $service); my $self = {}; bless $self, $class; $self->set_error; $debug = $h{'Debug'}; if (!$h{'Host'} && !$h{'NodeList'}) { return $self->set_error('ENOHOST'); } $service = $h{'Service'} ? $h{'Service'} : 'radius'; my $serv_port = getservbyname($service, 'udp'); if (!$serv_port && !exists($SERVICES{$service})) { return $self->set_error('EBADSERV'); } elsif (!$serv_port) { $serv_port = $SERVICES{$service}; } ($host, $port) = split(/:/, $h{'Host'}); if (!$port) { $port = $serv_port; } $self->{'timeout'} = $h{'TimeOut'} ? $h{'TimeOut'} : 5; $self->{'localaddr'} = $h{'LocalAddr'}; $self->{'secret'} = $h{'Secret'}; $self->{'message_auth'} = $h{'Rfc3579MessageAuth'}; print STDERR "Using Radius server $host:$port\n" if $debug; my %io_sock_args = ( Type => SOCK_DGRAM, Proto => 'udp', Timeout => $self->{'timeout'}, LocalAddr => $self->{'localaddr'}, ); if ($h{'NodeList'}) { # contains resolved node list in text representation $self->{'node_list_a'} = {}; foreach my $node_a (@{$h{'NodeList'}}) { my ($n_host, $n_port) = split(/:/, $node_a); if (!$n_port) { $n_port = $serv_port; } my @hostinfo = gethostbyname($n_host); if (!scalar(@hostinfo)) { print STDERR "Can't resolve node hostname '$n_host': $! - skipping it!\n" if $debug; next; } print STDERR "Adding ".inet_ntoa($hostinfo[4]).':'.$n_port." to node list.\n" if $debug; # store split address to avoid additional parsing later $self->{'node_list_a'}->{inet_ntoa($hostinfo[4]).':'.$n_port} = [inet_ntoa($hostinfo[4]), $n_port]; } if (!scalar(keys %{$self->{'node_list_a'}})) { return $self->set_error('ESOCKETFAIL', 'Empty node list.'); } if ($host) { my @hostinfo = gethostbyname($host); if (scalar(@hostinfo)) { my $act_addr_a = inet_ntoa($hostinfo[4]).':'.$port; if (exists($self->{'node_list_a'}->{$act_addr_a})) { $self->{'node_addr_a'} = $act_addr_a; } else { print STDERR "'$host' doesn't exist in node list - ignoring it!\n" if $debug; } } else { print STDERR "Can't resolve active node hostname '$host': $! - ignoring it!\n" if $debug; } } } else { my @hostinfo = gethostbyname($host); if (!scalar(@hostinfo)) { return $self->set_error('ESOCKETFAIL', "Can't resolve hostname '".$host."'."); } $self->{'node_addr_a'} = inet_ntoa($hostinfo[4]).':'.$port; } if ($host) { $io_sock_args{'PeerAddr'} = $host; $io_sock_args{'PeerPort'} = $port; $self->{'sock'} = IO::Socket::INET->new(%io_sock_args) or return $self->set_error('ESOCKETFAIL', $@); } $self; } sub send_packet { my ($self, $type, $retransmit) = @_; my ($data); my $length = 20 + length($self->{'attributes'}); if (!$retransmit) { $request_id = ($request_id + 1) & 0xff; } $self->set_error; if ($type == ACCOUNTING_REQUEST || $type == DISCONNECT_REQUEST || $type == COA_REQUEST) { $self->{'authenticator'} = "\0" x 16; $self->{'authenticator'} = $self->calc_authenticator($type, $request_id, $length) } else { $self->gen_authenticator unless defined $self->{'authenticator'}; } if ($self->{'message_auth'} && ($type == ACCESS_REQUEST)) { $length += $RFC3579_MSG_AUTH_ATTR_LEN; $data = pack('C C n', $type, $request_id, $length) . $self->{'authenticator'} . $self->{'attributes'} . pack('C C', $RFC3579_MSG_AUTH_ATTR_ID, $RFC3579_MSG_AUTH_ATTR_LEN) . "\0" x ($RFC3579_MSG_AUTH_ATTR_LEN - 2); my $msg_authenticator = $self->hmac_md5($data, $self->{'secret'}); $data = pack('C C n', $type, $request_id, $length) . $self->{'authenticator'} . $self->{'attributes'} . pack('C C', $RFC3579_MSG_AUTH_ATTR_ID, $RFC3579_MSG_AUTH_ATTR_LEN) . $msg_authenticator; if ($debug) { print STDERR "RFC3579 Message-Authenticator: "._ascii_to_hex($msg_authenticator). " was added to request.\n"; } } else { $data = pack('C C n', $type, $request_id, $length) . $self->{'authenticator'} . $self->{'attributes'}; } if ($debug) { print STDERR "Sending request:\n"; print STDERR HexDump($data); } my $res; if (!defined($self->{'node_list_a'})) { if ($debug) { print STDERR 'Sending request to: '.$self->{'node_addr_a'}."\n"; } $res = $self->{'sock'}->send($data) || $self->set_error('ESENDFAIL', $!); } else { if (!$retransmit && defined($self->{'sock'})) { if ($debug) { print STDERR 'Sending request to active node: '.$self->{'node_addr_a'}."\n"; } $res = $self->{'sock'}->send($data) || $self->set_error('ESENDFAIL', $!); } else { if ($debug) { print STDERR "ReSending request to all cluster nodes.\n"; } $self->{'sock'} = undef; $self->{'sock_list'} = []; my %io_sock_args = ( Type => SOCK_DGRAM, Proto => 'udp', Timeout => $self->{'timeout'}, LocalAddr => $self->{'localaddr'}, ); foreach my $node (keys %{$self->{'node_list_a'}}) { if ($debug) { print STDERR 'Sending request to: '.$node."\n"; } $io_sock_args{'PeerAddr'} = $self->{'node_list_a'}->{$node}->[0]; $io_sock_args{'PeerPort'} = $self->{'node_list_a'}->{$node}->[1]; my $new_sock = IO::Socket::INET->new(%io_sock_args) or return $self->set_error('ESOCKETFAIL', $@); $res = $new_sock->send($data) || $self->set_error('ESENDFAIL', $!); if ($res) { push @{$self->{'sock_list'}}, $new_sock; } $res ||= $res; } } } return $res; } sub recv_packet { my ($self, $detect_bad_id) = @_; my ($data, $type, $id, $length, $auth, $sh, $resp_attributes); $self->set_error; if (defined($self->{'sock_list'}) && scalar(@{$self->{'sock_list'}})) { $sh = IO::Select->new(@{$self->{'sock_list'}}) or return $self->set_error('ESELECTFAIL'); } elsif (defined($self->{'sock'})) { $sh = IO::Select->new($self->{'sock'}) or return $self->set_error('ESELECTFAIL'); } else { return $self->set_error('ESELECTFAIL'); } my $timeout = $self->{'timeout'}; my @ready; my $from_addr_n; my ($start_time, $end_time); while ($timeout > 0){ $start_time = time(); @ready = $sh->can_read($timeout) or return $self->set_error('ETIMEOUT', $!); $end_time = time(); $timeout -= $end_time - $start_time; $from_addr_n = $ready[0]->recv($data, 65536); if (defined($from_addr_n)) { last; } if (!defined($from_addr_n) && !defined($self->{'sock_list'})) { return $self->set_error('ERECVFAIL', $!); }elsif ($debug) { print STDERR "Received error/event from one peer:".$!."\n"; } } if ($debug) { print STDERR "Received response:\n"; print STDERR HexDump($data); } if (defined($self->{'sock_list'})) { # the sending attempt was 'broadcast' to all cluster nodes # switching to single active node $self->{'sock'} = $ready[0]; $self->{'sock_list'} = undef; my ($node_port, $node_iaddr) = sockaddr_in($from_addr_n); $self->{'node_addr_a'} = inet_ntoa($node_iaddr).':'.$node_port; if ($debug) { print STDERR "Registering new active peeer:".$self->{'node_addr_a'}."\n"; } } ($type, $id, $length, $auth, $resp_attributes ) = unpack('C C n a16 a*', $data); if ($detect_bad_id && defined($id) && ($id != $request_id) ) { return $self->set_error('EBADID'); } if ($auth ne $self->calc_authenticator($type, $id, $length, $resp_attributes)) { return $self->set_error('EBADAUTH'); } # rewrite attributes only in case of a valid response $self->{'attributes'} = $resp_attributes; my $rfc3579_msg_auth; foreach my $a ($self->get_attributes()) { if ($a->{Code} == $RFC3579_MSG_AUTH_ATTR_ID) { $rfc3579_msg_auth = $a->{Value}; last; } } if (defined($rfc3579_msg_auth)) { $self->replace_attr_value($RFC3579_MSG_AUTH_ATTR_ID, "\0" x ($RFC3579_MSG_AUTH_ATTR_LEN - 2)); my $hmac_data = pack('C C n', $type, $id, $length) . $self->{'authenticator'} . $self->{'attributes'}; my $calc_hmac = $self->hmac_md5($hmac_data, $self->{'secret'}); if ($calc_hmac ne $rfc3579_msg_auth) { if ($debug) { print STDERR "Received response with INVALID RFC3579 Message-Authenticator.\n"; print STDERR 'Received '._ascii_to_hex($rfc3579_msg_auth)."\n"; print STDERR 'Calculated '._ascii_to_hex($calc_hmac)."\n"; } return $self->set_error('EBADAUTH'); } elsif ($debug) { print STDERR "Received response with VALID RFC3579 Message-Authenticator.\n"; } } return $type; } sub check_pwd { my ($self, $name, $pwd, $nas) = @_; $nas = eval { $self->{'sock'}->sockhost() } unless defined($nas); $self->clear_attributes; $self->add_attributes ( { Name => 1, Value => $name, Type => 'string' }, { Name => 2, Value => $pwd, Type => 'string' }, { Name => 4, Value => $nas || '127.0.0.1', Type => 'ipaddr' } ); $self->send_packet(ACCESS_REQUEST); my $rcv = $self->recv_packet(); return (defined($rcv) and $rcv == ACCESS_ACCEPT); } sub clear_attributes { my ($self) = @_; $self->set_error; delete $self->{'attributes'}; delete $self->{'authenticator'}; 1; } sub get_attributes { my ($self) = @_; my ($vendor, $vendor_id, $name, $id, $length, $value, $type, $rawvalue, @a); my ($attrs) = $self->{'attributes'}; $self->set_error; my $vendor_specific = $dict_name{'Vendor-Specific'}{'id'}; while (length($attrs)) { ($id, $length, $attrs) = unpack('C C a*', $attrs); ($rawvalue, $attrs) = unpack('a' . ($length - 2) . ' a*', $attrs); if ( defined($vendor_specific) and $id == $vendor_specific ) { ($vendor_id, $id, $length, $rawvalue) = unpack('N C C a*', $rawvalue); $vendor = defined $dict_vendor_id{$vendor_id}{'name'} ? $dict_vendor_id{$vendor_id}{'name'} : $vendor_id; } else { $vendor = 'not defined'; } $name = defined $dict_id{$vendor}{$id}{'name'} ? $dict_id{$vendor}{$id}{'name'} : $id; $type = $dict_id{$vendor}{$id}{'type'} || ''; $value = undef; if ($type eq "string") { if ($id == 2 && $vendor eq 'not defined' ) { $value = ''; } else { $value = $rawvalue; } } elsif ($type eq "integer") { $value = unpack('N', $rawvalue); } elsif ($type eq "ipaddr") { $value = inet_ntoa($rawvalue); } elsif ($type eq "avpair") { $value = $rawvalue; $value =~ s/^.*=//; } elsif ($type eq 'sublist') { # never got a chance to test it, since it seems that Digest attributes only come from clients my ($subid, $subvalue, $sublength, @values); $value = ''; my $subrawvalue = $rawvalue; while (length($subrawvalue)) { ($subid, $sublength, $subrawvalue) = unpack('C C a*', $subrawvalue); ($subvalue, $subrawvalue) = unpack('a' . ($sublength - 2) . ' a*', $subrawvalue); my $subname = $dict_val{$name}->{$subid}->{'name'}; push @values, "$subname = \"$subvalue\""; } $value = join("; ", @values); } elsif ($type ne '') { print STDERR "Unsupported type '$type' for attribute with id:'$id'.\n" if $debug; } else { print STDERR "Unknown type for attribute with id:'$id'. Check Radius dictionaries!\n" if $debug; } if (defined $value) { $value = $dict_val{$name}{$value}{'name'} if defined $dict_val{$name}{$value}; } push (@a, { 'Name' => $name, 'Code' => $id, 'Value' => $value, 'RawValue' => $rawvalue, 'Vendor' => $vendor } ); } return @a; } # it used to be # $vendor = defined $a->{'Vendor'} ? # ( defined $dict_vendor_name{ $a->{'Vendor'} }{'id'} ? $dict_vendor_name{ $a->{'Vendor'} }{'id'} : int($a->{'Vendor'}) ) # : ( defined $dict_name{$a->{'Name'}}{'vendor'} # ? $dict_vendor_name{ $dict_name{$a->{'Name'}}{'vendor'} }{'id'} : 'not defined' ); sub vendorID ($) { my ($attr) = @_; if (defined $attr->{'Vendor'}) { return defined $dict_vendor_name{ $attr->{'Vendor'} }{'id'} ? $dict_vendor_name{ $attr->{'Vendor'} }{'id'} : int($attr->{'Vendor'}); } else { # look up vendor by attribute name my $vendor_name = $dict_name{$attr->{'Name'}}{'vendor'}; my $vendor_id = defined ($dict_vendor_name{$vendor_name}{'id'}) ? $dict_vendor_name{$vendor_name}{'id'} : 'not defined'; return $vendor_id; } } sub encodeValue ($$$$$) { my ($self, $vendor, $id, $type, $name, $value) = @_; my ($new_value, $enc_value); if (defined $dict_val{$name}{$value}) { $enc_value = $dict_val{$name}{$value}{'id'}; } else { $enc_value = $value; } $type = '' unless defined $type; if ($type eq "string") { $new_value = $value; if ($id == 2 && $vendor eq 'not defined' ) { $self->gen_authenticator(); $new_value = $self->encrypt_pwd($value); } $new_value = substr($new_value, 0, 253); # if ($vendor eq WIMAX_VENDOR) { # add the "continuation" byte # but no support for attribute splitting for now # $value = pack('C', 0). substr($value, 0, 246); # } } elsif ($type eq "integer") { $new_value = pack('N', int($enc_value)); } elsif ($type eq "byte") { $new_value = pack('C', int($enc_value)); } elsif ($type eq "short") { $new_value = pack('S', int($enc_value)); } elsif ($type eq "signed") { # there should be something else, since it is signed $new_value = pack('N', $value); } elsif ($type eq "ipaddr") { $new_value = inet_aton($value); } elsif ($type eq "avpair") { $new_value = $name.'='.$value; $new_value = substr($new_value, 0, 253); # WiMAX } elsif ($type eq "combo-ip") { if ($value =~ m/^\d+\.\d+\.\d+.\d+/) { # IPv4 address $new_value = inet_aton($value); } else { # currently unsupported, use IPv4 $new_value = inet_aton($value); } } elsif ($type eq "octets") { $new_value = ''; foreach my $c (split('', $value)) { $new_value .= pack('C',ord($c)); } } elsif ($type eq 'tlv' and ref($value)) { $new_value = ''; foreach my $sub_attr (sort { $a->{'TLV_ID'} <=> $b->{'TLV_ID'} } @{$value}) { my $sub_attr_name = $sub_attr->{'Name'}; my $sub_attr_type = defined $sub_attr->{'Type'} ? $sub_attr->{'Type'} : $dict_name{$sub_attr_name}{'type'}; my $sub_attr_id = defined $dict_name{$sub_attr_name}{'id'} ? $dict_name{$sub_attr_name}{'id'} : int($sub_attr_name); my $sub_value = $self->encodeValue($vendor, $sub_attr_id, $sub_attr_type, $sub_attr->{'Name'}, $sub_attr->{'Value'}); if (defined($sub_value)) { $new_value .= pack('C C', $sub_attr_id, length($sub_value)+2).$sub_value; } } } elsif ($type eq 'sublist') { # Digest attributes look like: # Digest-Attributes = 'Method = "REGISTER"' my $digest = $value; my @pairs; if (ref($digest)) { next unless ref($digest) eq 'HASH'; foreach my $key (keys %{$digest}) { push @pairs, [ $key => $digest->{$key} ]; } } else { # string foreach my $z (split(/\"\; /, $digest)) { my ($subname, $subvalue) = split(/\s+=\s+\"/, $z, 2); $subvalue =~ s/\"$//; push @pairs, [ $subname => $subvalue ]; } } $new_value = ''; foreach my $da (@pairs) { my ($subname, $subvalue) = @{$da}; my $subid = $dict_val{$id}->{$subname}->{'id'}; next unless defined($subid); $new_value .= pack('C C', $subid, length($subvalue) + 2) . $subvalue; } } else { return; } return $new_value; } sub add_attributes { my ($self, @attr) = @_; my ($a, $vendor, $id, $type, $value); my @a = (); $self->set_error; # scan for WiMAX TLV my %request_tlvs; for my $attr (@attr) { my $attr_name = $attr->{'Name'}; $id = defined $dict_name{$attr_name}{'id'} ? $dict_name{$attr_name}{'id'} : int($attr_name); $vendor = vendorID($attr); if (exists($dict_name{$attr_name}{'tlv'})) { # this is a TLV attribute my $tlv = $dict_name{$attr_name}{'tlv'}; # insert TLV type so we can order them by type inside of the container attribute $attr->{'TLV_ID'} = $id; unless (exists($request_tlvs{$tlv})) { # this is a first attribute of this TLV in the request my $new_attr = { Name => $tlv, Type => 'tlv', Value => [ $attr ] }; $request_tlvs{$tlv} = $new_attr; push @a, $new_attr; } else { my $tlv_list = $request_tlvs{$tlv}->{'Value'}; next unless ref($tlv_list); # should not happen push @{$tlv_list}, $attr; } } else { # normal attribute, just copy over push @a, $attr; } } for $a (@a) { $id = defined $dict_name{$a->{'Name'}}{'id'} ? $dict_name{$a->{'Name'}}{'id'} : int($a->{'Name'}); $type = defined $a->{'Type'} ? $a->{'Type'} : $dict_name{$a->{'Name'}}{'type'}; $vendor = vendorID($a); if ($vendor eq WIMAX_VENDOR) { # WiMAX uses non-standard VSAs - include the continuation byte } unless (defined($value = $self->encodeValue($vendor, $id, $type, $a->{'Name'}, $a->{'Value'}))) { print STDERR "Unable to encode attribute $a->{Name} ($id, $type, $vendor) with value '$a->{Value}'\n" if $debug; next; } print STDERR "Adding attribute $a->{Name} ($id, $type, $vendor) with value '$a->{Value}'\n" if $debug; if ( $vendor eq 'not defined' ) { $self->{'attributes'} .= pack('C C', $id, length($value) + 2) . $value; } else { # VSA # pack vendor-ID + vendor-type + vendor-length if ($vendor eq WIMAX_VENDOR) { # add continuation byte $value = pack('N C C C', $vendor, $id, length($value) + 3, 0) . $value; } else { $value = pack('N C C', $vendor, $id, length($value) + 2) . $value; } # add the normal RADIUS attribute header: type + length $self->{'attributes'} .= pack('C C', $dict_name{'Vendor-Specific'}{'id'}, length($value) + 2) . $value; } } return 1; } sub replace_attr_value { my ($self, $id, $value) = @_; my $length = length($self->{'attributes'}); my $done = 0; my $cur_pos = 0; while ($cur_pos < $length) { my ($cur_id, $cur_len) = unpack('C C', substr($self->{'attributes'}, $cur_pos, 2)); if ($cur_id == $id) { if (length($value) != ($cur_len - 2)) { if ($debug) { print STDERR "Trying to replace attribute ($id) with value which has different length\n"; } last; } substr($self->{'attributes'}, $cur_pos + 2, $cur_len - 2, $value); $done = 1; last; } $cur_pos += $cur_len; } return $done; } sub calc_authenticator { my ($self, $type, $id, $length, $attributes) = @_; my ($hdr, $ct); $self->set_error; $hdr = pack('C C n', $type, $id, $length); $ct = Digest::MD5->new; $ct->add ($hdr, $self->{'authenticator'}, (defined($attributes)) ? $attributes : $self->{'attributes'}, $self->{'secret'}); $ct->digest(); } sub gen_authenticator { my ($self) = @_; my ($ct); $self->set_error; sub rint { int rand(2 ** 32 - 1) }; $self->{'authenticator'} = pack "L4", rint(), rint(), rint(), rint(); } sub encrypt_pwd { my ($self, $pwd) = @_; my ($i, $ct, @pwdp, @encrypted); $self->set_error; $ct = Digest::MD5->new(); my $non_16 = length($pwd) % 16; $pwd .= "\0" x (16 - $non_16) if $non_16; @pwdp = unpack('a16' x (length($pwd) / 16), $pwd); for $i (0..$#pwdp) { my $authent = $i == 0 ? $self->{'authenticator'} : $encrypted[$i - 1]; $ct->add($self->{'secret'}, $authent); $encrypted[$i] = $pwdp[$i] ^ $ct->digest(); } return join('',@encrypted); } use vars qw(%included_files); sub load_dictionary { shift; my ($file) = @_; my ($fh, $cmd, $name, $id, $type, $vendor, $dict_def_vendor, $tlv); $dict_def_vendor = 'not defined'; undef($tlv); unless ($file) { $file = "/etc/raddb/dictionary"; } # prevent infinite loop in the include files return undef if exists($included_files{$file}); $included_files{$file} = 1; $fh = new FileHandle($file) or die "Can't open dictionary '$file' ($!)\n"; print STDERR "Loading dictionary $file\n" if $debug; while (<$fh>) { chomp; ($cmd, $name, $id, $type, $vendor) = split(/\s+/); next if (!$cmd || $cmd =~ /^#/); $cmd = lc($cmd); if ($cmd eq 'attribute') { if ( !$vendor ) { if ( defined($dict_def_vendor)) { # Vendor was previously defined via BEGIN-VENDOR $vendor = $dict_def_vendor; } else { $vendor = 'not defined'; } } $dict_name{$name}{'id'} = $id; $dict_name{$name}{'vendor'} = $vendor if $vendor; $dict_name{$name}{'type'} = $type; if (defined($tlv)) { # inside of a TLV definition $dict_id{$vendor}{$id}{'tlv'} = $tlv; $dict_name{$name}{'tlv'} = $tlv; # IDs of TLVs are only unique within the master attribute, not in the dictionary # so we have to use a composite key $dict_id{$vendor}{$tlv.'/'.$id}{'name'} = $name; $dict_id{$vendor}{$tlv.'/'.$id}{'type'} = $type; } else { $dict_id{$vendor}{$id}{'name'} = $name; $dict_id{$vendor}{$id}{'type'} = $type; } } elsif ($cmd eq 'value') { next unless exists($dict_name{$name}); $dict_val{$name}->{$type}->{'name'} = $id; $dict_val{$name}->{$id}->{'id'} = $type; } elsif ($cmd eq 'vendor') { $dict_vendor_name{$name}{'id'} = $id; $dict_vendor_id{$id}{'name'} = $name; } elsif ($cmd eq 'begin-vendor') { $dict_def_vendor = $name; } elsif ($cmd eq 'end-vendor') { $dict_def_vendor = 'not defined'; } elsif ($cmd eq 'begin-tlv') { # FreeRADIUS dictionary syntax for defining WiMAX TLV if (exists($dict_name{$name}) and $dict_name{$name}{'type'} eq 'tlv') { # This name was previously defined as an attribute with TLV type $tlv = $name; } } elsif ($cmd eq 'end-tlv') { undef($tlv); } elsif ($cmd eq '$include') { my @path = split("/", $file); pop @path; # remove the filename at the end my $path = ( $name =~ /^\// ) ? $name : join("/", @path, $name); load_dictionary('', $path); } } $fh->close; # print Dumper(\%dict_name); 1; } sub set_timeout { my ($self, $timeout) = @_; $self->{'timeout'} = $timeout; $self->{'sock'}->timeout($timeout) if (defined $self->{'sock'}); if (defined $self->{'sock_list'}) { foreach my $sock (@{$self->{'sock_list'}}) { $sock->timeout($timeout); } } 1; } sub set_error { my ($self, $error, $comment) = @_; $@ = undef; $radius_error = $self->{'error'} = (defined($error) ? $error : 'ENONE'); $error_comment = $self->{'error_comment'} = (defined($comment) ? $comment : ''); undef; } sub get_error { my ($self) = @_; if (!ref($self)) { return $radius_error; } else { return $self->{'error'}; } } sub strerror { my ($self, $error) = @_; my %errors = ( 'ENONE', 'none', 'ESELECTFAIL', 'select creation failed', 'ETIMEOUT', 'timed out waiting for packet', 'ESOCKETFAIL', 'socket creation failed', 'ENOHOST', 'no host specified', 'EBADAUTH', 'bad response authenticator', 'ESENDFAIL', 'send failed', 'ERECVFAIL', 'receive failed', 'EBADSERV', 'unrecognized service', 'EBADID', 'response to unknown request' ); if (!ref($self)) { return $errors{$radius_error}; } return $errors{ (defined($error) ? $error : $self->{'error'} ) }; } sub error_comment { my ($self) = @_; if (!ref($self)) { return $error_comment; } else { return $self->{'error_comment'}; } } sub get_active_node { my ($self) = @_; return $self->{'node_addr_a'}; } sub hmac_md5 { my ($self, $data, $key) = @_; my $ct = Digest::MD5->new; if (length($key) > $HMAC_MD5_BLCKSZ) { $ct->add($key); $key = $ct->digest(); } my $ipad = $key ^ ("\x36" x $HMAC_MD5_BLCKSZ); my $opad = $key ^ ("\x5c" x $HMAC_MD5_BLCKSZ); $ct->reset(); $ct->add($ipad, $data); my $digest1 = $ct->digest(); $ct->reset(); $ct->add($opad, $digest1); return $ct->digest(); } sub _ascii_to_hex { my ($string) = @_; my $hex_res = ''; foreach my $cur_chr (unpack('C*',$string)) { $hex_res .= sprintf("%02X ", $cur_chr); } return $hex_res; } 1; __END__ =head1 NAME Authen::Radius - provide simple Radius client facilities =head1 SYNOPSIS use Authen::Radius; $r = new Authen::Radius(Host => 'myserver', Secret => 'mysecret'); print "auth result=", $r->check_pwd('myname', 'mypwd'), "\n"; $r = new Authen::Radius(Host => 'myserver', Secret => 'mysecret'); Authen::Radius->load_dictionary(); $r->add_attributes ( { Name => 'User-Name', Value => 'myname' }, { Name => 'Password', Value => 'mypwd' }, # RFC 2865 http://www.ietf.org/rfc/rfc2865.txt calls this attribute # User-Password. Check your local RADIUS dictionary to find # out which name is used on your system # { Name => 'User-Password', Value => 'mypwd' }, { Name => 'h323-return-code', Value => '0' }, # Cisco AV pair { Name => 'Digest-Attributes', Value => { Method => 'REGISTER' } } ); $r->send_packet(ACCESS_REQUEST) and $type = $r->recv_packet(); print "server response type = $type\n"; for $a ($r->get_attributes()) { print "attr: name=$a->{'Name'} value=$a->{'Value'}\n"; } =head1 DESCRIPTION The C module provides a simple class that allows you to send/receive Radius requests/responses to/from a Radius server. =head1 CONSTRUCTOR =over 4 =item new ( Host => HOST, Secret => SECRET [, TimeOut => TIMEOUT] [,Service => SERVICE] [, Debug => Bool] [, LocalAddr => hostname[:port]] [,Rfc3579MessageAuth => Bool] [,NodeList= NodeListArrayRef]) Creates & returns a blessed reference to a Radius object, or undef on failure. Error status may be retrieved with C (errorcode) or C (verbose error string). The default C is C, the alternative is C. If you do not specify port in the C as a C, then port specified in your F will be used. If there is nothing there, and you did not specify port either then default is 1645 for C and 1813 for C. Optional parameter C with a Perl "true" value turns on debugging (verbose mode). Optional parameter C may contain local IP/host bind address from which RADIUS packets are sent. Optional parameter C with a Perl "true" value turns on generating of Message-Authenticator for Access-Request (RFC3579, section 3.2). Optional parameter C may contain a Perl reference to an array, containing a list of Radius Cluster nodes. Each nodes in the list can be specified using a hostname or IP (with an optional port number), i.e. 'radius1.mytel.com' or 'radius.myhost.com:1812'. Radius Cluster contains a set of Radius servers, at any given moment of time only one server is considered to be "active" (so requests are send to this server). How the active node is determined? Initially in addition to the C parameter you may supply the C parameter and specify which server should become the first active node. If this parameter is absent, or the current active node does not reply anymore, the process of "discovery" will be performed: a request will be sent to all nodes and the consecutive communication continues with the node, which will be the first to reply. =back =head1 METHODS =over 4 =item load_dictionary ( [ DICTIONARY ] ) Loads the definitions in the specified Radius dictionary file (standard Livingston radiusd format). Tries to load 'C' when no argument is specified, or dies. NOTE: you need to load valid dictionary if you plan to send RADIUS requests with attributes other than just C/C. =item check_pwd ( USERNAME, PASSWORD [,NASIPADDRESS] ) Checks with the RADIUS server if the specified C is valid for user C. Unless C is specified, the script will attempt to determine it's local IP address (IP address for the RADIUS socket) and this value will be placed in the NAS-IP-Address attribute. This method is actually a wrapper for subsequent calls to C, C, C and C. It returns 1 if the C is correct, or undef otherwise. =item add_attributes ( { Name => NAME, Value => VALUE [, Type => TYPE] [, Vendor => VENDOR] }, ... ) Adds any number of Radius attributes to the current Radius object. Attributes are specified as a list of anon hashes. They may be Cd with their dictionary name (provided a dictionary has been loaded first), or with their raw Radius attribute-type values. The C pair should be specified when adding attributes that are not in the dictionary (or when no dictionary was loaded). Values for C can be 'C', 'C', 'C' or 'C'. =item get_attributes Returns a list of references to anon hashes with the following key/value pairs : { Name => NAME, Code => RAWTYPE, Value => VALUE, RawValue => RAWVALUE, Vendor => VENDOR }. Each hash represents an attribute in the current object. The C and C pairs will contain values as translated by the dictionary (if one was loaded). The C and C pairs always contain the raw attribute type & value as received from the server. If some attribute doesn't exist in dictionary or type of attribute not specified then corresponding C undefined and C set to attribute ID (C value). =item clear_attributes Clears all attributes for the current object. =item send_packet ( REQUEST_TYPE, RETRANSMIT ) Packs up a Radius packet based on the current secret & attributes and sends it to the server with a Request type of C. Exported C methods are 'C', 'C' , 'C', 'C', 'C', 'C' and 'C'. Returns the number of bytes sent, or undef on failure. If the RETRANSMIT parameter is provided and contains a non-zero value, then it is considered that we are re-sending the request, which was already sent previously. In this case the previous value of packet identifier is used. =item recv_packet ( DETECT_BAD_ID ) Receives a Radius reply packet. Returns the Radius Reply type (see possible values for C in method C) or undef on failure. Note that failure may be due to a failed recv() or a bad Radius response authenticator. Use C to find out. If the DETECT_BAD_ID parameter is supplied and contains a non-zero value, then calculation of the packet identifier is performed before authenticator check and EBADID error returned in case when packet identifier from the response doesn't match to the request. If the DETECT_BAD_ID is not provided or contains zero value then EBADAUTH returned in such case. =item set_timeout ( TIMEOUT ) Sets socket I/O activity timeout. C should be specified in floating seconds since the epoch. =item get_error Returns the last C for the current object. Errorcodes are one-word strings always beginning with an 'C'. =item strerror ( [ ERRORCODE ] ) Returns a verbose error string for the last error for the current object, or for the specified C. =item error_comment Returns the last error explanation for the current object. Error explanation is generated by system call. =item get_active_node Returns currently active radius node in standard numbers-and-dots notation with port delimited by colon. =back =head1 AUTHOR Carl Declerck - original design Alexander Kapitanenko and Andrew Zhilenko - later modifications. PortaOne Development Team is the current module's maintainer at CPAN. =cut Authen-Radius-0.24/install-radius-db.PL000077500000000000000000000025661223417003600176750ustar00rootroot00000000000000#!/usr/bin/perl -w # $Id: install-radius-db.PL,v 1.2 2004/12/18 04:51:17 andrew Exp $ my $source_dir = 'raddb'; my $raddb_dir = '/etc/raddb'; unless (-w $raddb_dir) { # Cannot write to the raddb directory unless (-x $raddb_dir) { # Perhaps it just does not exists, so it can be created? my @path = split('/', $raddb_dir); pop(@path); my $up = join('/', @path); unless (-w $up and mkdir($raddb_dir) ) { print STDERR "$raddb_dir directory does not exists and cannot be created\n"; print STDERR "Default RADIUS dictionaries are not installed.\n"; exit(0); } else { print "Created $raddb_dir\n"; } } else { print STDERR "Cannot copy the dictionary files in $raddb_dir\n"; print STDERR "Default RADIUS dictionaries are not installed.\n"; exit(0); } } print "Installing the RADIUS dictionaries in $raddb_dir\n"; opendir(D, $source_dir); while ($_ = readdir(D)) { next if m/^\./; my $dest = join('/', (split('/', $raddb_dir), $_)); print "Copying $_ to $dest "; my $res = copyFile($source_dir.'/'.$_, $dest); print $res ? ($res > 0 ? "- done." : "- ignored.") : "- error!"; print "\n"; } closedir(D); exit(0); sub copyFile { my ($f1, $f2) = @_; unless (-f $f1) { return -1; } if (-e $f2) { return -1; } open(F1, $f1) or return; unless (open(F2,">$f2")) { close(F1); return; } while () { print F2 $_; } close(F1); close(F2); return 1; } Authen-Radius-0.24/raddb/000077500000000000000000000000001223417003600151625ustar00rootroot00000000000000Authen-Radius-0.24/raddb/dictionary000066400000000000000000000210571223417003600172570ustar00rootroot00000000000000# # Updated 07-Nov-1998 to RFC 2138 and RFC 2139 # # This file contains dictionary translations for parsing # requests and generating responses. All transactions are # composed of Attribute/Value Pairs. The value of each attribute # is specified as one of 4 data types. Valid data types are: # # string - 0-253 octets # ipaddr - 4 octets in network byte order # integer - 32 bit value in big endian order (high byte first) # date - 32 bit value in big endian order - seconds since # 00:00:00 GMT, Jan. 1, 1970 # # Enumerated values are stored in the user file with dictionary # VALUE translations for easy administration. # # Example: # # ATTRIBUTE VALUE # --------------- ----- # Framed-Protocol = PPP # 7 = 1 (integer encoding) # # # Include compatibility dictionary for older users file. Move this # directive to the end of the file if you want to see the old names # in the logfiles too. # $INCLUDE dictionary.compat $INCLUDE dictionary.livingston $INCLUDE dictionary.tunnel $INCLUDE dictionary.usr $INCLUDE dictionary.ascend $INCLUDE dictionary.xtradius $INCLUDE dictionary.quintum $INCLUDE dictionary.cisco $INCLUDE dictionary.rfc2869 # # Following are the proper new names. Use these. # ATTRIBUTE User-Name 1 string ATTRIBUTE Password 2 string ATTRIBUTE CHAP-Password 3 string ATTRIBUTE NAS-IP-Address 4 ipaddr ATTRIBUTE NAS-Port-Id 5 integer ATTRIBUTE Service-Type 6 integer ATTRIBUTE Framed-Protocol 7 integer ATTRIBUTE Framed-IP-Address 8 ipaddr ATTRIBUTE Framed-IP-Netmask 9 ipaddr ATTRIBUTE Framed-Routing 10 integer ATTRIBUTE Filter-Id 11 string ATTRIBUTE Framed-MTU 12 integer ATTRIBUTE Framed-Compression 13 integer ATTRIBUTE Login-IP-Host 14 ipaddr ATTRIBUTE Login-Service 15 integer ATTRIBUTE Login-TCP-Port 16 integer ATTRIBUTE Reply-Message 18 string ATTRIBUTE Callback-Number 19 string ATTRIBUTE Callback-Id 20 string ATTRIBUTE Framed-Route 22 string ATTRIBUTE Framed-IPX-Network 23 ipaddr ATTRIBUTE State 24 string ATTRIBUTE Class 25 string ATTRIBUTE Vendor-Specific 26 string ATTRIBUTE Session-Timeout 27 integer ATTRIBUTE Idle-Timeout 28 integer ATTRIBUTE Termination-Action 29 integer ATTRIBUTE Called-Station-Id 30 string ATTRIBUTE Calling-Station-Id 31 string ATTRIBUTE NAS-Identifier 32 string ATTRIBUTE Proxy-State 33 string ATTRIBUTE Login-LAT-Service 34 string ATTRIBUTE Login-LAT-Node 35 string ATTRIBUTE Login-LAT-Group 36 string ATTRIBUTE Framed-AppleTalk-Link 37 integer ATTRIBUTE Framed-AppleTalk-Network 38 integer ATTRIBUTE Framed-AppleTalk-Zone 39 string ATTRIBUTE Acct-Status-Type 40 integer ATTRIBUTE Acct-Delay-Time 41 integer ATTRIBUTE Acct-Input-Octets 42 integer ATTRIBUTE Acct-Output-Octets 43 integer ATTRIBUTE Acct-Session-Id 44 string ATTRIBUTE Acct-Authentic 45 integer ATTRIBUTE Acct-Session-Time 46 integer ATTRIBUTE Acct-Input-Packets 47 integer ATTRIBUTE Acct-Output-Packets 48 integer ATTRIBUTE Acct-Terminate-Cause 49 integer ATTRIBUTE Acct-Multi-Session-Id 50 string ATTRIBUTE Acct-Link-Count 51 integer ATTRIBUTE Event-Timestamp 55 integer ATTRIBUTE CHAP-Challenge 60 string ATTRIBUTE NAS-Port-Type 61 integer ATTRIBUTE Port-Limit 62 integer ATTRIBUTE Login-LAT-Port 63 integer ATTRIBUTE Connect-Info 77 string ATTRIBUTE Digest-Response 206 string ATTRIBUTE Digest-Attributes 207 sublist # # Experimental Non Protocol Attributes used by Cistron-Radiusd # ATTRIBUTE Old-Huntgroup-Name 221 string # These attributes CAN go in the reply item list. ATTRIBUTE Fall-Through 500 integer ATTRIBUTE Add-Port-To-IP-Address 501 integer ATTRIBUTE Exec-Program 502 string ATTRIBUTE Exec-Program-Wait 503 string # These attributes CANNOT go in the reply item list. ATTRIBUTE User-Category 1029 string ATTRIBUTE Group-Name 1030 string ATTRIBUTE Huntgroup-Name 1031 string ATTRIBUTE Simultaneous-Use 1034 integer ATTRIBUTE Strip-User-Name 1035 integer ATTRIBUTE Old-Fall-Through 1036 integer ATTRIBUTE Old-Add-Port-To-IP-Address 1037 integer ATTRIBUTE Old-Exec-Program 1038 string ATTRIBUTE Old-Exec-Program-Wait 1039 string ATTRIBUTE Hint 1040 string ATTRIBUTE Pam-Auth 1041 string ATTRIBUTE Login-Time 1042 string ATTRIBUTE Realm 1045 string # # Non-Protocol Attributes # These attributes are used internally by the server # ATTRIBUTE Expiration 21 date ATTRIBUTE Auth-Type 1000 integer ATTRIBUTE Menu 1001 string ATTRIBUTE Termination-Menu 1002 string ATTRIBUTE Prefix 1003 string ATTRIBUTE Suffix 1004 string ATTRIBUTE Group 1005 string ATTRIBUTE Crypt-Password 1006 string ATTRIBUTE Connect-Rate 1007 integer # # Integer And Sub-Attribute Translations # # Digest VALUE Digest-Attributes Realm 1 VALUE Digest-Attributes Nonce 2 VALUE Digest-Attributes Method 3 VALUE Digest-Attributes URI 4 VALUE Digest-Attributes QOP 5 VALUE Digest-Attributes Algorithm 6 VALUE Digest-Attributes Body-Digest 7 VALUE Digest-Attributes CNonce 8 VALUE Digest-Attributes Nonce-Count 8 VALUE Digest-Attributes User-Name 10 # User Types VALUE Service-Type Login-User 1 VALUE Service-Type Framed-User 2 VALUE Service-Type Callback-Login-User 3 VALUE Service-Type Callback-Framed-User 4 VALUE Service-Type Outbound-User 5 VALUE Service-Type Administrative-User 6 VALUE Service-Type NAS-Prompt-User 7 VALUE Service-Type Call-Check 10 # Framed Protocols VALUE Framed-Protocol PPP 1 VALUE Framed-Protocol SLIP 2 # Framed Routing Values VALUE Framed-Routing None 0 VALUE Framed-Routing Broadcast 1 VALUE Framed-Routing Listen 2 VALUE Framed-Routing Broadcast-Listen 3 # Framed Compression Types VALUE Framed-Compression None 0 VALUE Framed-Compression Van-Jacobson-TCP-IP 1 # Login Services VALUE Login-Service Telnet 0 VALUE Login-Service Rlogin 1 VALUE Login-Service TCP-Clear 2 VALUE Login-Service PortMaster 3 # Status Types VALUE Acct-Status-Type Start 1 VALUE Acct-Status-Type Stop 2 VALUE Acct-Status-Type Alive 3 VALUE Acct-Status-Type Accounting-On 7 VALUE Acct-Status-Type Accounting-Off 8 # Authentication Types VALUE Acct-Authentic RADIUS 1 VALUE Acct-Authentic Local 2 # Termination Options VALUE Termination-Action Default 0 VALUE Termination-Action RADIUS-Request 1 # NAS Port Types, available in 3.3.1 and later VALUE NAS-Port-Type Async 0 VALUE NAS-Port-Type Sync 1 VALUE NAS-Port-Type ISDN 2 VALUE NAS-Port-Type ISDN-V120 3 VALUE NAS-Port-Type ISDN-V110 4 # Acct Terminate Causes, available in 3.3.2 and later VALUE Acct-Terminate-Cause User-Request 1 VALUE Acct-Terminate-Cause Lost-Carrier 2 VALUE Acct-Terminate-Cause Lost-Service 3 VALUE Acct-Terminate-Cause Idle-Timeout 4 VALUE Acct-Terminate-Cause Session-Timeout 5 VALUE Acct-Terminate-Cause Admin-Reset 6 VALUE Acct-Terminate-Cause Admin-Reboot 7 VALUE Acct-Terminate-Cause Port-Error 8 VALUE Acct-Terminate-Cause NAS-Error 9 VALUE Acct-Terminate-Cause NAS-Request 10 VALUE Acct-Terminate-Cause NAS-Reboot 11 VALUE Acct-Terminate-Cause Port-Unneeded 12 VALUE Acct-Terminate-Cause Port-Preempted 13 VALUE Acct-Terminate-Cause Port-Suspended 14 VALUE Acct-Terminate-Cause Service-Unavailable 15 VALUE Acct-Terminate-Cause Callback 16 VALUE Acct-Terminate-Cause User-Error 17 VALUE Acct-Terminate-Cause Host-Request 18 #VALUE Tunnel-Type L2TP 3 #VALUE Tunnel-Medium-Type IP 1 # # Non-Protocol Integer Translations # VALUE Auth-Type Local 0 VALUE Auth-Type System 1 VALUE Auth-Type SecurID 2 VALUE Auth-Type Crypt-Local 3 VALUE Auth-Type Reject 4 VALUE Auth-Type ActivCard 4 # # Cistron extensions # VALUE Auth-Type Pam 253 VALUE Auth-Type Accept 254 # # Experimental Non-Protocol Integer Translations for Cistron-Radiusd # VALUE Fall-Through No 0 VALUE Fall-Through Yes 1 VALUE Add-Port-To-IP-Address No 0 VALUE Add-Port-To-IP-Address Yes 1 # # Configuration Values # comment out these two lines to turn account expiration off # VALUE Server-Config Password-Expiration 30 VALUE Server-Config Password-Warning 5 Authen-Radius-0.24/raddb/dictionary.ascend000066400000000000000000000303461223417003600205140ustar00rootroot00000000000000# # Ascend dictionary. # # Enable by putting the line "$INCLUDE dictionary.ascend" into # the main dictionary file. # # Version: 1.00 21-Jul-1997 Jens Glaser # 1.01 22-Jan-1998 Tomas Pospisek # # # Ascend specific extensions # Used by ASCEND MAX/Pipeline products # ATTRIBUTE Ascend-FCP-Parameter 119 string ATTRIBUTE Ascend-Modem-PortNo 120 integer ATTRIBUTE Ascend-Modem-SlotNo 121 integer ATTRIBUTE Ascend-Modem-ShelfNo 122 integer ATTRIBUTE Ascend-Call-Attempt-Limit 123 integer ATTRIBUTE Ascend-Call-Block-Duration 124 integer ATTRIBUTE Ascend-Maximum-Call-Duration 125 integer ATTRIBUTE Ascend-Temporary-Rtes 126 integer ATTRIBUTE Tunneling-Protocol 127 integer ATTRIBUTE Ascend-Shared-Profile-Enable 128 integer ATTRIBUTE Ascend-Primary-Home-Agent 129 string ATTRIBUTE Ascend-Secondary-Home-Agent 130 string ATTRIBUTE Ascend-Dialout-Allowed 131 integer ATTRIBUTE Ascend-Client-Gateway 132 ipaddr ATTRIBUTE Ascend-BACP-Enable 133 integer ATTRIBUTE Ascend-DHCP-Maximum-Leases 134 integer ATTRIBUTE Ascend-Client-Primary-DNS 135 ipaddr ATTRIBUTE Ascend-Client-Secondary-DNS 136 ipaddr ATTRIBUTE Ascend-Client-Assign-DNS 137 integer ATTRIBUTE Ascend-User-Acct-Type 138 integer ATTRIBUTE Ascend-User-Acct-Host 139 ipaddr ATTRIBUTE Ascend-User-Acct-Port 140 integer ATTRIBUTE Ascend-User-Acct-Key 141 string ATTRIBUTE Ascend-User-Acct-Base 142 integer ATTRIBUTE Ascend-User-Acct-Time 143 integer ATTRIBUTE Ascend-Assign-IP-Client 144 ipaddr ATTRIBUTE Ascend-Assign-IP-Server 145 ipaddr ATTRIBUTE Ascend-Assign-IP-Global-Pool 146 string ATTRIBUTE Ascend-DHCP-Reply 147 integer ATTRIBUTE Ascend-DHCP-Pool-Number 148 integer ATTRIBUTE Ascend-Expect-Callback 149 integer ATTRIBUTE Ascend-Event-Type 150 integer ATTRIBUTE Ascend-Session-Svr-Key 151 string ATTRIBUTE Ascend-Multicast-Rate-Limit 152 integer ATTRIBUTE Ascend-IF-Netmask 153 ipaddr ATTRIBUTE Ascend-Remote-Addr 154 ipaddr ATTRIBUTE Ascend-Multicast-Client 155 integer ATTRIBUTE Ascend-FR-Circuit-Name 156 string ATTRIBUTE Ascend-FR-LinkUp 157 integer ATTRIBUTE Ascend-FR-Nailed-Grp 158 integer ATTRIBUTE Ascend-FR-Type 159 integer ATTRIBUTE Ascend-FR-Link-Mgt 160 integer ATTRIBUTE Ascend-FR-N391 161 integer ATTRIBUTE Ascend-FR-DCE-N392 162 integer ATTRIBUTE Ascend-FR-DTE-N392 163 integer ATTRIBUTE Ascend-FR-DCE-N393 164 integer ATTRIBUTE Ascend-FR-DTE-N393 165 integer ATTRIBUTE Ascend-FR-T391 166 integer ATTRIBUTE Ascend-FR-T392 167 integer ATTRIBUTE Ascend-Bridge-Address 168 string ATTRIBUTE Ascend-TS-Idle-Limit 169 integer ATTRIBUTE Ascend-TS-Idle-Mode 170 integer ATTRIBUTE Ascend-DBA-Monitor 171 integer ATTRIBUTE Ascend-Base-Channel-Count 172 integer ATTRIBUTE Ascend-Minimum-Channels 173 integer ATTRIBUTE Ascend-IPX-Route 174 string ATTRIBUTE Ascend-FT1-Caller 175 integer ATTRIBUTE Ascend-Backup 176 string ATTRIBUTE Ascend-Call-Type 177 integer ATTRIBUTE Ascend-Group 178 string ATTRIBUTE Ascend-FR-DLCI 179 integer ATTRIBUTE Ascend-FR-Profile-Name 180 string ATTRIBUTE Ascend-Ara-PW 181 string ATTRIBUTE Ascend-IPX-Node-Addr 182 string ATTRIBUTE Ascend-Home-Agent-IP-Addr 183 ipaddr ATTRIBUTE Ascend-Home-Agent-Password 184 string ATTRIBUTE Ascend-Home-Network-Name 185 string ATTRIBUTE Ascend-Home-Agent-UDP-Port 186 integer ATTRIBUTE Ascend-Multilink-ID 187 integer ATTRIBUTE Ascend-Num-In-Multilink 188 integer ATTRIBUTE Ascend-First-Dest 189 ipaddr ATTRIBUTE Ascend-Pre-Input-Octets 190 integer ATTRIBUTE Ascend-Pre-Output-Octets 191 integer ATTRIBUTE Ascend-Pre-Input-Packets 192 integer ATTRIBUTE Ascend-Pre-Output-Packets 193 integer ATTRIBUTE Ascend-Maximum-Time 194 integer ATTRIBUTE Ascend-Disconnect-Cause 195 integer ATTRIBUTE Ascend-Connect-Progress 196 integer ATTRIBUTE Ascend-Data-Rate 197 integer ATTRIBUTE Ascend-PreSession-Time 198 integer ATTRIBUTE Ascend-Token-Idle 199 integer ATTRIBUTE Ascend-Token-Immediate 200 integer ATTRIBUTE Ascend-Require-Auth 201 integer ATTRIBUTE Ascend-Number-Sessions 202 string ATTRIBUTE Ascend-Authen-Alias 203 string ATTRIBUTE Ascend-Token-Expiry 204 integer ATTRIBUTE Ascend-Menu-Selector 205 string ATTRIBUTE Ascend-Menu-Item 206 string ATTRIBUTE Ascend-PW-Warntime 207 integer ATTRIBUTE Ascend-PW-Lifetime 208 integer ATTRIBUTE Ascend-IP-Direct 209 ipaddr ATTRIBUTE Ascend-PPP-VJ-Slot-Comp 210 integer ATTRIBUTE Ascend-PPP-VJ-1172 211 integer ATTRIBUTE Ascend-PPP-Async-Map 212 integer ATTRIBUTE Ascend-Third-Prompt 213 string ATTRIBUTE Ascend-Send-Secret 214 string ATTRIBUTE Ascend-Receive-Secret 215 string ATTRIBUTE Ascend-IPX-Peer-Mode 216 integer ATTRIBUTE Ascend-IP-Pool-Definition 217 string ATTRIBUTE Ascend-Assign-IP-Pool 218 integer ATTRIBUTE Ascend-FR-Direct 219 integer ATTRIBUTE Ascend-FR-Direct-Profile 220 string ATTRIBUTE Ascend-FR-Direct-DLCI 221 integer ATTRIBUTE Ascend-Handle-IPX 222 integer ATTRIBUTE Ascend-Netware-timeout 223 integer ATTRIBUTE Ascend-IPX-Alias 224 integer ATTRIBUTE Ascend-Metric 225 integer ATTRIBUTE Ascend-PRI-Number-Type 226 integer ATTRIBUTE Ascend-Dial-Number 227 string ATTRIBUTE Ascend-Route-IP 228 integer ATTRIBUTE Ascend-Route-IPX 229 integer ATTRIBUTE Ascend-Bridge 230 integer ATTRIBUTE Ascend-Send-Auth 231 integer ATTRIBUTE Ascend-Send-Passwd 232 string ATTRIBUTE Ascend-Link-Compression 233 integer ATTRIBUTE Ascend-Target-Util 234 integer ATTRIBUTE Ascend-Maximum-Channels 235 integer ATTRIBUTE Ascend-Inc-Channel-Count 236 integer ATTRIBUTE Ascend-Dec-Channel-Count 237 integer ATTRIBUTE Ascend-Seconds-Of-History 238 integer ATTRIBUTE Ascend-History-Weigh-Type 239 integer ATTRIBUTE Ascend-Add-Seconds 240 integer ATTRIBUTE Ascend-Remove-Seconds 241 integer ATTRIBUTE Ascend-Idle-Limit 244 integer ATTRIBUTE Ascend-Preempt-Limit 245 integer ATTRIBUTE Ascend-Callback 246 integer ATTRIBUTE Ascend-Data-Svc 247 integer ATTRIBUTE Ascend-Force-56 248 integer ATTRIBUTE Ascend-Billing-Number 249 string ATTRIBUTE Ascend-Call-By-Call 250 integer ATTRIBUTE Ascend-Transit-Number 251 string ATTRIBUTE Ascend-Host-Info 252 string ATTRIBUTE Ascend-PPP-Address 253 ipaddr ATTRIBUTE Ascend-MPP-Idle-Percent 254 integer ATTRIBUTE Ascend-Xmit-Rate 255 integer # Ascend protocols VALUE Service-Type Dialout-Framed-User 5 VALUE Framed-Protocol ARA 255 VALUE Framed-Protocol MPP 256 VALUE Framed-Protocol EURAW 257 VALUE Framed-Protocol EUUI 258 VALUE Framed-Protocol X25 259 VALUE Framed-Protocol COMB 260 VALUE Framed-Protocol FR 261 VALUE Framed-Protocol MP 262 VALUE Framed-Protocol FR-CIR 263 # # Ascend specific extensions # Used by ASCEND MAX/Pipeline products (see above) # VALUE Ascend-FR-Direct FR-Direct-No 0 VALUE Ascend-FR-Direct FR-Direct-Yes 1 VALUE Ascend-Handle-IPX Handle-IPX-None 0 VALUE Ascend-Handle-IPX Handle-IPX-Client 1 VALUE Ascend-Handle-IPX Handle-IPX-Server 2 VALUE Ascend-IPX-Peer-Mode IPX-Peer-Router 0 VALUE Ascend-IPX-Peer-Mode IPX-Peer-Dialin 1 VALUE Ascend-Call-Type Nailed 1 VALUE Ascend-Call-Type Nailed/Mpp 2 VALUE Ascend-Call-Type Perm/Switched 3 VALUE Ascend-FT1-Caller FT1-No 0 VALUE Ascend-FT1-Caller FT1-Yes 1 VALUE Ascend-PRI-Number-Type Unknown-Number 0 VALUE Ascend-PRI-Number-Type Intl-Number 1 VALUE Ascend-PRI-Number-Type National-Number 2 VALUE Ascend-PRI-Number-Type Local-Number 4 VALUE Ascend-PRI-Number-Type Abbrev-Number 5 VALUE Ascend-Route-IP Route-IP-No 0 VALUE Ascend-Route-IP Route-IP-Yes 1 VALUE Ascend-Route-IPX Route-IPX-No 0 VALUE Ascend-Route-IPX Route-IPX-Yes 1 VALUE Ascend-Bridge Bridge-No 0 VALUE Ascend-Bridge Bridge-Yes 1 VALUE Ascend-TS-Idle-Mode TS-Idle-None 0 VALUE Ascend-TS-Idle-Mode TS-Idle-Input 1 VALUE Ascend-TS-Idle-Mode TS-Idle-Input-Output 2 VALUE Ascend-Send-Auth Send-Auth-None 0 VALUE Ascend-Send-Auth Send-Auth-PAP 1 VALUE Ascend-Send-Auth Send-Auth-CHAP 2 VALUE Ascend-Send-Auth Send-Auth-MS-CHAP 3 VALUE Ascend-Link-Compression Link-Comp-None 0 VALUE Ascend-Link-Compression Link-Comp-Stac 1 VALUE Ascend-Link-Compression Link-Comp-Stac-Draft-9 2 VALUE Ascend-Link-Compression Link-Comp-MS-Stac 3 VALUE Ascend-History-Weigh-Type History-Constant 0 VALUE Ascend-History-Weigh-Type History-Linear 1 VALUE Ascend-History-Weigh-Type History-Quadratic 2 VALUE Ascend-Callback Callback-No 0 VALUE Ascend-Callback Callback-Yes 1 VALUE Ascend-Expect-Callback Expect-Callback-No 0 VALUE Ascend-Expect-Callback Expect-Callback-Yes 1 VALUE Ascend-Data-Svc Switched-Voice-Bearer 0 VALUE Ascend-Data-Svc Switched-56KR 1 VALUE Ascend-Data-Svc Switched-64K 2 VALUE Ascend-Data-Svc Switched-64KR 3 VALUE Ascend-Data-Svc Switched-56K 4 VALUE Ascend-Data-Svc Switched-384KR 5 VALUE Ascend-Data-Svc Switched-384K 6 VALUE Ascend-Data-Svc Switched-1536K 7 VALUE Ascend-Data-Svc Switched-1536KR 8 VALUE Ascend-Data-Svc Switched-128K 9 VALUE Ascend-Data-Svc Switched-192K 10 VALUE Ascend-Data-Svc Switched-256K 11 VALUE Ascend-Data-Svc Switched-320K 12 VALUE Ascend-Data-Svc Switched-384K-MR 13 VALUE Ascend-Data-Svc Switched-448K 14 VALUE Ascend-Data-Svc Switched-512K 15 VALUE Ascend-Data-Svc Switched-576K 16 VALUE Ascend-Data-Svc Switched-640K 17 VALUE Ascend-Data-Svc Switched-704K 18 VALUE Ascend-Data-Svc Switched-768K 19 VALUE Ascend-Data-Svc Switched-832K 20 VALUE Ascend-Data-Svc Switched-896K 21 VALUE Ascend-Data-Svc Switched-960K 22 VALUE Ascend-Data-Svc Switched-1024K 23 VALUE Ascend-Data-Svc Switched-1088K 24 VALUE Ascend-Data-Svc Switched-1152K 25 VALUE Ascend-Data-Svc Switched-1216K 26 VALUE Ascend-Data-Svc Switched-1280K 27 VALUE Ascend-Data-Svc Switched-1344K 28 VALUE Ascend-Data-Svc Switched-1408K 29 VALUE Ascend-Data-Svc Switched-1472K 30 VALUE Ascend-Data-Svc Switched-1600K 31 VALUE Ascend-Data-Svc Switched-1664K 32 VALUE Ascend-Data-Svc Switched-1728K 33 VALUE Ascend-Data-Svc Switched-1792K 34 VALUE Ascend-Data-Svc Switched-1856K 35 VALUE Ascend-Data-Svc Switched-1920K 36 VALUE Ascend-Data-Svc Switched-inherited 37 VALUE Ascend-Data-Svc Switched-restricted-bearer-x30 38 VALUE Ascend-Data-Svc Switched-clear-bearer-v110 39 VALUE Ascend-Data-Svc Switched-restricted-64-x30 40 VALUE Ascend-Data-Svc Switched-clear-56-v110 41 VALUE Ascend-Data-Svc Switched-modem 42 VALUE Ascend-Data-Svc Switched-atmodem 43 VALUE Ascend-Data-Svc Nailed-56KR 1 VALUE Ascend-Data-Svc Nailed-64K 2 VALUE Ascend-Force-56 Force-56-No 0 VALUE Ascend-Force-56 Force-56-Yes 1 VALUE Ascend-PW-Lifetime Lifetime-In-Days 0 VALUE Ascend-PW-Warntime Days-Of-Warning 0 VALUE Ascend-PPP-VJ-1172 PPP-VJ-1172 1 VALUE Ascend-PPP-VJ-Slot-Comp VJ-Slot-Comp-No 1 VALUE Ascend-Require-Auth Not-Require-Auth 0 VALUE Ascend-Require-Auth Require-Auth 1 VALUE Ascend-Token-Immediate Tok-Imm-No 0 VALUE Ascend-Token-Immediate Tok-Imm-Yes 1 VALUE Ascend-DBA-Monitor DBA-Transmit 0 VALUE Ascend-DBA-Monitor DBA-Transmit-Recv 1 VALUE Ascend-DBA-Monitor DBA-None 2 VALUE Ascend-FR-Type Ascend-FR-DTE 0 VALUE Ascend-FR-Type Ascend-FR-DCE 1 VALUE Ascend-FR-Type Ascend-FR-NNI 2 VALUE Ascend-FR-Link-Mgt Ascend-FR-No-Link-Mgt 0 VALUE Ascend-FR-Link-Mgt Ascend-FR-T1-617D 1 VALUE Ascend-FR-Link-Mgt Ascend-FR-Q-933A 2 VALUE Ascend-FR-LinkUp Ascend-LinkUp-Default 0 VALUE Ascend-FR-LinkUp Ascend-LinkUp-AlwaysUp 1 VALUE Ascend-Multicast-Client Multicast-No 0 VALUE Ascend-Multicast-Client Multicast-Yes 1 VALUE Ascend-User-Acct-Type Ascend-User-Acct-None 0 VALUE Ascend-User-Acct-Type Ascend-User-Acct-User 1 VALUE Ascend-User-Acct-Type Ascend-User-Acct-User-Default 2 VALUE Ascend-User-Acct-Base Base-10 0 VALUE Ascend-User-Acct-Base Base-16 1 VALUE Ascend-DHCP-Reply DHCP-Reply-No 0 VALUE Ascend-DHCP-Reply DHCP-Reply-Yes 1 VALUE Ascend-Client-Assign-DNS DNS-Assign-No 0 VALUE Ascend-Client-Assign-DNS DNS-Assign-Yes 1 VALUE Ascend-Event-Type Ascend-ColdStart 1 VALUE Ascend-Event-Type Ascend-Session-Event 2 VALUE Ascend-BACP-Enable BACP-No 0 VALUE Ascend-BACP-Enable BACP-Yes 1 VALUE Ascend-Dialout-Allowed Dialout-Not-Allowed 0 VALUE Ascend-Dialout-Allowed Dialout-Allowed 1 VALUE Ascend-Shared-Profile-Enable Shared-Profile-No 0 VALUE Ascend-Shared-Profile-Enable Shared-Profile-Yes 1 VALUE Ascend-Temporary-Rtes Temp-Rtes-No 0 VALUE Ascend-Temporary-Rtes Temp-Rtes-Yes 1 Authen-Radius-0.24/raddb/dictionary.cisco000066400000000000000000000136041223417003600203550ustar00rootroot00000000000000# # dictionary.cisco # # Accounting VSAs by # "Marcelo M. Sosa Lugones" # Added Cisco VoIP VSA by # "Cyril Zlachevsky" # # Version: dictionary.cisco 1.04 23-Feb-2001 mazay@donapex.net # VENDOR Cisco 9 # # Attributes Sent ftom Radius Server to the Voice Gateway # ATTRIBUTE h323-ivr-in 1 avpair Cisco ATTRIBUTE h323-credit-amount 101 avpair Cisco ATTRIBUTE h323-credit-time 102 avpair Cisco ATTRIBUTE h323-return-code 103 avpair Cisco ATTRIBUTE h323-prompt-id 104 avpair Cisco ATTRIBUTE h323-time-and-day 105 avpair Cisco ATTRIBUTE h323-redirect-number 106 avpair Cisco ATTRIBUTE h323-preferred-lang 107 avpair Cisco ATTRIBUTE h323-redirect-ip-address 108 avpair Cisco ATTRIBUTE h323-billing-model 109 avpair Cisco ATTRIBUTE h323-currency 110 avpair Cisco # # Extra voice attributes sent by the Cisco, if you configure # "radius-server vsa accounting" (requires IOS11.2+ for non-VoIP # and IOS 12.0.7+ for VoIP). # ATTRIBUTE h323-incoming-conf-id 1 avpair Cisco ATTRIBUTE h323-ivr-out 1 avpair Cisco ATTRIBUTE h323-remote-id 1 avpair Cisco ATTRIBUTE subscriber 1 avpair Cisco ATTRIBUTE NAS-Port-Name 2 string Cisco ATTRIBUTE h323-remote-address 23 avpair Cisco ATTRIBUTE h323-conf-id 24 avpair Cisco ATTRIBUTE h323-setup-time 25 avpair Cisco ATTRIBUTE h323-call-origin 26 avpair Cisco ATTRIBUTE h323-call-type 27 avpair Cisco ATTRIBUTE h323-connect-time 28 avpair Cisco ATTRIBUTE h323-disconnect-time 29 avpair Cisco ATTRIBUTE h323-disconnect-cause 30 avpair Cisco ATTRIBUTE h323-voice-quality 31 avpair Cisco ATTRIBUTE h323-ivr-out 32 avpair Cisco ATTRIBUTE h323-gw-id 33 avpair Cisco ATTRIBUTE h323-call-treatment 34 string Cisco # MVTS (from Mera Networks) # It requests routing in this attribute ATTRIBUTE xpgk-routing-request 1 avpair Cisco # and expects two attributes as a reply ATTRIBUTE xpgk-routing-reply 252 string Cisco ATTRIBUTE xpgk-replace_user-password 251 avpair Cisco # # Standard attribute # ATTRIBUTE Cisco-AVPair 1 string Cisco # # Extra attributes sent by the Cisco, if you configure # "radius-server vsa accounting" (requires IOS11.2+). # ATTRIBUTE Cisco-Multilink-ID 187 integer Cisco ATTRIBUTE Cisco-Num-In-Multilink 188 integer Cisco ATTRIBUTE Cisco-Pre-Input-Octets 190 integer Cisco ATTRIBUTE Cisco-Pre-Output-Octets 191 integer Cisco ATTRIBUTE Cisco-Pre-Input-Packets 192 integer Cisco ATTRIBUTE Cisco-Pre-Output-Packets 193 integer Cisco ATTRIBUTE Cisco-Maximum-Time 194 integer Cisco ATTRIBUTE Cisco-Disconnect-Cause 195 integer Cisco ATTRIBUTE Cisco-Data-Rate 197 integer Cisco ATTRIBUTE Cisco-PreSession-Time 198 integer Cisco ATTRIBUTE Cisco-PW-Lifetime 208 integer Cisco ATTRIBUTE Cisco-IP-Direct 209 integer Cisco ATTRIBUTE Cisco-PPP-VJ-Slot-Comp 210 integer Cisco ATTRIBUTE Cisco-PPP-Async-Map 212 integer Cisco ATTRIBUTE Cisco-IP-Pool-Definition 217 integer Cisco ATTRIBUTE Cisco-Asing-IP-Pool 218 integer Cisco ATTRIBUTE Cisco-Route-IP 228 integer Cisco ATTRIBUTE Cisco-Link-Compression 233 integer Cisco ATTRIBUTE Cisco-Target-Util 234 integer Cisco ATTRIBUTE Cisco-Maximum-Channels 235 integer Cisco ATTRIBUTE Cisco-Data-Filter 242 integer Cisco ATTRIBUTE Cisco-Call-Filter 243 integer Cisco ATTRIBUTE Cisco-Idle-Limit 244 integer Cisco ATTRIBUTE Cisco-Xmit-Rate 255 integer Cisco # original Cistron disconnect causes VALUE Cisco-Disconnect-Cause Unknown 2 VALUE Cisco-Disconnect-Cause CLID-Authentication-Failure 4 VALUE Cisco-Disconnect-Cause No-Carrier 10 VALUE Cisco-Disconnect-Cause Lost-Carrier 11 VALUE Cisco-Disconnect-Cause No-Detected-Result-Codes 12 VALUE Cisco-Disconnect-Cause User-Ends-Session 20 VALUE Cisco-Disconnect-Cause Idle-Timeout 21 VALUE Cisco-Disconnect-Cause Exit-Telnet-Session 22 VALUE Cisco-Disconnect-Cause No-Remote-IP-Addr 23 VALUE Cisco-Disconnect-Cause Exit-Raw-TCP 24 VALUE Cisco-Disconnect-Cause Password-Fail 25 VALUE Cisco-Disconnect-Cause Raw-TCP-Disabled 26 VALUE Cisco-Disconnect-Cause Control-C-Detected 27 VALUE Cisco-Disconnect-Cause EXEC-Program-Destroyed 28 VALUE Cisco-Disconnect-Cause Timeout-PPP-LCP 40 VALUE Cisco-Disconnect-Cause Failed-PPP-LCP-Negotiation 41 VALUE Cisco-Disconnect-Cause Failed-PPP-PAP-Auth-Fail 42 VALUE Cisco-Disconnect-Cause Failed-PPP-CHAP-Auth 43 VALUE Cisco-Disconnect-Cause Failed-PPP-Remote-Auth 44 VALUE Cisco-Disconnect-Cause PPP-Remote-Terminate 45 VALUE Cisco-Disconnect-Cause PPP-Closed-Event 46 VALUE Cisco-Disconnect-Cause Session-Timeout 100 VALUE Cisco-Disconnect-Cause Session-Failed-Security 101 VALUE Cisco-Disconnect-Cause Session-End-Callback 102 VALUE Cisco-Disconnect-Cause Invalid-Protocol 120 Authen-Radius-0.24/raddb/dictionary.compat000066400000000000000000000030121223417003600205300ustar00rootroot00000000000000# # Obsolete names for backwards compatibility with older users files. # Move the $INCLUDE in the main dictionary file to the end if you want # these names to be used in the "details" logfile. # ATTRIBUTE Client-Id 4 ipaddr ATTRIBUTE Client-Port-Id 5 integer ATTRIBUTE User-Service-Type 6 integer ATTRIBUTE Framed-Address 8 ipaddr ATTRIBUTE Framed-Netmask 9 ipaddr ATTRIBUTE Framed-Filter-Id 11 string ATTRIBUTE Login-Host 14 ipaddr ATTRIBUTE Login-Port 16 integer ATTRIBUTE Old-Password 17 string ATTRIBUTE Port-Message 18 string ATTRIBUTE Dialback-No 19 string ATTRIBUTE Dialback-Name 20 string ATTRIBUTE Challenge-State 24 string VALUE Framed-Compression Van-Jacobsen-TCP-IP 1 VALUE Framed-Compression VJ-TCP-IP 1 VALUE Service-Type Shell-User 6 VALUE Auth-Type Unix 1 VALUE Service-Type Dialback-Login-User 3 VALUE Service-Type Dialback-Framed-User 4 # # For compatibility with MERIT users files. # ATTRIBUTE NAS-Port 5 integer ATTRIBUTE Login-Host 14 ipaddr ATTRIBUTE Login-Callback-Number 19 string ATTRIBUTE Framed-Callback-Id 20 string ATTRIBUTE Client-Port-DNIS 30 string ATTRIBUTE Caller-ID 31 string VALUE Service-Type Login 1 VALUE Service-Type Framed 2 VALUE Service-Type Callback-Login 3 VALUE Service-Type Callback-Framed 4 VALUE Service-Type Exec-User 7 # # For compatibility with ESVA RADIUS, Old Cistron RADIUS # ATTRIBUTE Session 1034 integer ATTRIBUTE User-Name-Is-Star 1035 integer VALUE User-Name-Is-Star No 0 VALUE User-Name-Is-Star Yes 1 VALUE Auth-Type None 254 Authen-Radius-0.24/raddb/dictionary.livingston000066400000000000000000000004701223417003600214460ustar00rootroot00000000000000# # Vendor-Specific attributes use the SMI Network Management Private # Enterprise Code from the "Assigned Numbers" RFC # VENDOR Livingston 307 # # Livingston Vendor-Specific Attributes (requires ComOS 3.8) # ATTRIBUTE LE-Terminate-Detail 2 string Livingston ATTRIBUTE LE-Advice-of-Charge 3 string Livingston Authen-Radius-0.24/raddb/dictionary.quintum000066400000000000000000000137211223417003600207570ustar00rootroot00000000000000# # dictionary.quintum # VENDOR Quintum 6618 # # Attributes Sent ftom Radius Server to the Voice Gateway # ATTRIBUTE h323-ivr-in 1 avpair Quintum ATTRIBUTE h323-credit-amount 101 avpair Quintum ATTRIBUTE h323-credit-time 102 avpair Quintum ATTRIBUTE h323-return-code 103 avpair Quintum ATTRIBUTE h323-prompt-id 104 avpair Quintum ATTRIBUTE h323-time-and-day 105 avpair Quintum ATTRIBUTE h323-redirect-number 106 avpair Quintum ATTRIBUTE h323-preferred-lang 107 avpair Quintum ATTRIBUTE h323-redirect-ip-address 108 avpair Quintum ATTRIBUTE h323-billing-model 109 avpair Quintum ATTRIBUTE h323-currency 110 avpair Quintum # # Extra voice attributes sent by the Cisco, if you configure # "radius-server vsa accounting" (requires IOS11.2+ for non-VoIP # and IOS 12.0.7+ for VoIP). # ATTRIBUTE h323-incoming-conf-id 1 avpair Quintum ATTRIBUTE h323-ivr-out 1 avpair Quintum ATTRIBUTE h323-remote-id 1 avpair Quintum ATTRIBUTE subscriber 1 avpair Quintum ATTRIBUTE NAS-Port-Name 2 string Quintum ATTRIBUTE h323-remote-address 23 avpair Quintum ATTRIBUTE h323-conf-id 24 avpair Quintum ATTRIBUTE h323-setup-time 25 avpair Quintum ATTRIBUTE h323-call-origin 26 avpair Quintum ATTRIBUTE h323-call-type 27 avpair Quintum ATTRIBUTE h323-connect-time 28 avpair Quintum ATTRIBUTE h323-disconnect-time 29 avpair Quintum ATTRIBUTE h323-disconnect-cause 30 avpair Quintum ATTRIBUTE h323-voice-quality 31 avpair Quintum ATTRIBUTE h323-ivr-out 32 avpair Quintum ATTRIBUTE h323-gw-id 33 avpair Quintum ATTRIBUTE h323-call-treatment 34 string Quintum # # Standard attribute # ATTRIBUTE Cisco-AVPair 1 string Quintum # # Extra attributes sent by the Cisco, if you configure # "radius-server vsa accounting" (requires IOS11.2+). # ATTRIBUTE Cisco-Multilink-ID 187 integer Quintum ATTRIBUTE Cisco-Num-In-Multilink 188 integer Quintum ATTRIBUTE Cisco-Pre-Input-Octets 190 integer Quintum ATTRIBUTE Cisco-Pre-Output-Octets 191 integer Quintum ATTRIBUTE Cisco-Pre-Input-Packets 192 integer Quintum ATTRIBUTE Cisco-Pre-Output-Packets 193 integer Quintum ATTRIBUTE Cisco-Maximum-Time 194 integer Quintum ATTRIBUTE Cisco-Disconnect-Cause 195 integer Quintum ATTRIBUTE Cisco-Data-Rate 197 integer Quintum ATTRIBUTE Cisco-PreSession-Time 198 integer Quintum ATTRIBUTE Cisco-PW-Lifetime 208 integer Quintum ATTRIBUTE Cisco-IP-Direct 209 integer Quintum ATTRIBUTE Cisco-PPP-VJ-Slot-Comp 210 integer Quintum ATTRIBUTE Cisco-PPP-Async-Map 212 integer Quintum ATTRIBUTE Cisco-IP-Pool-Definition 217 integer Quintum ATTRIBUTE Cisco-Asing-IP-Pool 218 integer Quintum ATTRIBUTE Cisco-Route-IP 228 integer Quintum ATTRIBUTE Cisco-Link-Compression 233 integer Quintum ATTRIBUTE Cisco-Target-Util 234 integer Quintum ATTRIBUTE Cisco-Maximum-Channels 235 integer Quintum ATTRIBUTE Cisco-Data-Filter 242 integer Quintum ATTRIBUTE Cisco-Call-Filter 243 integer Quintum ATTRIBUTE Cisco-Idle-Limit 244 integer Quintum ATTRIBUTE Cisco-Xmit-Rate 255 integer Quintum # Due to some bugofeature Quintum CMS for the PSTN->PSTN calls on the # originate/Telephony call leg does not provide correct value for the # NAS-Port-Name. Instead the value provided there is the same as # NAS-Port-Name on the answer/Telephony. And the name of the actual port # which is used to carry outgoing telephony call supposedly reported in # the magic attribute with code 231. ATTRIBUTE Quintum-NAS-Port-Name-In 230 string Quintum ATTRIBUTE Quintum-NAS-Port-Name-Out 231 string Quintum # original Cistron disconnect causes VALUE Cisco-Disconnect-Cause Unknown 2 VALUE Cisco-Disconnect-Cause CLID-Authentication-Failure 4 VALUE Cisco-Disconnect-Cause No-Carrier 10 VALUE Cisco-Disconnect-Cause Lost-Carrier 11 VALUE Cisco-Disconnect-Cause No-Detected-Result-Codes 12 VALUE Cisco-Disconnect-Cause User-Ends-Session 20 VALUE Cisco-Disconnect-Cause Idle-Timeout 21 VALUE Cisco-Disconnect-Cause Exit-Telnet-Session 22 VALUE Cisco-Disconnect-Cause No-Remote-IP-Addr 23 VALUE Cisco-Disconnect-Cause Exit-Raw-TCP 24 VALUE Cisco-Disconnect-Cause Password-Fail 25 VALUE Cisco-Disconnect-Cause Raw-TCP-Disabled 26 VALUE Cisco-Disconnect-Cause Control-C-Detected 27 VALUE Cisco-Disconnect-Cause EXEC-Program-Destroyed 28 VALUE Cisco-Disconnect-Cause Timeout-PPP-LCP 40 VALUE Cisco-Disconnect-Cause Failed-PPP-LCP-Negotiation 41 VALUE Cisco-Disconnect-Cause Failed-PPP-PAP-Auth-Fail 42 VALUE Cisco-Disconnect-Cause Failed-PPP-CHAP-Auth 43 VALUE Cisco-Disconnect-Cause Failed-PPP-Remote-Auth 44 VALUE Cisco-Disconnect-Cause PPP-Remote-Terminate 45 VALUE Cisco-Disconnect-Cause PPP-Closed-Event 46 VALUE Cisco-Disconnect-Cause Session-Timeout 100 VALUE Cisco-Disconnect-Cause Session-Failed-Security 101 VALUE Cisco-Disconnect-Cause Session-End-Callback 102 VALUE Cisco-Disconnect-Cause Invalid-Protocol 120 Authen-Radius-0.24/raddb/dictionary.rfc2869000066400000000000000000000021571223417003600203610ustar00rootroot00000000000000# # RFC 2869 - RADIUS Extensions # ATTRIBUTE Acct-Input-Gigawords 52 integer ATTRIBUTE Acct-Output-Gigawords 53 integer ATTRIBUTE Event-Timestamp 55 integer ATTRIBUTE ARAP-Password 70 string ATTRIBUTE ARAP-Features 71 string ATTRIBUTE ARAP-Zone-Access 72 integer ATTRIBUTE ARAP-Security 73 integer ATTRIBUTE ARAP-Security-Data 74 string ATTRIBUTE Password-Retry 75 integer ATTRIBUTE Prompt 76 integer ATTRIBUTE Connect-Info 77 string ATTRIBUTE Configuration-Token 78 string ATTRIBUTE EAP-Message 79 string ATTRIBUTE Message-Authenticator 80 string ATTRIBUTE ARAP-Challenge-Response 84 string ATTRIBUTE Acct-Interim-Interval 85 integer ATTRIBUTE NAS-Port-Id 87 string ATTRIBUTE Framed-Pool 88 string VALUE ARAP-Zone-Access Default-Zone 1 VALUE ARAP-Zone-Access Zone-Filter-Inclusive 2 VALUE ARAP-Zone-Access Zone-Filter-Exclusive 4 VALUE Prompt No-Echo 0 VALUE Prompt Echo 1 Authen-Radius-0.24/raddb/dictionary.shiva000066400000000000000000000052361223417003600203710ustar00rootroot00000000000000# # Shiva dictionary. # # Shiva Inc. # http://www.shiva.com/ # # Enable by putting the line "$INCLUDE dictionary.shiva" into # the main dictionary file. # # Version: 1.00 27-Apr-1999 contributed by Alan DeKok # VENDOR Shiva 166 # Shiva Extensions # # ??? I don't know what this is, but it's "Acct-Link-Count" # in the main dictionary. # #ATTRIBUTE Shiva-User-Attributes 51 string ATTRIBUTE Shiva-User-Attributes 1 string Shiva ATTRIBUTE Shiva-Called-Number 90 string Shiva ATTRIBUTE Shiva-Calling-Number 91 string Shiva ATTRIBUTE Shiva-Customer-Id 92 string Shiva ATTRIBUTE Shiva-Type-Of-Service 93 integer Shiva ATTRIBUTE Shiva-Link-Speed 94 integer Shiva ATTRIBUTE Shiva-Links-In-Bundle 95 integer Shiva ATTRIBUTE Shiva-Compression-Type 96 integer Shiva ATTRIBUTE Shiva-Link-Protocol 97 integer Shiva ATTRIBUTE Shiva-Network-Protocols 98 integer Shiva ATTRIBUTE Shiva-Session-Id 99 integer Shiva ATTRIBUTE Shiva-Disconnect-Reason 100 integer Shiva ATTRIBUTE Shiva-Acct-Serv-Switch 101 ipaddr Shiva ATTRIBUTE Shiva-Event-Flags 102 integer Shiva ATTRIBUTE Shiva-Function 103 integer Shiva ATTRIBUTE Shiva-Connect-Reason 104 integer Shiva # Shiva Type Of Service Values VALUE Shiva-Type-Of-Service Analog 1 VALUE Shiva-Type-Of-Service Digitized-Analog 2 VALUE Shiva-Type-Of-Service Digital 3 VALUE Shiva-Type-Of-Service Digital-V110 4 VALUE Shiva-Type-Of-Service Digital-V120 5 VALUE Shiva-Type-Of-Service Digital-Leased-Line 6 # Shiva Link Protocol Values VALUE Shiva-Link-Protocol HDLC 1 VALUE Shiva-Link-Protocol ARAV1 2 VALUE Shiva-Link-Protocol ARAV2 3 VALUE Shiva-Link-Protocol SHELL 4 VALUE Shiva-Link-Protocol AALAP 5 VALUE Shiva-Link-Protocol SLIP 6 # Shiva Connect Reason Values VALUE Shiva-Connect-Reason Remote 1 VALUE Shiva-Connect-Reason Dialback 2 VALUE Shiva-Connect-Reason Virtual-Connection 3 VALUE Shiva-Connect-Reason Bandwidth-On-Demand 4 # Shiva Disconnect Reason Values VALUE Shiva-Disconnect-Reason Remote 1 VALUE Shiva-Disconnect-Reason Error 2 VALUE Shiva-Disconnect-Reason Idle-Timeout 3 VALUE Shiva-Disconnect-Reason Session-Timeout 4 VALUE Shiva-Disconnect-Reason Admin-Disconnect 5 VALUE Shiva-Disconnect-Reason Dialback 6 VALUE Shiva-Disconnect-Reason Virtual-Connection 7 VALUE Shiva-Disconnect-Reason Bandwidth-On-Demand 8 VALUE Shiva-Disconnect-Reason Failed-Authentication 9 VALUE Shiva-Disconnect-Reason Preempted 10 VALUE Shiva-Disconnect-Reason Blocked 11 VALUE Shiva-Disconnect-Reason Tariff-Management 12 VALUE Shiva-Disconnect-Reason Backup 13 # Shiva Function Values VALUE Shiva-Function Unknown 0 VALUE Shiva-Function Dialin 1 VALUE Shiva-Function Dialout 2 VALUE Shiva-Function Lan-To-Lan 3 Authen-Radius-0.24/raddb/dictionary.tunnel000066400000000000000000000021541223417003600205600ustar00rootroot00000000000000# # dictionary.tunnel # # Experimental tunneling attributes. # # # Version: @(#)dictionary.tunnel 1.10 11-Nov-1998 miquels@cistron.nl # # # Tunneling Attributes # ATTRIBUTE Tunnel-Type 64 integer ATTRIBUTE Tunnel-Medium-Type 65 integer ATTRIBUTE Acct-Tunnel-Client-Endpoint 66 string ATTRIBUTE Tunnel-Server-Endpoint 67 string ATTRIBUTE Acct-Tunnel-Connection-Id 68 string ATTRIBUTE Tunnel-Password 69 string ATTRIBUTE Private-Group-Id 75 integer VALUE Framed-Protocol PPTP 9 # Some of the new Tunnel values VALUE Tunnel-Security None 0 VALUE Tunnel-Security Control-Only 1 VALUE Tunnel-Security Data-Only 2 VALUE Tunnel-Security Both 3 # Tunnel Type VALUE Tunnel-Type PPTP 1 VALUE Tunnel-Type L2F 2 VALUE Tunnel-Type L2TP 3 VALUE Tunnel-Type ATMP 4 VALUE Tunnel-Type VTP 5 VALUE Tunnel-Type AH 6 VALUE Tunnel-Type IP 7 VALUE Tunnel-Type MIN-IP 8 VALUE Tunnel-Type ESP 9 VALUE Tunnel-Type GRE 10 VALUE Tunnel-Type DVS 11 # # Tunnel Medium Type VALUE Tunnel-Medium-Type IP 1 VALUE Tunnel-Medium-Type X25 2 VALUE Tunnel-Medium-Type ATM 3 VALUE Tunnel-Medium-Type Frame-Relay 4 Authen-Radius-0.24/raddb/dictionary.usr000066400000000000000000001726561223417003600201030ustar00rootroot00000000000000# # dictionary.usr USR Robotics dictionary. # # Taken from the dictionary included with the USR RADIUS server, # and adjusted a bit. # # Version: @(#)dictionary.usr 1.10 11-Nov-1998 miquels@cistron.nl # # # USR specific attributes # # Prompt value should be 1 for echo, 0 for no echo, default 1. #ATTRIBUTE Prompt 64 integer ATTRIBUTE Multi-Link-Flag 126 integer ATTRIBUTE Char-Noecho 250 integer # # USR specific Integer Translations # VALUE Termination-Action Manage-Resources 2 VALUE Service-Type Authenticate-User 8 VALUE Service-Type Dialback-NAS-User 9 VALUE Acct-Status-Type Modem-Start 4 VALUE Acct-Status-Type Modem-Stop 5 VALUE Acct-Status-Type Cancel 6 VALUE Multi-Link-Flag True 1 VALUE Multi-Link-Flag False 0 # USR specific Authentication Types VALUE Acct-Authentic None 0 VALUE Acct-Authentic Remote 3 VALUE Acct-Authentic RADIUS 4 VALUE Acct-Authentic MNET 5 VALUE Acct-Authentic KCHAP 6 VALUE Acct-Authentic TACACS 7 VALUE Acct-Authentic Realm 8 VALUE Acct-Authentic Local 9 VALUE Acct-Authentic File 10 VALUE Acct-Authentic Local-VPN 11 # # USR Extensions: USR Vendor-Specific stuff. # # For now in NMC format (whatever that stands for), though the # normal vendor-specific format would work just as well. # # ATTRIB_NMC USR-Last-Number-Dialed-Out 0x0066 string ATTRIB_NMC USR-Last-Number-Dialed-In-DNIS 0x00E8 string ATTRIB_NMC USR-Last-Callers-Number-ANI 0x00E9 string ATTRIB_NMC USR-Channel 0xBF38 integer ATTRIB_NMC USR-Event-Id 0xBFBE integer ATTRIB_NMC USR-Event-Date-Time 0xBF2F date ATTRIB_NMC USR-Call-Start-Date-Time 0xBFF7 date ATTRIB_NMC USR-Call-End-Date-Time 0xBFF6 date ATTRIB_NMC USR-Default-DTE-Data-Rate 0x005E integer ATTRIB_NMC USR-Initial-Rx-Link-Data-Rate 0xBF2D integer ATTRIB_NMC USR-Final-Rx-Link-Data-Rate 0xBF2C integer ATTRIB_NMC USR-Initial-Tx-Link-Data-Rate 0x006A integer ATTRIB_NMC USR-Final-Tx-Link-Data-Rate 0x006B integer ATTRIB_NMC USR-Chassis-Temperature 0xBF31 integer ATTRIB_NMC USR-Chassis-Temp-Threshold 0xBE84 integer ATTRIB_NMC USR-Actual-Voltage 0xBF32 integer ATTRIB_NMC USR-Expected-Voltage 0xBF33 integer ATTRIB_NMC USR-Power-Supply-Number 0xBF34 integer ATTRIB_NMC USR-Card-Type 0xBE85 integer ATTRIB_NMC USR-Chassis-Slot 0xBF39 integer ATTRIB_NMC USR-Sync-Async-Mode 0x0067 integer ATTRIB_NMC USR-Originate-Answer-Mode 0x0068 integer ATTRIB_NMC USR-Modulation-Type 0x006C integer ATTRIB_NMC USR-Connect-Term-Reason 0x009B integer ATTRIB_NMC USR-Failure-to-Connect-Reason 0x0069 integer ATTRIB_NMC USR-Equalization-Type 0x006F integer ATTRIB_NMC USR-Fallback-Enabled 0x0070 integer ATTRIB_NMC USR-Connect-Time-Limit 0xBFE7 integer ATTRIB_NMC USR-Number-of-Rings-Limit 0xBFE6 integer ATTRIB_NMC USR-DTE-Data-Idle-Timout 0x0048 integer ATTRIB_NMC USR-Characters-Sent 0x0071 integer ATTRIB_NMC USR-Characters-Received 0x0072 integer ATTRIB_NMC USR-Blocks-Sent 0x0075 integer ATTRIB_NMC USR-Blocks-Received 0x0076 integer ATTRIB_NMC USR-Blocks-Resent 0x0077 integer ATTRIB_NMC USR-Retrains-Requested 0x0078 integer ATTRIB_NMC USR-Retrains-Granted 0x0079 integer ATTRIB_NMC USR-Line-Reversals 0x007A integer ATTRIB_NMC USR-Number-Of-Characters-Lost 0x007B integer ATTRIB_NMC USR-Number-of-Blers 0x007D integer ATTRIB_NMC USR-Number-of-Link-Timeouts 0x007E integer ATTRIB_NMC USR-Number-of-Fallbacks 0x007F integer ATTRIB_NMC USR-Number-of-Upshifts 0x0080 integer ATTRIB_NMC USR-Number-of-Link-NAKs 0x0081 integer ATTRIB_NMC USR-DTR-False-Timeout 0x00BE integer ATTRIB_NMC USR-Fallback-Limit 0x00BF integer ATTRIB_NMC USR-Block-Error-Count-Limit 0x00C0 integer ATTRIB_NMC USR-DTR-True-Timeout 0x00DA integer ATTRIB_NMC USR-Security-Login-Limit 0xBEDE integer ATTRIB_NMC USR-Security-Resp-Limit 0xBEFA integer ATTRIB_NMC USR-DTE-Ring-No-Answer-Limit 0xBF17 integer ATTRIB_NMC USR-Back-Channel-Data-Rate 0x007C integer ATTRIB_NMC USR-Simplified-MNP-Levels 0x0099 integer ATTRIB_NMC USR-Simplified-V42bis-Usage 0x00C7 integer ATTRIB_NMC USR-Mbi_Ct_PRI_Card_Slot 0x0184 integer ATTRIB_NMC USR-Mbi_Ct_TDM_Time_Slot 0x0185 integer ATTRIB_NMC USR-Mbi_Ct_PRI_Card_Span_Line 0x0186 integer ATTRIB_NMC USR-Mbi_Ct_BChannel_Used 0x0187 integer ATTRIB_NMC USR-Physical-State 0xBE77 integer ATTRIB_NMC USR-Packet-Bus-Session 0xBF14 integer ATTRIB_NMC USR-Server-Time 0xF000 date # 0xBE5D-0xBE63 sent with Event-Id 79 ATTRIB_NMC USR-Channel-Connected-To 0xBE5D integer ATTRIB_NMC USR-Slot-Connected-To 0xBE5E integer ATTRIB_NMC USR-Device-Connected-To 0xBE5F integer ATTRIB_NMC USR-NFAS-ID 0xBE60 integer ATTRIB_NMC USR-Q931-Call-Reference-Value 0xBE61 integer ATTRIB_NMC USR-Call-Event-Code 0xBE62 integer ATTRIB_NMC USR-DS0 0xBE63 integer # DS0s sent with Event-Id 77,78 ATTRIB_NMC USR-DS0s 0xBE64 string # Gateway-IP-Address sent with Event-Id 71,72 ATTRIB_NMC USR-Gateway-IP-Address 0xBE66 ipaddr # # These are CCA Radius attributes # ATTRIB_NMC USR-PW_USR_IFilter_IP 0x9000 string ATTRIB_NMC USR-PW_USR_IFilter_IPX 0x9001 string ATTRIB_NMC USR-PW_USR_OFilter_IP 0x9003 string ATTRIB_NMC USR-PW_USR_OFilter_IPX 0x9004 string ATTRIB_NMC USR-PW_USR_OFilter_SAP 0x9005 string ATTRIB_NMC USR-PW_VPN_ID 0x9006 string ATTRIB_NMC USR-PW_VPN_Name 0x9007 string ATTRIB_NMC USR-PW_VPN_Neighbor 0x9008 string ATTRIB_NMC USR-PW_Framed_Routing_V2 0x9009 string ATTRIB_NMC USR-PW_VPN_Gateway 0x900a string ATTRIB_NMC USR-PW_Tunnel_Authentication 0x900b string ATTRIB_NMC USR-PW_Index 0x900c string ATTRIB_NMC USR-PW_Cutoff 0x900d string ATTRIB_NMC USR-PW_Packet 0x900e string ATTRIB_NMC USR-Primary_DNS_Server 0x900f ipaddr ATTRIB_NMC USR-Secondary_DNS_Server 0x9010 ipaddr ATTRIB_NMC USR-Primary_NBNS_Server 0x9011 ipaddr ATTRIB_NMC USR-Secondary_NBNS_Server 0x9012 ipaddr ATTRIB_NMC USR-Syslog-Tap 0x9013 integer ATTRIB_NMC USR-Chassis-Call-Slot 0x9019 integer ATTRIB_NMC USR-Chassis-Call-Span 0x901A integer ATTRIB_NMC USR-Chassis-Call-Channel 0x901B integer ATTRIB_NMC USR-Keypress-Timeout 0x901C integer ATTRIB_NMC USR-Unauthenticated-Time 0x901D integer ATTRIB_NMC USR-Connect-Speed 0x9023 integer ATTRIB_NMC USR-Framed_IP_Address_Pool_Name 0x9024 string ATTRIB_NMC USR-MP-EDO 0x9025 string # # Pilgrim attributes # ATTRIB_NMC USR-Bearer-Capabilities 0x9800 integer ATTRIB_NMC USR-Speed-Of-Connection 0x9801 integer ATTRIB_NMC USR-Max-Channels 0x9802 integer ATTRIB_NMC USR-Channel-Expansion 0x9803 integer ATTRIB_NMC USR-Channel-Decrement 0x9804 integer ATTRIB_NMC USR-Expansion-Algorithm 0x9805 integer ATTRIB_NMC USR-Compression-Algorithm 0x9806 integer ATTRIB_NMC USR-Receive-Acc-Map 0x9807 integer ATTRIB_NMC USR-Transmit-Acc-Map 0x9808 integer ATTRIB_NMC USR-Compression-Reset-Mode 0x980a integer ATTRIB_NMC USR-Min-Compression-Size 0x980b integer ATTRIB_NMC USR-IP 0x980c integer ATTRIB_NMC USR-IPX 0x980d integer ATTRIB_NMC USR-Filter-Zones 0x980e integer ATTRIB_NMC USR-Appletalk 0x980f integer ATTRIB_NMC USR-Bridging 0x9810 integer ATTRIB_NMC USR-Spoofing 0x9811 integer ATTRIB_NMC USR-Host-Type 0x9812 integer ATTRIB_NMC USR-Send-Name 0x9813 string ATTRIB_NMC USR-Send-Password 0x9814 string ATTRIB_NMC USR-Start-Time 0x9815 integer ATTRIB_NMC USR-End-Time 0x9816 integer ATTRIB_NMC USR-Send-Script1 0x9817 string ATTRIB_NMC USR-Reply-Script1 0x9818 string ATTRIB_NMC USR-Send-Script2 0x9819 string ATTRIB_NMC USR-Reply-Script2 0x981a string ATTRIB_NMC USR-Send-Script3 0x981b string ATTRIB_NMC USR-Reply-Script3 0x981c string ATTRIB_NMC USR-Send-Script4 0x981d string ATTRIB_NMC USR-Reply-Script4 0x981e string ATTRIB_NMC USR-Send-Script5 0x981f string ATTRIB_NMC USR-Reply-Script5 0x9820 string ATTRIB_NMC USR-Send-Script6 0x9821 string ATTRIB_NMC USR-Reply-Script6 0x9822 string ATTRIB_NMC USR-Terminal-Type 0x9823 string ATTRIB_NMC USR-Appletalk-Network-Range 0x9824 integer ATTRIB_NMC USR-Local-IP-Address 0x9825 string ATTRIB_NMC USR-Routing-Protocol 0x9826 integer ATTRIB_NMC USR-Modem-Group 0x9827 integer ATTRIB_NMC USR-Modem-Training-Time 0x9842 integer ATTRIB_NMC USR-Interface-Index 0x9843 integer ATTRIB_NMC USR-MP-MRRU 0x982f integer ATTRIB_NMC USR-SAP-Filter-In 0x9002 string ATTRIB_NMC USR-MIC 0x9014 string ATTRIB_NMC USR-Log-Filter-Packets 0x9017 string ATTRIB_NMC USR-VPN-Encrypter 0x901e integer ATTRIB_NMC USR-Re-Chap-Timeout 0x9020 integer ATTRIB_NMC USR-Tunnel-Switch-Endpoint 0x9868 string ATTRIB_NMC USR-IP-SAA-Filter 0x9870 integer ATTRIB_NMC Initial-Modulation-Type 0x0923 integer ATTRIB_NMC USR-VTS-Session-Key 0x9856 string ATTRIB_NMC USR-Orig-NAS-Type 0x9857 string ATTRIB_NMC USR-Call-Arrival-Time 0x9858 integer ATTRIB_NMC USR-Call-End-Time 0x9859 integer ATTRIB_NMC USR-Tunnel-Auth-Hostname 0x986b string ATTRIB_NMC USR-Acct-Reason-Code 0x986c integer ATTRIB_NMC USR-Supports-Tags 0x9889 integer ATTRIB_NMC USR-HARC-Disconnect-Code 0x988b integer ATTRIB_NMC USR-RMMIE-Status 0x01cd integer ATTRIB_NMC USR-RMMIE-Last-Update-Event 0x0901 integer ATTRIB_NMC USR-RMMIE-x2-Status 0x0909 integer ATTRIB_NMC USR-RMMIE-Planned-Disconnect 0x090a integer ATTRIB_NMC USR-VPN-GW-Location-Id 0x901f string ATTRIB_NMC USR-CCP-Algorithm 0x9021 integer ATTRIB_NMC USR-ACCM-Type 0x9022 integer ATTRIB_NMC USR-Local-Framed-IP-Addr 0x9026 ipaddr ATTRIB_NMC USR-IPX-Routing 0x9828 integer ATTRIB_NMC USR-IPX-WAN 0x9829 integer ATTRIB_NMC USR-IP-RIP-Policies 0x982a integer ATTRIB_NMC USR-IP-RIP-Simple-Auth-Password 0x982b string ATTRIB_NMC USR-IP-RIP-Input-Filter 0x982c string ATTRIB_NMC USR-IP-Call-Input-Filter 0x982d string ATTRIB_NMC USR-IPX-RIP-Input-Filter 0x982e string ATTRIB_NMC USR-IPX-Call-Input-Filter 0x9830 string ATTRIB_NMC USR-AT-Input-Filter 0x9831 string ATTRIB_NMC USR-AT-RTMP-Input-Filter 0x9832 string ATTRIB_NMC USR-AT-Zip-Input-Filter 0x9833 string ATTRIB_NMC USR-AT-Call-Input-Filter 0x9834 string ATTRIB_NMC USR-ET-Bridge-Input-Filter 0x9835 string ATTRIB_NMC USR-IP-RIP-Output-Filter 0x9836 string ATTRIB_NMC USR-IP-Call-Output-Filter 0x9837 string ATTRIB_NMC USR-IPX-RIP-Output-Filter 0x9838 string ATTRIB_NMC USR-IPX-Call-Output-Filter 0x9839 string ATTRIB_NMC USR-AT-Output-Filter 0x983a string ATTRIB_NMC USR-AT-RTMP-Output-Filter 0x983b string ATTRIB_NMC USR-AT-Zip-Output-Filter 0x983c string ATTRIB_NMC USR-AT-Call-Output-Filter 0x983d string ATTRIB_NMC USR-ET-Bridge-Output-Filter 0x983e string # This item name is too long for Cistron to parse; had to chop the r off. ATTRIB_NMC USR-ET-Bridge-Call-Output-Filte 0x983f string ATTRIB_NMC USR-IP-Default-Route-Option 0x9840 integer ATTRIB_NMC USR-MP-EDO-HIPER 0x9841 string ATTRIB_NMC USR-Tunnel-Security 0x9844 integer ATTRIB_NMC USR-Port-Tap 0x9845 integer ATTRIB_NMC USR-Port-Tap-Format 0x9846 integer ATTRIB_NMC USR-Port-Tap-Output 0x9847 integer ATTRIB_NMC USR-Port-Tap-Facility 0x9848 integer ATTRIB_NMC USR-Port-Tap-Priority 0x9849 integer ATTRIB_NMC USR-Port-Tap-Address 0x984a ipaddr ATTRIB_NMC USR-MobileIP-Home-Agent-Address 0x984b ipaddr ATTRIB_NMC USR-Tunneled-MLPP 0x984c integer ATTRIB_NMC USR-Multicast-Proxy 0x984d integer ATTRIB_NMC USR-Multicast-Receive 0x984e integer ATTRIB_NMC USR-Multicast-Forwarding 0x9850 integer ATTRIB_NMC USR-IGMP-Query-Interval 0x9851 integer ATTRIB_NMC USR-IGMP-Maximum-Response-Time 0x9852 integer ATTRIB_NMC USR-IGMP-Robustness 0x9853 integer ATTRIB_NMC USR-IGMP-Version 0x9854 integer ATTRIB_NMC USR-Callback-Type 0x986a integer ATTRIB_NMC USR-Request-Type 0xf001 integer ATTRIB_NMC USR-RMMIE-Num-Of-Updates 0x01ce integer ATTRIB_NMC USR-RMMIE-Manufacturer-ID 0x01df integer ATTRIB_NMC USR-RMMIE-Product-Code 0x01e0 string ATTRIB_NMC USR-RMMIE-Serial-Number 0x01e1 string ATTRIB_NMC USR-RMMIE-Firmware-Version 0x01e2 string ATTRIB_NMC USR-RMMIE-Firmware-Build-Date 0x01e3 string ATTRIB_NMC USR-Call-Arrival-in-GMT 0xbe52 date ATTRIB_NMC USR-Call-Connect-in-GMT 0xbe51 date ATTRIB_NMC USR-Call-Terminate-in-GMT 0xbe50 date ATTRIB_NMC USR-IDS0-Call-Type 0xbe4f integer ATTRIB_NMC USR-Call-Reference-Number 0xbe7d integer ATTRIB_NMC USR-CDMA-Call-Reference-Number 0x0183 integer ATTRIB_NMC USR-Mobile-IP-Address 0x088e ipaddr ATTRIB_NMC USR-IWF-IP-Address 0x03f4 ipaddr ATTRIB_NMC USR-Called-Party-Number 0x0890 string ATTRIB_NMC USR-Calling-Party-Number 0x088f string ATTRIB_NMC USR-Call-Type 0x0891 integer ATTRIB_NMC USR-ESN 0x0892 string ATTRIB_NMC USR-IWF-Call-Identifier 0x0893 integer ATTRIB_NMC USR-IMSI 0x0894 string ATTRIB_NMC USR-Service-Option 0x0895 integer ATTRIB_NMC USR-Disconnect-Cause-Indicator 0x0896 integer ATTRIB_NMC USR-Mobile-NumBytes-Txed 0x0897 integer ATTRIB_NMC USR-Mobile-NumBytes-Rxed 0x0898 integer ATTRIB_NMC USR-Num-Fax-Pages-Processed 0x0899 integer ATTRIB_NMC USR-Compression-Type 0x089a integer ATTRIB_NMC USR-Call-Error-Code 0x089b integer ATTRIB_NMC USR-Modem-Setup-Time 0x089c integer ATTRIB_NMC USR-Call-Connecting-Time 0x089d integer ATTRIB_NMC USR-Connect-Time 0x089e integer ATTRIB_NMC USR-RMMIE-Last-Update-Time 0x0900 integer ATTRIB_NMC USR-RMMIE-Rcv-Tot-PwrLvl 0x0902 integer ATTRIB_NMC USR-RMMIE-Rcv-PwrLvl-3300Hz 0x0903 integer ATTRIB_NMC USR-RMMIE-Rcv-PwrLvl-3750Hz 0x0904 integer ATTRIB_NMC USR-RMMIE-PwrLvl-NearEcho-Canc 0x0905 integer ATTRIB_NMC USR-RMMIE-PwrLvl-FarEcho-Canc 0x0906 integer ATTRIB_NMC USR-RMMIE-PwrLvl-Noise-Lvl 0x0907 integer ATTRIB_NMC USR-RMMIE-PwrLvl-Xmit-Lvl 0x0908 integer ATTRIB_NMC USR-Framed-IPX-Route 0x9027 ipaddr ATTRIB_NMC USR-MPIP-Tunnel-Originator 0x9028 ipaddr ATTRIB_NMC USR-IGMP-Routing 0x9855 integer ATTRIB_NMC USR-Rad-Multicast-Routing-Ttl 0x9860 integer # again, too long for cistron to parse "rate-limit", "protocol" and "boundary" ATTRIB_NMC USR-Rad-Multicast-Routing-RtLim 0x9861 integer ATTRIB_NMC USR-Rad-Multicast-Routing-Proto 0x9862 integer ATTRIB_NMC USR-Rad-Multicast-Routing-Bound 0x9863 string ATTRIB_NMC USR-Rad-Dvmrp-Metric 0x9864 integer ATTRIB_NMC USR-Chat-Script-Name 0x9865 string ATTRIB_NMC USR-CUSR-hat-Script-Rules 0x9866 string ATTRIB_NMC USR-Rad-Location-Type 0x9867 integer ATTRIB_NMC USR-OSPF-Addressless-Index 0x9869 integer ATTRIB_NMC USR-DNIS-ReAuthentication 0x9875 integer ATTRIB_NMC USR-NAS-Type 0xf002 integer ATTRIB_NMC USR-Auth-Mode 0xf003 integer # # Integer Translations # #VALUE USR-Character-Echo Echo-On 0 #VALUE USR-Character-Echo Echo-Off 1 VALUE USR-RIPV2 Off 0 VALUE USR-RIPV2 On 1 VALUE USR-Syslog-Tap Off 0 VALUE USR-Syslog-Tap On-Raw 1 VALUE USR-Syslog-Tap On-Framed 2 VALUE USR-Syslog-Tap Unknown 4294967295 # Event Indentifiers VALUE USR-Event-Id Module-Inserted 6 VALUE USR-Event-Id Module-Removed 7 VALUE USR-Event-Id PSU-Voltage-Alarm 8 VALUE USR-Event-Id PSU-Failed 9 VALUE USR-Event-Id HUB-Temp-Out-of-Range 10 VALUE USR-Event-Id Fan-Failed 11 VALUE USR-Event-Id Watchdog-Timeout 12 VALUE USR-Event-Id Mgmt-Bus-Failure 13 VALUE USR-Event-Id In-Connection-Est 14 VALUE USR-Event-Id Out-Connection-Est 15 VALUE USR-Event-Id In-Connection-Term 16 VALUE USR-Event-Id Out-Connection-Term 17 VALUE USR-Event-Id Connection-Failed 18 VALUE USR-Event-Id Connection-Timeout 19 VALUE USR-Event-Id DTE-Transmit-Idle 20 VALUE USR-Event-Id DTR-True 21 VALUE USR-Event-Id DTR-False 22 VALUE USR-Event-Id Block-Error-at-Threshold 23 VALUE USR-Event-Id Fallbacks-at-Threshold 24 VALUE USR-Event-Id No-Dial-Tone-Detected 25 VALUE USR-Event-Id No-Loop-Current-Detected 26 VALUE USR-Event-Id Yellow-Alarm 27 VALUE USR-Event-Id Red-Alarm 28 VALUE USR-Event-Id Loss-Of-Signal 29 VALUE USR-Event-Id Rcv-Alrm-Ind-Signal 30 VALUE USR-Event-Id Timing-Source-Switch 31 VALUE USR-Event-Id Modem-Reset-by-DTE 32 VALUE USR-Event-Id Modem-Ring-No-Answer 33 VALUE USR-Event-Id DTE-Ring-No-Answer 34 VALUE USR-Event-Id Pkt-Bus-Session-Active 35 VALUE USR-Event-Id Pkt-Bus-Session-Congestion 36 VALUE USR-Event-Id Pkt-Bus-Session-Lost 37 VALUE USR-Event-Id Pkt-Bus-Session-Inactive 38 VALUE USR-Event-Id User-Interface-Reset 39 VALUE USR-Event-Id Gateway-Port-Out-of-Service 40 VALUE USR-Event-Id Gateway-Port-Link-Active 41 VALUE USR-Event-Id Dial-Out-Login-Failure 42 VALUE USR-Event-Id Dial-In-Login-Failure 43 VALUE USR-Event-Id Dial-Out-Restricted-Number 44 VALUE USR-Event-Id Dial-Back-Restricted-Number 45 VALUE USR-Event-Id User-Blacklisted 46 VALUE USR-Event-Id Attempted-Login-Blacklisted 47 VALUE USR-Event-Id Response-Attempt-Limit-Exceeded 48 VALUE USR-Event-Id Login-Attempt-Limit-Exceeded 49 VALUE USR-Event-Id Dial-Out-Call-Duration 50 VALUE USR-Event-Id Dial-In-Call-Duration 51 VALUE USR-Event-Id Pkt-Bus-Session-Err-Status 52 VALUE USR-Event-Id NMC-AutoRespnse-Trap 53 VALUE USR-Event-Id Acct-Server-Contact-Loss 54 VALUE USR-Event-Id Yellow-Alarm-Clear 55 VALUE USR-Event-Id Red-Alarm-Clear 56 VALUE USR-Event-Id Loss-Of-Signal-Clear 57 VALUE USR-Event-Id Rcv-Alrm-Ind-Signal-Clear 58 VALUE USR-Event-Id Incoming-Connection-Established 59 VALUE USR-Event-Id Outgoing-Connection-Established 60 VALUE USR-Event-Id Incoming-Connection-Terminated 61 VALUE USR-Event-Id Outgoing-Connection-Terminated 62 VALUE USR-Event-Id Connection-Attempt-Failure 63 VALUE USR-Event-Id Continuous-CRC-Alarm 64 VALUE USR-Event-Id Continuous-CRC-Alarm-Clear 65 VALUE USR-Event-Id Physical-State-Change 66 VALUE USR-Event-Id Gateway-Network-Failed 71 VALUE USR-Event-Id Gateway-Network-Restored 72 VALUE USR-Event-Id Packet-Bus-Clock-Lost 73 VALUE USR-Event-Id Packet-Bus-Clock-Restored 74 VALUE USR-Event-Id D-Channel-In-Service 75 VALUE USR-Event-Id D-Channel-Out-of-Service 76 VALUE USR-Event-Id DS0s-In-Service 77 VALUE USR-Event-Id DS0s-Out-of-Service 78 VALUE USR-Event-Id T1/T1PRI/E1PRI-Call-Event 79 VALUE USR-Event-Id Psu-Incompatible 80 VALUE USR-Event-Id T1,T1-E1/PRI-Call-Arrive-Event 81 VALUE USR-Event-Id T1,T1-E1/PRI-Call-Connect-Event 82 VALUE USR-Event-Id T1,T1-E1/PRI-Call-Termina-Event 83 VALUE USR-Event-Id T1,T1-E1/PRI-Call-Failed-Event 84 VALUE USR-Event-Id DNS-Contact-Lost 85 VALUE USR-Event-Id NTP-Contact-Lost 86 VALUE USR-Event-Id NTP-Contact-Restored 87 VALUE USR-Event-Id IPGW-Link-Up 88 VALUE USR-Event-Id IPGW-Link-Down 89 VALUE USR-Event-Id NTP-Contact-Degraded 90 VALUE USR-Event-Id In-Connection-Failed 91 VALUE USR-Event-Id Out-Connection-Failed 92 VALUE USR-Event-Id Application-ProcessorReset 93 VALUE USR-Event-Id DSP-Reset 94 VALUE USR-Event-Id Changed-to-Maint-Srvs-State 95 VALUE USR-Event-Id Loop-Back-cleared-on-channel 96 VALUE USR-Event-Id Loop-Back-on-channel 97 VALUE USR-Event-Id Telco-Abnormal-Response 98 VALUE USR-Event-Id DNS-Contact-Restored 99 VALUE USR-Event-Id DNS-Contact-Degraded 100 VALUE USR-Event-Id RADIUS-Accounting-Restored 101 VALUE USR-Event-Id RADIUS-Accounting-Group-Restore 102 VALUE USR-Event-Id RADIUS-Accounting-Group-Degrade 103 VALUE USR-Event-Id RADIUS-Accounting-Group-NonOper 104 VALUE USR-Event-Id T1/T1-E1/PRI-InCall-Fail-Event 119 VALUE USR-Event-Id T1/T1-E1/PRI-OutCall-Fail-Event 120 VALUE USR-Event-Id RMMIE-Retrain-Event 121 VALUE USR-Event-Id RMMIE-Speed-Shift-Event 122 VALUE USR-Event-Id CDMA-Call-Start 191 VALUE USR-Event-Id CDMA-Call-End 192 VALUE USR-Card-Type SlotEmpty 1 VALUE USR-Card-Type SlotUnknown 2 VALUE USR-Card-Type NetwMgtCard 3 VALUE USR-Card-Type DualT1NAC 4 VALUE USR-Card-Type DualModemNAC 5 VALUE USR-Card-Type QuadModemNAC 6 VALUE USR-Card-Type TrGatewayNAC 7 VALUE USR-Card-Type X25GatewayNAC 8 VALUE USR-Card-Type DualV34ModemNAC 9 VALUE USR-Card-Type QuadV32DigitalModemNAC 10 VALUE USR-Card-Type QuadV32AnalogModemNAC 11 VALUE USR-Card-Type QuadV32DigAnlModemNAC 12 VALUE USR-Card-Type QuadV34DigModemNAC 13 VALUE USR-Card-Type QuadV34AnlModemNAC 14 VALUE USR-Card-Type QuadV34DigAnlModemNAC 15 VALUE USR-Card-Type SingleT1NAC 16 VALUE USR-Card-Type EthernetGatewayNAC 17 VALUE USR-Card-Type AccessServer 18 VALUE USR-Card-Type 486TrGatewayNAC 19 VALUE USR-Card-Type 486EthernetGatewayNAC 20 VALUE USR-Card-Type DualRS232NAC 22 VALUE USR-Card-Type 486X25GatewayNAC 23 VALUE USR-Card-Type ApplicationServerNAC 25 VALUE USR-Card-Type ISDNGatewayNAC 26 VALUE USR-Card-Type ISDNpriT1NAC 27 VALUE USR-Card-Type ClkedNetMgtCard 28 VALUE USR-Card-Type ModemPoolManagementNAC 29 VALUE USR-Card-Type ModemPoolNetserverNAC 30 VALUE USR-Card-Type ModemPoolV34ModemNAC 31 VALUE USR-Card-Type ModemPoolISDNNAC 32 VALUE USR-Card-Type NTServerNAC 33 VALUE USR-Card-Type QuadV34DigitalG2NAC 34 VALUE USR-Card-Type QuadV34AnalogG2NAC 35 VALUE USR-Card-Type QuadV34DigAnlgG2NAC 36 VALUE USR-Card-Type NETServerFrameRelayNAC 37 VALUE USR-Card-Type NETServerTokenRingNAC 38 VALUE USR-Card-Type X2524ChannelNAC 39 VALUE USR-Card-Type WirelessGatewayNac 42 VALUE USR-Card-Type EnhancedAccessServer 44 VALUE USR-Card-Type EnhancedISDNGatewayNAC 45 VALUE USR-Card-Type DualT1NIC 1001 VALUE USR-Card-Type DualAlogMdmNIC 1002 VALUE USR-Card-Type QuadDgtlMdmNIC 1003 VALUE USR-Card-Type QuadAlogDgtlMdmNIC 1004 VALUE USR-Card-Type TokenRingNIC 1005 VALUE USR-Card-Type SingleT1NIC 1006 VALUE USR-Card-Type EthernetNIC 1007 VALUE USR-Card-Type ShortHaulDualT1NIC 1008 VALUE USR-Card-Type DualAlogMgdIntlMdmNIC 1009 VALUE USR-Card-Type X25NIC 1010 VALUE USR-Card-Type QuadAlogNonMgdMdmNIC 1011 VALUE USR-Card-Type QuadAlogMgdIntlMdmNIC 1012 VALUE USR-Card-Type QuadAlogNonMgdIntlMdmNIC 1013 VALUE USR-Card-Type QuadLsdLiMgdMdmNIC 1014 VALUE USR-Card-Type QuadLsdLiNonMgdMdmNIC 1015 VALUE USR-Card-Type QuadLsdLiMgdIntlMdmNIC 1016 VALUE USR-Card-Type QuadLsdLiNonMgdIntlMdmNIC 1017 VALUE USR-Card-Type HSEthernetWithV35NIC 1018 VALUE USR-Card-Type HSEthernetWithoutV35NIC 1019 VALUE USR-Card-Type DualHighSpeedV35NIC 1020 VALUE USR-Card-Type QuadV35RS232LowSpeedNIC 1021 VALUE USR-Card-Type DualE1NIC 1022 VALUE USR-Card-Type ShortHaulDualE1NIC 1023 VALUE USR-Card-Type BellcoreLongHaulDualT1NIC 1025 VALUE USR-Card-Type BellcoreShrtHaulDualT1NIC 1026 VALUE USR-Card-Type SCSIEdgeServerNIC 1027 VALUE USR-Default-DTE-Data-Rate 110-BPS 1 VALUE USR-Default-DTE-Data-Rate 300-BPS 2 VALUE USR-Default-DTE-Data-Rate 600-BPS 3 VALUE USR-Default-DTE-Data-Rate 1200-BPS 4 VALUE USR-Default-DTE-Data-Rate 2400-BPS 5 VALUE USR-Default-DTE-Data-Rate 4800-BPS 6 VALUE USR-Default-DTE-Data-Rate 7200-BPS 7 VALUE USR-Default-DTE-Data-Rate 9600-BPS 8 VALUE USR-Default-DTE-Data-Rate 12K-BPS 9 VALUE USR-Default-DTE-Data-Rate 14.4K-BPS 10 VALUE USR-Default-DTE-Data-Rate 16.8-BPS 11 VALUE USR-Default-DTE-Data-Rate 19.2K-BPS 12 VALUE USR-Default-DTE-Data-Rate 38.4K-BPS 13 VALUE USR-Default-DTE-Data-Rate 75-BPS 14 VALUE USR-Default-DTE-Data-Rate 450-BPS 15 VALUE USR-Default-DTE-Data-Rate UNKNOWN-BPS 16 VALUE USR-Default-DTE-Data-Rate 57.6K-BPS 17 VALUE USR-Default-DTE-Data-Rate 21.6K-BPS 18 VALUE USR-Default-DTE-Data-Rate 24K-BPS 19 VALUE USR-Default-DTE-Data-Rate 26K-BPS 20 VALUE USR-Default-DTE-Data-Rate 28K-BPS 21 VALUE USR-Default-DTE-Data-Rate 115K-BPS 22 VALUE USR-Initial-Rx-Link-Data-Rate 110-BPS 1 VALUE USR-Initial-Rx-Link-Data-Rate 300-BPS 2 VALUE USR-Initial-Rx-Link-Data-Rate 600-BPS 3 VALUE USR-Initial-Rx-Link-Data-Rate 1200-BPS 4 VALUE USR-Initial-Rx-Link-Data-Rate 2400-BPS 5 VALUE USR-Initial-Rx-Link-Data-Rate 4800-BPS 6 VALUE USR-Initial-Rx-Link-Data-Rate 7200-BPS 7 VALUE USR-Initial-Rx-Link-Data-Rate 9600-BPS 8 VALUE USR-Initial-Rx-Link-Data-Rate 12000-BPS 9 VALUE USR-Initial-Rx-Link-Data-Rate 14400-BPS 10 VALUE USR-Initial-Rx-Link-Data-Rate 16800-BPS 11 VALUE USR-Initial-Rx-Link-Data-Rate 19200-BPS 12 VALUE USR-Initial-Rx-Link-Data-Rate 38400-BPS 13 VALUE USR-Initial-Rx-Link-Data-Rate 75-BPS 14 VALUE USR-Initial-Rx-Link-Data-Rate 450-BPS 15 VALUE USR-Initial-Rx-Link-Data-Rate UNKNOWN-BPS 16 VALUE USR-Initial-Rx-Link-Data-Rate 57600-BPS 17 VALUE USR-Initial-Rx-Link-Data-Rate 21600-BPS 18 VALUE USR-Initial-Rx-Link-Data-Rate 24000-BPS 19 VALUE USR-Initial-Rx-Link-Data-Rate 26400-BPS 20 VALUE USR-Initial-Rx-Link-Data-Rate 28800-BPS 21 VALUE USR-Initial-Rx-Link-Data-Rate 115200-BPS 22 VALUE USR-Initial-Rx-Link-Data-Rate 31200-BPS 23 VALUE USR-Initial-Rx-Link-Data-Rate 33600-BPS 24 VALUE USR-Initial-Rx-Link-Data-Rate 25333-BPS 25 VALUE USR-Initial-Rx-Link-Data-Rate 26666-BPS 26 VALUE USR-Initial-Rx-Link-Data-Rate 28000-BPS 27 VALUE USR-Initial-Rx-Link-Data-Rate 29333-BPS 28 VALUE USR-Initial-Rx-Link-Data-Rate 30666-BPS 29 VALUE USR-Initial-Rx-Link-Data-Rate 32000-BPS 30 VALUE USR-Initial-Rx-Link-Data-Rate 33333-BPS 31 VALUE USR-Initial-Rx-Link-Data-Rate 34666-BPS 32 VALUE USR-Initial-Rx-Link-Data-Rate 36000-BPS 33 VALUE USR-Initial-Rx-Link-Data-Rate 37333-BPS 34 VALUE USR-Initial-Rx-Link-Data-Rate 38666-BPS 35 VALUE USR-Initial-Rx-Link-Data-Rate 40000-BPS 36 VALUE USR-Initial-Rx-Link-Data-Rate 41333-BPS 37 VALUE USR-Initial-Rx-Link-Data-Rate 42666-BPS 38 VALUE USR-Initial-Rx-Link-Data-Rate 44000-BPS 39 VALUE USR-Initial-Rx-Link-Data-Rate 45333-BPS 40 VALUE USR-Initial-Rx-Link-Data-Rate 46666-BPS 41 VALUE USR-Initial-Rx-Link-Data-Rate 48000-BPS 42 VALUE USR-Initial-Rx-Link-Data-Rate 49333-BPS 43 VALUE USR-Initial-Rx-Link-Data-Rate 50666-BPS 44 VALUE USR-Initial-Rx-Link-Data-Rate 52000-BPS 45 VALUE USR-Initial-Rx-Link-Data-Rate 53333-BPS 46 VALUE USR-Initial-Rx-Link-Data-Rate 54666-BPS 47 VALUE USR-Initial-Rx-Link-Data-Rate 56000-BPS 48 VALUE USR-Initial-Rx-Link-Data-Rate 57333-BPS 49 VALUE USR-Initial-Rx-Link-Data-Rate 58666-BPS 50 VALUE USR-Initial-Rx-Link-Data-Rate 60000-BPS 51 VALUE USR-Initial-Rx-Link-Data-Rate 61333-BPS 52 VALUE USR-Initial-Rx-Link-Data-Rate 62666-BPS 53 VALUE USR-Initial-Rx-Link-Data-Rate 64000-BPS 54 VALUE USR-Final-Rx-Link-Data-Rate 110-BPS 1 VALUE USR-Final-Rx-Link-Data-Rate 300-BPS 2 VALUE USR-Final-Rx-Link-Data-Rate 600-BPS 3 VALUE USR-Final-Rx-Link-Data-Rate 1200-BPS 4 VALUE USR-Final-Rx-Link-Data-Rate 2400-BPS 5 VALUE USR-Final-Rx-Link-Data-Rate 4800-BPS 6 VALUE USR-Final-Rx-Link-Data-Rate 7200-BPS 7 VALUE USR-Final-Rx-Link-Data-Rate 9600-BPS 8 VALUE USR-Final-Rx-Link-Data-Rate 12000-BPS 9 VALUE USR-Final-Rx-Link-Data-Rate 14400-BPS 10 VALUE USR-Final-Rx-Link-Data-Rate 16800-BPS 11 VALUE USR-Final-Rx-Link-Data-Rate 19200-BPS 12 VALUE USR-Final-Rx-Link-Data-Rate 38400-BPS 13 VALUE USR-Final-Rx-Link-Data-Rate 75-BPS 14 VALUE USR-Final-Rx-Link-Data-Rate 450-BPS 15 VALUE USR-Final-Rx-Link-Data-Rate UNKNOWN-BPS 16 VALUE USR-Final-Rx-Link-Data-Rate 57600-BPS 17 VALUE USR-Final-Rx-Link-Data-Rate 21600-BPS 18 VALUE USR-Final-Rx-Link-Data-Rate 24000-BPS 19 VALUE USR-Final-Rx-Link-Data-Rate 26400-BPS 20 VALUE USR-Final-Rx-Link-Data-Rate 28800-BPS 21 VALUE USR-Final-Rx-Link-Data-Rate 115200-BPS 22 VALUE USR-Final-Rx-Link-Data-Rate 31200-BPS 23 VALUE USR-Final-Rx-Link-Data-Rate 33600-BPS 24 VALUE USR-Final-Rx-Link-Data-Rate 25333-BPS 25 VALUE USR-Final-Rx-Link-Data-Rate 26666-BPS 26 VALUE USR-Final-Rx-Link-Data-Rate 28000-BPS 27 VALUE USR-Final-Rx-Link-Data-Rate 29333-BPS 28 VALUE USR-Final-Rx-Link-Data-Rate 30666-BPS 29 VALUE USR-Final-Rx-Link-Data-Rate 32000-BPS 30 VALUE USR-Final-Rx-Link-Data-Rate 33333-BPS 31 VALUE USR-Final-Rx-Link-Data-Rate 34666-BPS 32 VALUE USR-Final-Rx-Link-Data-Rate 36000-BPS 33 VALUE USR-Final-Rx-Link-Data-Rate 37333-BPS 34 VALUE USR-Final-Rx-Link-Data-Rate 38666-BPS 35 VALUE USR-Final-Rx-Link-Data-Rate 40000-BPS 36 VALUE USR-Final-Rx-Link-Data-Rate 41333-BPS 37 VALUE USR-Final-Rx-Link-Data-Rate 42666-BPS 38 VALUE USR-Final-Rx-Link-Data-Rate 44000-BPS 39 VALUE USR-Final-Rx-Link-Data-Rate 45333-BPS 40 VALUE USR-Final-Rx-Link-Data-Rate 46666-BPS 41 VALUE USR-Final-Rx-Link-Data-Rate 48000-BPS 42 VALUE USR-Final-Rx-Link-Data-Rate 49333-BPS 43 VALUE USR-Final-Rx-Link-Data-Rate 50666-BPS 44 VALUE USR-Final-Rx-Link-Data-Rate 52000-BPS 45 VALUE USR-Final-Rx-Link-Data-Rate 53333-BPS 46 VALUE USR-Final-Rx-Link-Data-Rate 54666-BPS 47 VALUE USR-Final-Rx-Link-Data-Rate 56000-BPS 48 VALUE USR-Final-Rx-Link-Data-Rate 57333-BPS 49 VALUE USR-Final-Rx-Link-Data-Rate 58666-BPS 50 VALUE USR-Final-Rx-Link-Data-Rate 60000-BPS 51 VALUE USR-Final-Rx-Link-Data-Rate 61333-BPS 52 VALUE USR-Final-Rx-Link-Data-Rate 62666-BPS 53 VALUE USR-Final-Rx-Link-Data-Rate 64000-BPS 54 VALUE USR-Initial-Tx-Link-Data-Rate 110-BPS 1 VALUE USR-Initial-Tx-Link-Data-Rate 300-BPS 2 VALUE USR-Initial-Tx-Link-Data-Rate 600-BPS 3 VALUE USR-Initial-Tx-Link-Data-Rate 1200-BPS 4 VALUE USR-Initial-Tx-Link-Data-Rate 2400-BPS 5 VALUE USR-Initial-Tx-Link-Data-Rate 4800-BPS 6 VALUE USR-Initial-Tx-Link-Data-Rate 7200-BPS 7 VALUE USR-Initial-Tx-Link-Data-Rate 9600-BPS 8 VALUE USR-Initial-Tx-Link-Data-Rate 12000-BPS 9 VALUE USR-Initial-Tx-Link-Data-Rate 14400-BPS 10 VALUE USR-Initial-Tx-Link-Data-Rate 16800-BPS 11 VALUE USR-Initial-Tx-Link-Data-Rate 19200-BPS 12 VALUE USR-Initial-Tx-Link-Data-Rate 38400-BPS 13 VALUE USR-Initial-Tx-Link-Data-Rate 75-BPS 14 VALUE USR-Initial-Tx-Link-Data-Rate 450-BPS 15 VALUE USR-Initial-Tx-Link-Data-Rate UNKNOWN-BPS 16 VALUE USR-Initial-Tx-Link-Data-Rate 57600-BPS 17 VALUE USR-Initial-Tx-Link-Data-Rate 21600-BPS 18 VALUE USR-Initial-Tx-Link-Data-Rate 24000-BPS 19 VALUE USR-Initial-Tx-Link-Data-Rate 26400-BPS 20 VALUE USR-Initial-Tx-Link-Data-Rate 28800-BPS 21 VALUE USR-Initial-Tx-Link-Data-Rate 115200-BPS 22 VALUE USR-Initial-Tx-Link-Data-Rate 31200-BPS 23 VALUE USR-Initial-Tx-Link-Data-Rate 33600-BPS 24 VALUE USR-Initial-Tx-Link-Data-Rate 25333-BPS 25 VALUE USR-Initial-Tx-Link-Data-Rate 26666-BPS 26 VALUE USR-Initial-Tx-Link-Data-Rate 28000-BPS 27 VALUE USR-Initial-Tx-Link-Data-Rate 29333-BPS 28 VALUE USR-Initial-Tx-Link-Data-Rate 30666-BPS 29 VALUE USR-Initial-Tx-Link-Data-Rate 32000-BPS 30 VALUE USR-Initial-Tx-Link-Data-Rate 33333-BPS 31 VALUE USR-Initial-Tx-Link-Data-Rate 34666-BPS 32 VALUE USR-Initial-Tx-Link-Data-Rate 36000-BPS 33 VALUE USR-Initial-Tx-Link-Data-Rate 37333-BPS 34 VALUE USR-Initial-Tx-Link-Data-Rate 38666-BPS 35 VALUE USR-Initial-Tx-Link-Data-Rate 40000-BPS 36 VALUE USR-Initial-Tx-Link-Data-Rate 41333-BPS 37 VALUE USR-Initial-Tx-Link-Data-Rate 42666-BPS 38 VALUE USR-Initial-Tx-Link-Data-Rate 44000-BPS 39 VALUE USR-Initial-Tx-Link-Data-Rate 45333-BPS 40 VALUE USR-Initial-Tx-Link-Data-Rate 46666-BPS 41 VALUE USR-Initial-Tx-Link-Data-Rate 48000-BPS 42 VALUE USR-Initial-Tx-Link-Data-Rate 49333-BPS 43 VALUE USR-Initial-Tx-Link-Data-Rate 50666-BPS 44 VALUE USR-Initial-Tx-Link-Data-Rate 52000-BPS 45 VALUE USR-Initial-Tx-Link-Data-Rate 53333-BPS 46 VALUE USR-Initial-Tx-Link-Data-Rate 54666-BPS 47 VALUE USR-Initial-Tx-Link-Data-Rate 56000-BPS 48 VALUE USR-Initial-Tx-Link-Data-Rate 57333-BPS 49 VALUE USR-Initial-Tx-Link-Data-Rate 58666-BPS 50 VALUE USR-Initial-Tx-Link-Data-Rate 60000-BPS 51 VALUE USR-Initial-Tx-Link-Data-Rate 61333-BPS 52 VALUE USR-Initial-Tx-Link-Data-Rate 62666-BPS 53 VALUE USR-Initial-Tx-Link-Data-Rate 64000-BPS 54 VALUE USR-Final-Tx-Link-Data-Rate 110-BPS 1 VALUE USR-Final-Tx-Link-Data-Rate 300-BPS 2 VALUE USR-Final-Tx-Link-Data-Rate 600-BPS 3 VALUE USR-Final-Tx-Link-Data-Rate 1200-BPS 4 VALUE USR-Final-Tx-Link-Data-Rate 2400-BPS 5 VALUE USR-Final-Tx-Link-Data-Rate 4800-BPS 6 VALUE USR-Final-Tx-Link-Data-Rate 7200-BPS 7 VALUE USR-Final-Tx-Link-Data-Rate 9600-BPS 8 VALUE USR-Final-Tx-Link-Data-Rate 12000-BPS 9 VALUE USR-Final-Tx-Link-Data-Rate 14400-BPS 10 VALUE USR-Final-Tx-Link-Data-Rate 16800-BPS 11 VALUE USR-Final-Tx-Link-Data-Rate 19200-BPS 12 VALUE USR-Final-Tx-Link-Data-Rate 38400-BPS 13 VALUE USR-Final-Tx-Link-Data-Rate 75-BPS 14 VALUE USR-Final-Tx-Link-Data-Rate 450-BPS 15 VALUE USR-Final-Tx-Link-Data-Rate UNKNOWN-BPS 16 VALUE USR-Final-Tx-Link-Data-Rate 57600-BPS 17 VALUE USR-Final-Tx-Link-Data-Rate 21600-BPS 18 VALUE USR-Final-Tx-Link-Data-Rate 24000-BPS 19 VALUE USR-Final-Tx-Link-Data-Rate 26400-BPS 20 VALUE USR-Final-Tx-Link-Data-Rate 28800-BPS 21 VALUE USR-Final-Tx-Link-Data-Rate 115200-BPS 22 VALUE USR-Final-Tx-Link-Data-Rate 31200-BPS 23 VALUE USR-Final-Tx-Link-Data-Rate 33600-BPS 24 VALUE USR-Final-Tx-Link-Data-Rate 25333-BPS 25 VALUE USR-Final-Tx-Link-Data-Rate 26666-BPS 26 VALUE USR-Final-Tx-Link-Data-Rate 28000-BPS 27 VALUE USR-Final-Tx-Link-Data-Rate 29333-BPS 28 VALUE USR-Final-Tx-Link-Data-Rate 30666-BPS 29 VALUE USR-Final-Tx-Link-Data-Rate 32000-BPS 30 VALUE USR-Final-Tx-Link-Data-Rate 33333-BPS 31 VALUE USR-Final-Tx-Link-Data-Rate 34666-BPS 32 VALUE USR-Final-Tx-Link-Data-Rate 36000-BPS 33 VALUE USR-Final-Tx-Link-Data-Rate 37333-BPS 34 VALUE USR-Final-Tx-Link-Data-Rate 38666-BPS 35 VALUE USR-Final-Tx-Link-Data-Rate 40000-BPS 36 VALUE USR-Final-Tx-Link-Data-Rate 41333-BPS 37 VALUE USR-Final-Tx-Link-Data-Rate 42666-BPS 38 VALUE USR-Final-Tx-Link-Data-Rate 44000-BPS 39 VALUE USR-Final-Tx-Link-Data-Rate 45333-BPS 40 VALUE USR-Final-Tx-Link-Data-Rate 46666-BPS 41 VALUE USR-Final-Tx-Link-Data-Rate 48000-BPS 42 VALUE USR-Final-Tx-Link-Data-Rate 49333-BPS 43 VALUE USR-Final-Tx-Link-Data-Rate 50666-BPS 44 VALUE USR-Final-Tx-Link-Data-Rate 52000-BPS 45 VALUE USR-Final-Tx-Link-Data-Rate 53333-BPS 46 VALUE USR-Final-Tx-Link-Data-Rate 54666-BPS 47 VALUE USR-Final-Tx-Link-Data-Rate 56000-BPS 48 VALUE USR-Final-Tx-Link-Data-Rate 57333-BPS 49 VALUE USR-Final-Tx-Link-Data-Rate 58666-BPS 50 VALUE USR-Final-Tx-Link-Data-Rate 60000-BPS 51 VALUE USR-Final-Tx-Link-Data-Rate 61333-BPS 52 VALUE USR-Final-Tx-Link-Data-Rate 62666-BPS 53 VALUE USR-Final-Tx-Link-Data-Rate 64000-BPS 54 # Value Connect Speed /* Added by Krish */ VALUE USR-Connect-Speed NONE 0 VALUE USR-Connect-Speed 300_BPS 1 VALUE USR-Connect-Speed 1200_BPS 2 VALUE USR-Connect-Speed 2400_BPS 3 VALUE USR-Connect-Speed 4800_BPS 4 VALUE USR-Connect-Speed 7200_BPS 5 VALUE USR-Connect-Speed 9600_BPS 6 VALUE USR-Connect-Speed 12000_BPS 7 VALUE USR-Connect-Speed 14400_BPS 8 VALUE USR-Connect-Speed 16800_BPS 9 VALUE USR-Connect-Speed 19200_BPS 10 VALUE USR-Connect-Speed 21600_BPS 11 VALUE USR-Connect-Speed 28800_BPS 12 VALUE USR-Connect-Speed 38400_BPS 13 VALUE USR-Connect-Speed 57600_BPS 14 VALUE USR-Connect-Speed 44000_BPS 27 VALUE USR-Connect-Speed 45333_BPS 28 VALUE USR-Connect-Speed 46666_BPS 29 VALUE USR-Connect-Speed 48000_BPS 30 VALUE USR-Connect-Speed 49333_BPS 31 VALUE USR-Connect-Speed 50666_BPS 32 VALUE USR-Connect-Speed 52000_BPS 33 VALUE USR-Connect-Speed 53333_BPS 34 VALUE USR-Connect-Speed 54666_BPS 35 VALUE USR-Connect-Speed 56000_BPS 36 VALUE USR-Connect-Speed 57333_BPS 37 VALUE USR-Connect-Speed 64000_BPS 38 VALUE USR-Connect-Speed 25333_BPS 39 VALUE USR-Connect-Speed 26666_BPS 40 VALUE USR-Connect-Speed 28000_BPS 41 VALUE USR-Connect-Speed 115200_BPS 15 VALUE USR-Connect-Speed 288000_BPS 16 VALUE USR-Connect-Speed 75_1200_BPS 17 VALUE USR-Connect-Speed 1200_75_BPS 18 VALUE USR-Connect-Speed 24000_BPS 19 VALUE USR-Connect-Speed 26400_BPS 20 VALUE USR-Connect-Speed 31200_BPS 21 VALUE USR-Connect-Speed 33600_BPS 22 VALUE USR-Connect-Speed 33333_BPS 23 VALUE USR-Connect-Speed 37333_BPS 24 VALUE USR-Connect-Speed 41333_BPS 25 VALUE USR-Connect-Speed 42666_BPS 26 VALUE USR-Connect-Speed 29333_BPS 42 VALUE USR-Connect-Speed 30666_BPS 43 VALUE USR-Connect-Speed 32000_BPS 44 VALUE USR-Connect-Speed 34666_BPS 45 VALUE USR-Connect-Speed 36000_BPS 46 VALUE USR-Connect-Speed 38666_BPS 47 VALUE USR-Connect-Speed 40000_BPS 48 VALUE USR-Connect-Speed 58666_BPS 49 VALUE USR-Connect-Speed 60000_BPS 50 VALUE USR-Connect-Speed 61333_BPS 51 VALUE USR-Connect-Speed 62666_BPS 52 # End of Connect-Speed / * Added by Krish */ # VALUE USR-Sync-Async-Mode Asynchronous 1 VALUE USR-Sync-Async-Mode Synchronous 2 VALUE USR-Originate-Answer-Mode Originate_in_Originate_Mode 1 VALUE USR-Originate-Answer-Mode Originate_in_Answer_Mode 2 VALUE USR-Originate-Answer-Mode Answer_in_Originate_Mode 3 VALUE USR-Originate-Answer-Mode Answer_in_Answer_Mode 4 VALUE USR-Modulation-Type usRoboticsHST 1 VALUE USR-Modulation-Type ccittV32 2 VALUE USR-Modulation-Type ccittV22bis 3 VALUE USR-Modulation-Type bell103 4 VALUE USR-Modulation-Type ccittV21 5 VALUE USR-Modulation-Type bell212 6 VALUE USR-Modulation-Type ccittV32bis 7 VALUE USR-Modulation-Type ccittV23 8 VALUE USR-Modulation-Type negotiationFailed 9 VALUE USR-Modulation-Type bell208b 10 VALUE USR-Modulation-Type v21FaxClass1 11 VALUE USR-Modulation-Type v27FaxClass1 12 VALUE USR-Modulation-Type v29FaxClass1 13 VALUE USR-Modulation-Type v17FaxClass1 14 VALUE USR-Modulation-Type v21FaxClass2 15 VALUE USR-Modulation-Type v27FaxClass2 16 VALUE USR-Modulation-Type v29FaxClass2 17 VALUE USR-Modulation-Type v17FaxClass2 18 VALUE USR-Modulation-Type v32Terbo 19 VALUE USR-Modulation-Type v34 20 VALUE USR-Modulation-Type vFC 21 VALUE USR-Modulation-Type v34plus 22 VALUE USR-Modulation-Type x2 23 VALUE USR-Modulation-Type v110 24 VALUE USR-Modulation-Type v120 25 VALUE USR-Modulation-Type x75 26 VALUE USR-Modulation-Type asyncSyncPPP 27 VALUE USR-Modulation-Type clearChannel 28 VALUE USR-Modulation-Type x2client 29 VALUE USR-Modulation-Type x2symmetric 30 VALUE USR-Modulation-Type piafs 31 VALUE USR-Modulation-Type x2version2 32 VALUE USR-Modulation-Type v90Analog 33 VALUE USR-Modulation-Type v90Digital 34 VALUE USR-Modulation-Type v90AllDigital 35 VALUE Initial-Modulation-Type usRoboticsHST 1 VALUE Initial-Modulation-Type ccittV32 2 VALUE Initial-Modulation-Type ccittV22bis 3 VALUE Initial-Modulation-Type bell103 4 VALUE Initial-Modulation-Type ccittV21 5 VALUE Initial-Modulation-Type bell212 6 VALUE Initial-Modulation-Type ccittV32bis 7 VALUE Initial-Modulation-Type ccittV23 8 VALUE Initial-Modulation-Type negotiationFailed 9 VALUE Initial-Modulation-Type bell208b 10 VALUE Initial-Modulation-Type v21FaxClass1 11 VALUE Initial-Modulation-Type v27FaxClass1 12 VALUE Initial-Modulation-Type v29FaxClass1 13 VALUE Initial-Modulation-Type v17FaxClass1 14 VALUE Initial-Modulation-Type v21FaxClass2 15 VALUE Initial-Modulation-Type v27FaxClass2 16 VALUE Initial-Modulation-Type v29FaxClass2 17 VALUE Initial-Modulation-Type v17FaxClass2 18 VALUE Initial-Modulation-Type v32Terbo 19 VALUE Initial-Modulation-Type v34 20 VALUE Initial-Modulation-Type vFC 21 VALUE Initial-Modulation-Type v34plus 22 VALUE Initial-Modulation-Type x2 23 VALUE Initial-Modulation-Type v110 24 VALUE Initial-Modulation-Type v120 25 VALUE Initial-Modulation-Type x75 26 VALUE Initial-Modulation-Type asyncSyncPPP 27 VALUE Initial-Modulation-Type clearChannel 28 VALUE Initial-Modulation-Type x2client 29 VALUE Initial-Modulation-Type x2symmetric 30 VALUE Initial-Modulation-Type piafs 31 VALUE Initial-Modulation-Type x2version2 32 VALUE Initial-Modulation-Type v90Analogue 33 VALUE Initial-Modulation-Type v90Digital 34 VALUE Initial-Modulation-Type v90AllDigital 35 VALUE USR-Connect-Term-Reason dtrDrop 1 VALUE USR-Connect-Term-Reason escapeSequence 2 VALUE USR-Connect-Term-Reason athCommand 3 VALUE USR-Connect-Term-Reason carrierLoss 4 VALUE USR-Connect-Term-Reason inactivityTimout 5 VALUE USR-Connect-Term-Reason mnpIncompatible 6 VALUE USR-Connect-Term-Reason undefined 7 VALUE USR-Connect-Term-Reason remotePassword 8 VALUE USR-Connect-Term-Reason linkPassword 9 VALUE USR-Connect-Term-Reason retransmitLimit 10 VALUE USR-Connect-Term-Reason linkDisconnectMsgReceived 11 VALUE USR-Connect-Term-Reason noLoopCurrent 12 VALUE USR-Connect-Term-Reason invalidSpeed 13 VALUE USR-Connect-Term-Reason unableToRetrain 14 VALUE USR-Connect-Term-Reason managementCommand 15 VALUE USR-Connect-Term-Reason noDialTone 16 VALUE USR-Connect-Term-Reason keyAbort 17 VALUE USR-Connect-Term-Reason lineBusy 18 VALUE USR-Connect-Term-Reason noAnswer 19 VALUE USR-Connect-Term-Reason voice 20 VALUE USR-Connect-Term-Reason noAnswerTone 21 VALUE USR-Connect-Term-Reason noCarrier 22 VALUE USR-Connect-Term-Reason undetermined 23 VALUE USR-Connect-Term-Reason v42SabmeTimeout 24 VALUE USR-Connect-Term-Reason v42BreakTimeout 25 VALUE USR-Connect-Term-Reason v42DisconnectCmd 26 VALUE USR-Connect-Term-Reason v42IdExchangeFail 27 VALUE USR-Connect-Term-Reason v42BadSetup 28 VALUE USR-Connect-Term-Reason v42InvalidCodeWord 29 VALUE USR-Connect-Term-Reason v42StringToLong 30 VALUE USR-Connect-Term-Reason v42InvalidCommand 31 VALUE USR-Connect-Term-Reason none 32 VALUE USR-Connect-Term-Reason v32Cleardown 33 VALUE USR-Connect-Term-Reason dialSecurity 34 VALUE USR-Connect-Term-Reason remoteAccessDenied 35 VALUE USR-Connect-Term-Reason loopLoss 36 VALUE USR-Connect-Term-Reason ds0Teardown 37 VALUE USR-Connect-Term-Reason promptNotEnabled 38 VALUE USR-Connect-Term-Reason noPromptingInSync 39 VALUE USR-Connect-Term-Reason nonArqMode 40 VALUE USR-Connect-Term-Reason modeIncompatible 41 VALUE USR-Connect-Term-Reason noPromptInNonARQ 42 VALUE USR-Connect-Term-Reason dialBackLink 43 VALUE USR-Connect-Term-Reason linkAbort 44 VALUE USR-Connect-Term-Reason autopassFailed 45 VALUE USR-Connect-Term-Reason pbGenericError 46 VALUE USR-Connect-Term-Reason pbLinkErrTxPreAck 47 VALUE USR-Connect-Term-Reason pbLinkErrTxTardyACK 48 VALUE USR-Connect-Term-Reason pbTransmitBusTimeout 49 VALUE USR-Connect-Term-Reason pbReceiveBusTimeout 50 VALUE USR-Connect-Term-Reason pbLinkErrTxTAL 51 VALUE USR-Connect-Term-Reason pbLinkErrRxTAL 52 VALUE USR-Connect-Term-Reason pbTransmitMasterTimeout 53 VALUE USR-Connect-Term-Reason pbClockMissing 54 VALUE USR-Connect-Term-Reason pbReceivedLsWhileLinkUp 55 VALUE USR-Connect-Term-Reason pbOutOfSequenceFrame 56 VALUE USR-Connect-Term-Reason pbBadFrame 57 VALUE USR-Connect-Term-Reason pbAckWaitTimeout 58 VALUE USR-Connect-Term-Reason pbReceivedAckSeqErr 59 VALUE USR-Connect-Term-Reason pbReceiveOvrflwRNRFail 60 VALUE USR-Connect-Term-Reason pbReceiveMsgBufOvrflw 61 VALUE USR-Connect-Term-Reason rcvdGatewayDiscCmd 62 VALUE USR-Connect-Term-Reason tokenPassingTimeout 63 VALUE USR-Connect-Term-Reason dspInterruptTimeout 64 VALUE USR-Connect-Term-Reason mnpProtocolViolation 65 VALUE USR-Connect-Term-Reason class2FaxHangupCmd 66 VALUE USR-Connect-Term-Reason hstSpeedSwitchTimeout 67 VALUE USR-Connect-Term-Reason tooManyUnacked 68 VALUE USR-Connect-Term-Reason timerExpired 69 VALUE USR-Connect-Term-Reason t1Glare 70 VALUE USR-Connect-Term-Reason priDialoutRqTimeout 71 VALUE USR-Connect-Term-Reason abortAnlgDstOvrIsdn 72 VALUE USR-Connect-Term-Reason normalUserCallClear 73 VALUE USR-Connect-Term-Reason normalUnspecified 74 VALUE USR-Connect-Term-Reason bearerIncompatibility 75 VALUE USR-Connect-Term-Reason protocolErrorEvent 76 VALUE USR-Connect-Term-Reason abnormalDisconnect 77 VALUE USR-Connect-Term-Reason invalidCauseValue 78 VALUE USR-Connect-Term-Reason resourceUnavailable 79 VALUE USR-Connect-Term-Reason remoteHungUpDuringTraining 80 VALUE USR-Connect-Term-Reason trainingTimeout 81 VALUE USR-Connect-Term-Reason incomingModemNotAvailable 82 VALUE USR-Connect-Term-Reason incomingInvalidBearerCap 83 VALUE USR-Connect-Term-Reason incomingInvalidChannelID 84 VALUE USR-Connect-Term-Reason incomingInvalidProgInd 85 VALUE USR-Connect-Term-Reason incomingInvalidCallingPty 86 VALUE USR-Connect-Term-Reason incomingInvalidCalledPty 87 VALUE USR-Connect-Term-Reason incomingCallBlock 88 VALUE USR-Connect-Term-Reason incomingLoopStNoRingOff 89 VALUE USR-Connect-Term-Reason outgoingTelcoDisconnect 90 VALUE USR-Connect-Term-Reason outgoingEMWinkTimeout 91 VALUE USR-Connect-Term-Reason outgoingEMWinkTooShort 92 VALUE USR-Connect-Term-Reason outgoingNoChannelAvail 93 VALUE USR-Connect-Term-Reason dspReboot 94 VALUE USR-Connect-Term-Reason noDSPRespToKA 95 VALUE USR-Connect-Term-Reason noDSPRespToDisc 96 VALUE USR-Connect-Term-Reason dspTailPtrInvalid 97 VALUE USR-Connect-Term-Reason dspHeadPtrInvalid 98 VALUE USR-Failure-to-Connect-Reason dtrDrop 1 VALUE USR-Failure-to-Connect-Reason escapeSequence 2 VALUE USR-Failure-to-Connect-Reason athCommand 3 VALUE USR-Failure-to-Connect-Reason carrierLoss 4 VALUE USR-Failure-to-Connect-Reason inactivityTimout 5 VALUE USR-Failure-to-Connect-Reason mnpIncompatible 6 VALUE USR-Failure-to-Connect-Reason undefined 7 VALUE USR-Failure-to-Connect-Reason remotePassword 8 VALUE USR-Failure-to-Connect-Reason linkPassword 9 VALUE USR-Failure-to-Connect-Reason retransmitLimit 10 VALUE USR-Failure-to-Connect-Reason linkDisconnectMsgRec 11 VALUE USR-Failure-to-Connect-Reason noLoopCurrent 12 VALUE USR-Failure-to-Connect-Reason invalidSpeed 13 VALUE USR-Failure-to-Connect-Reason unableToRetrain 14 VALUE USR-Failure-to-Connect-Reason managementCommand 15 VALUE USR-Failure-to-Connect-Reason noDialTone 16 VALUE USR-Failure-to-Connect-Reason keyAbort 17 VALUE USR-Failure-to-Connect-Reason lineBusy 18 VALUE USR-Failure-to-Connect-Reason noAnswer 19 VALUE USR-Failure-to-Connect-Reason voice 20 VALUE USR-Failure-to-Connect-Reason noAnswerTone 21 VALUE USR-Failure-to-Connect-Reason noCarrier 22 VALUE USR-Failure-to-Connect-Reason undetermined 23 VALUE USR-Failure-to-Connect-Reason v42SabmeTimeout 24 VALUE USR-Failure-to-Connect-Reason v42BreakTimeout 25 VALUE USR-Failure-to-Connect-Reason v42DisconnectCmd 26 VALUE USR-Failure-to-Connect-Reason v42IdExchangeFail 27 VALUE USR-Failure-to-Connect-Reason v42BadSetup 28 VALUE USR-Failure-to-Connect-Reason v42InvalidCodeWord 29 VALUE USR-Failure-to-Connect-Reason v42StringToLong 30 VALUE USR-Failure-to-Connect-Reason v42InvalidCommand 31 VALUE USR-Failure-to-Connect-Reason none 32 VALUE USR-Failure-to-Connect-Reason v32Cleardown 33 VALUE USR-Failure-to-Connect-Reason dialSecurity 34 VALUE USR-Failure-to-Connect-Reason remoteAccessDenied 35 VALUE USR-Failure-to-Connect-Reason loopLoss 36 VALUE USR-Failure-to-Connect-Reason ds0Teardown 37 VALUE USR-Failure-to-Connect-Reason promptNotEnabled 38 VALUE USR-Failure-to-Connect-Reason noPromptingInSync 39 VALUE USR-Failure-to-Connect-Reason nonArqMode 40 VALUE USR-Failure-to-Connect-Reason modeIncompatible 41 VALUE USR-Failure-to-Connect-Reason noPromptInNonARQ 42 VALUE USR-Failure-to-Connect-Reason dialBackLink 43 VALUE USR-Failure-to-Connect-Reason linkAbort 44 VALUE USR-Failure-to-Connect-Reason autopassFailed 45 VALUE USR-Failure-to-Connect-Reason pbGenericError 46 VALUE USR-Failure-to-Connect-Reason pbLinkErrTxPreAck 47 VALUE USR-Failure-to-Connect-Reason pbLinkErrTxTardyACK 48 VALUE USR-Failure-to-Connect-Reason pbTransmitBusTimeout 49 VALUE USR-Failure-to-Connect-Reason pbReceiveBusTimeout 50 VALUE USR-Failure-to-Connect-Reason pbLinkErrTxTAL 51 VALUE USR-Failure-to-Connect-Reason pbLinkErrRxTAL 52 VALUE USR-Failure-to-Connect-Reason pbTransmitMasterTimeout 53 VALUE USR-Failure-to-Connect-Reason pbClockMissing 54 VALUE USR-Failure-to-Connect-Reason pbReceivedLsWhileLinkUp 55 VALUE USR-Failure-to-Connect-Reason pbOutOfSequenceFrame 56 VALUE USR-Failure-to-Connect-Reason pbBadFrame 57 VALUE USR-Failure-to-Connect-Reason pbAckWaitTimeout 58 VALUE USR-Failure-to-Connect-Reason pbReceivedAckSeqErr 59 VALUE USR-Failure-to-Connect-Reason pbReceiveOvrflwRNRFail 60 VALUE USR-Failure-to-Connect-Reason pbReceiveMsgBufOvrflw 61 VALUE USR-Failure-to-Connect-Reason rcvdGatewayDiscCmd 62 VALUE USR-Failure-to-Connect-Reason tokenPassingTimeout 63 VALUE USR-Failure-to-Connect-Reason dspInterruptTimeout 64 VALUE USR-Failure-to-Connect-Reason mnpProtocolViolation 65 VALUE USR-Failure-to-Connect-Reason class2FaxHangupCmd 66 VALUE USR-Failure-to-Connect-Reason hstSpeedSwitchTimeout 67 VALUE USR-Failure-to-Connect-Reason tooManyUnacked 68 VALUE USR-Failure-to-Connect-Reason timerExpired 69 VALUE USR-Failure-to-Connect-Reason t1Glare 70 VALUE USR-Failure-to-Connect-Reason priDialoutRqTimeout 71 VALUE USR-Failure-to-Connect-Reason abortAnlgDstOvrIsdn 72 VALUE USR-Failure-to-Connect-Reason normalUserCallClear 73 VALUE USR-Failure-to-Connect-Reason normalUnspecified 74 VALUE USR-Failure-to-Connect-Reason bearerIncompatibility 75 VALUE USR-Failure-to-Connect-Reason protocolErrorEvent 76 VALUE USR-Failure-to-Connect-Reason abnormalDisconnect 77 VALUE USR-Failure-to-Connect-Reason invalidCauseValue 78 VALUE USR-Failure-to-Connect-Reason resourceUnavailable 79 VALUE USR-Failure-to-Connect-Reason remoteHungUpDuringTraining 80 VALUE USR-Failure-to-Connect-Reason trainingTimeout 81 VALUE USR-Failure-to-Connect-Reason incomingModemNotAvailable 82 VALUE USR-Failure-to-Connect-Reason incomingInvalidBearerCap 83 VALUE USR-Failure-to-Connect-Reason incomingInvalidChannelID 84 VALUE USR-Failure-to-Connect-Reason incomingInvalidProgInd 85 VALUE USR-Failure-to-Connect-Reason incomingInvalidCallingPty 86 VALUE USR-Failure-to-Connect-Reason incomingInvalidCalledPty 87 VALUE USR-Failure-to-Connect-Reason incomingCallBlock 88 VALUE USR-Failure-to-Connect-Reason incomingLoopStNoRingOff 89 VALUE USR-Failure-to-Connect-Reason outgoingTelcoDisconnect 90 VALUE USR-Failure-to-Connect-Reason outgoingEMWinkTimeout 91 VALUE USR-Failure-to-Connect-Reason outgoingEMWinkTooShort 92 VALUE USR-Failure-to-Connect-Reason outgoingNoChannelAvail 93 VALUE USR-Failure-to-Connect-Reason dspReboot 94 VALUE USR-Failure-to-Connect-Reason noDSPRespToKA 95 VALUE USR-Failure-to-Connect-Reason noDSPRespToDisc 96 VALUE USR-Failure-to-Connect-Reason dspTailPtrInvalid 97 VALUE USR-Failure-to-Connect-Reason dspHeadPtrInvalid 98 VALUE USR-Simplified-MNP-Levels none 1 VALUE USR-Simplified-MNP-Levels mnpLevel3 2 VALUE USR-Simplified-MNP-Levels mnpLevel4 3 VALUE USR-Simplified-MNP-Levels ccittV42 4 VALUE USR-Simplified-MNP-Levels usRoboticsHST 5 VALUE USR-Simplified-MNP-Levels synchronousNone 6 VALUE USR-Simplified-MNP-Levels mnpLevel2 7 VALUE USR-Simplified-MNP-Levels mnp10 8 VALUE USR-Simplified-MNP-Levels v42Etc 9 VALUE USR-Simplified-MNP-Levels mnp10Etc 10 VALUE USR-Simplified-MNP-Levels lapmEtc 11 VALUE USR-Simplified-MNP-Levels v42Etc2 12 VALUE USR-Simplified-MNP-Levels v42SRej 13 VALUE USR-Simplified-MNP-Levels piafs 14 VALUE USR-Simplified-V42bis-Usage none 1 VALUE USR-Simplified-V42bis-Usage ccittV42bis 2 VALUE USR-Simplified-V42bis-Usage mnpLevel5 3 VALUE USR-Equalization-Type Long 1 VALUE USR-Equalization-Type Short 2 VALUE USR-Fallback-Enabled Disabled 1 VALUE USR-Fallback-Enabled Enabled 2 VALUE USR-Back-Channel-Data-Rate 450BPS 1 VALUE USR-Back-Channel-Data-Rate 300BPS 2 VALUE USR-Back-Channel-Data-Rate None 3 VALUE USR-Device-Connected-To None 1 VALUE USR-Device-Connected-To isdnGateway 2 VALUE USR-Device-Connected-To quadModem 3 VALUE USR-Call-Event-Code notSupported 1 VALUE USR-Call-Event-Code setup 2 VALUE USR-Call-Event-Code usrSetup 3 VALUE USR-Call-Event-Code telcoDisconnect 4 VALUE USR-Call-Event-Code usrDisconnect 5 VALUE USR-Call-Event-Code noFreeModem 6 VALUE USR-Call-Event-Code modemsNotAllowed 7 VALUE USR-Call-Event-Code modemsRejectCall 8 VALUE USR-Call-Event-Code modemSetupTimeout 9 VALUE USR-Call-Event-Code noFreeIGW 10 VALUE USR-Call-Event-Code igwRejectCall 11 VALUE USR-Call-Event-Code igwSetupTimeout 12 VALUE USR-Call-Event-Code noFreeTdmts 13 VALUE USR-Call-Event-Code bcReject 14 VALUE USR-Call-Event-Code ieReject 15 VALUE USR-Call-Event-Code chidReject 16 VALUE USR-Call-Event-Code progReject 17 VALUE USR-Call-Event-Code callingPartyReject 18 VALUE USR-Call-Event-Code calledPartyReject 19 VALUE USR-Call-Event-Code blocked 20 VALUE USR-Call-Event-Code analogBlocked 21 VALUE USR-Call-Event-Code digitalBlocked 22 VALUE USR-Call-Event-Code outOfService 23 VALUE USR-Call-Event-Code busy 24 VALUE USR-Call-Event-Code congestion 25 VALUE USR-Call-Event-Code protocolError 26 VALUE USR-Call-Event-Code noFreeBchannel 27 VALUE USR-Call-Event-Code inOutCallCollision 28 VALUE USR-Call-Event-Code inCallArrival 29 VALUE USR-Call-Event-Code outCallArrival 30 VALUE USR-Call-Event-Code inCallConnect 31 VALUE USR-Call-Event-Code outCallConnect 32 VALUE USR-HARC-Disconnect-Code No-Error 0 VALUE USR-HARC-Disconnect-Code No-Carrier 1 VALUE USR-HARC-Disconnect-Code No-DSR 2 VALUE USR-HARC-Disconnect-Code Timeout 3 VALUE USR-HARC-Disconnect-Code Reset 4 VALUE USR-HARC-Disconnect-Code Call-Drop-Req 5 VALUE USR-HARC-Disconnect-Code Idle-Timeout 6 VALUE USR-HARC-Disconnect-Code Session-Timeout 7 VALUE USR-HARC-Disconnect-Code User-Req-Drop 8 VALUE USR-HARC-Disconnect-Code Host-Req-Drop 9 VALUE USR-HARC-Disconnect-Code Service-Interruption 10 VALUE USR-HARC-Disconnect-Code Service-Unavailable 11 VALUE USR-HARC-Disconnect-Code User-Input-Error 12 VALUE USR-HARC-Disconnect-Code NAS-Drop-For-Callback 13 VALUE USR-HARC-Disconnect-Code NAS-Drop-Misc-Non-Error 14 VALUE USR-HARC-Disconnect-Code NAS-Internal-Error 15 VALUE USR-HARC-Disconnect-Code Line-Busy 16 VALUE USR-HARC-Disconnect-Code RESERVED 17 VALUE USR-HARC-Disconnect-Code RESERVED 18 VALUE USR-HARC-Disconnect-Code Tunnel-Term-Unreach 19 VALUE USR-HARC-Disconnect-Code Tunnel-Refused 20 VALUE USR-HARC-Disconnect-Code Tunnel-Auth-Failed 21 VALUE USR-HARC-Disconnect-Code Tunnel-Session-Timeout 22 VALUE USR-HARC-Disconnect-Code Tunnel-Timeout 23 VALUE USR-HARC-Disconnect-Code RESERVED 24 VALUE USR-HARC-Disconnect-Code Radius-Res-Reclaim 25 VALUE USR-HARC-Disconnect-Code DNIS-Auth-Failed 26 VALUE USR-HARC-Disconnect-Code PAP-Auth-Failure 27 VALUE USR-HARC-Disconnect-Code CHAP-Auth-Failure 28 VALUE USR-HARC-Disconnect-Code PPP-LCP-Failed 29 VALUE USR-HARC-Disconnect-Code PPP-NCP-Failed 30 VALUE USR-HARC-Disconnect-Code Radius-Timeout 31 VALUE USR-CCP-Algorithm NONE 1 VALUE USR-CCP-Algorithm Stac 2 VALUE USR-CCP-Algorithm MS 3 VALUE USR-CCP-Algorithm Any 4 VALUE USR-Tunnel-Security None 0 VALUE USR-Tunnel-Security Control-Only 1 VALUE USR-Tunnel-Security Data-Only 2 VALUE USR-Tunnel-Security Both-Data-and-Control 3 VALUE USR-RMMIE-Status notEnabledInLocalModem 1 VALUE USR-RMMIE-Status notDetectedInRemoteModem 2 VALUE USR-RMMIE-Status ok 3 VALUE USR-RMMIE-x2-Status notOperational 1 VALUE USR-RMMIE-x2-Status operational 2 VALUE USR-RMMIE-x2-Status x2Disabled 3 VALUE USR-RMMIE-x2-Status v8Disabled 4 VALUE USR-RMMIE-x2-Status remote3200Disabled 5 VALUE USR-RMMIE-x2-Status invalidSpeedSetting 6 VALUE USR-RMMIE-x2-Status v8NotDetected 7 VALUE USR-RMMIE-x2-Status x2NotDetected 8 VALUE USR-RMMIE-x2-Status incompatibleVersion 9 VALUE USR-RMMIE-x2-Status incompatibleModes 10 VALUE USR-RMMIE-x2-Status local3200Disabled 11 VALUE USR-RMMIE-x2-Status excessHighFrequencyAtten 12 VALUE USR-RMMIE-x2-Status connectNotSupport3200 13 VALUE USR-RMMIE-x2-Status retrainBeforeConnection 14 VALUE USR-RMMIE-Planned-Disconnect none 1 VALUE USR-RMMIE-Planned-Disconnect dteNotReady 2 VALUE USR-RMMIE-Planned-Disconnect dteInterfaceError 3 VALUE USR-RMMIE-Planned-Disconnect dteRequest 4 VALUE USR-RMMIE-Planned-Disconnect escapeToOnlineCommandMode 5 VALUE USR-RMMIE-Planned-Disconnect athCommand 6 VALUE USR-RMMIE-Planned-Disconnect inactivityTimeout 7 VALUE USR-RMMIE-Planned-Disconnect arqProtocolError 8 VALUE USR-RMMIE-Planned-Disconnect arqProtocolRetransmitLim 9 VALUE USR-RMMIE-Planned-Disconnect invalidComprDataCodeword 10 VALUE USR-RMMIE-Planned-Disconnect invalidComprDataStringLen 11 VALUE USR-RMMIE-Planned-Disconnect invalidComprDataCommand 12 VALUE USR-RMMIE-Last-Update-Event none 1 VALUE USR-RMMIE-Last-Update-Event initialConnection 2 VALUE USR-RMMIE-Last-Update-Event retrain 3 VALUE USR-RMMIE-Last-Update-Event speedShift 4 VALUE USR-RMMIE-Last-Update-Event plannedDisconnect 5 VALUE USR-Request-Type Access-Request 1 VALUE USR-Request-Type Access-Accept 2 VALUE USR-Request-Type Access-Reject 3 VALUE USR-Request-Type Accounting-Request 4 VALUE USR-Request-Type Accounting-Response 5 VALUE USR-Request-Type Access-Password-Change 7 VALUE USR-Request-Type Access-Password-Ack 8 VALUE USR-Request-Type Access-Password-Reject 9 VALUE USR-Request-Type Access-Challenge 11 VALUE USR-Request-Type Status-Server 12 VALUE USR-Request-Type Status-Client 13 VALUE USR-Request-Type Resource-Free-Request 21 VALUE USR-Request-Type Resource-Free-Response 22 VALUE USR-Request-Type Resource-Query-Request 23 VALUE USR-Request-Type Resource-Query-Response 24 VALUE USR-Request-Type Disconnect-User 25 VALUE USR-Request-Type NAS-Reboot-Request 26 VALUE USR-Request-Type NAS-Reboot-Response 27 VALUE USR-Request-Type Tacacs-Message 253 VALUE USR-Request-Type Reserved 255 VALUE NAS-Port-Type Virtual 5 VALUE NAS-Port-Type PIAFS 6 VALUE NAS-Port-Type HDLC-Clear-Channel 7 VALUE NAS-Port-Type X.25 8 VALUE NAS-Port-Type X.75 9 #VALUE Prompt No-Echo 0 #VALUE Prompt Echo 1 VALUE USR-PW_Framed_Routing_V2 Off 0 VALUE USR-PW_Framed_Routing_V2 On 1 VALUE USR-Syslog-Tap Off 0 VALUE USR-Syslog-Tap Raw 1 VALUE USR-Syslog-Tap Framed 2 VALUE USR-Speed-Of-Connection Auto 0 VALUE USR-Speed-Of-Connection 56 1 VALUE USR-Speed-Of-Connection 64 2 VALUE USR-Speed-Of-Connection Voice 3 VALUE USR-Expansion-Algorithm Constant 1 VALUE USR-Expansion-Algorithm Linear 2 VALUE USR-Compression-Algorithm None 0 VALUE USR-Compression-Algorithm Stac 1 VALUE USR-Compression-Algorithm Ascend 2 VALUE USR-Compression-Algorithm Microsoft 3 VALUE USR-Compression-Algorithm Auto 4 VALUE USR-Compression-Reset-Mode Auto 0 VALUE USR-Compression-Reset-Mode Reset-Every-Packet 1 VALUE USR-Compression-Reset-Mode Reset-On-Error 2 VALUE USR-Filter-Zones enabled 1 VALUE USR-Filter-Zones disabled 2 VALUE USR-Bridging enabled 1 VALUE USR-Bridging disabled 2 VALUE USR-Appletalk enabled 1 VALUE USR-Appletalk disabled 2 VALUE USR-Spoofing enabled 1 VALUE USR-Spoofing disabled 2 VALUE USR-Routing-Protocol Rip1 1 VALUE USR-Routing-Protocol Rip2 2 VALUE USR-IPX-Routing none 0 VALUE USR-IPX-Routing send 1 VALUE USR-IPX-Routing listen 2 VALUE USR-IPX-Routing respond 3 VALUE USR-IPX-Routing all 4 VALUE USR-IPX-WAN enabled 1 VALUE USR-IPX-WAN disabled 2 VALUE USR-IP-Default-Route-Option enabled 1 VALUE USR-IP-Default-Route-Option disabled 2 VALUE USR-IP-RIP-Policies SendDefault 0x0 VALUE USR-IP-RIP-Policies SendRoutes 0x2 VALUE USR-IP-RIP-Policies SendSubnets 0x4 VALUE USR-IP-RIP-Policies AcceptDefault 0x8 VALUE USR-IP-RIP-Policies SplitHorizon 0x10 VALUE USR-IP-RIP-Policies PoisonReserve 0x20 VALUE USR-IP-RIP-Policies FlashUpdate 0x40 VALUE USR-IP-RIP-Policies SimpleAuth 0x80 VALUE USR-IP-RIP-Policies V1Send 0x100 VALUE USR-IP-RIP-Policies V1Receive 0x200 VALUE USR-IP-RIP-Policies V2Receive 0x400 VALUE USR-IP-RIP-Policies Silent 0x80000000 VALUE USR-Callback-Type Normal 1 VALUE USR-Callback-Type ANI 2 VALUE USR-Callback-Type Static 3 VALUE USR-Callback-Type Dynamic 4 VALUE USR-Request-Type Access-Request 1 VALUE USR-Request-Type Access-Accept 2 VALUE USR-Request-Type Access-Reject 3 VALUE USR-Request-Type Accounting-Request 4 VALUE USR-Request-Type Accounting-Response 5 # The next three non standard packet types are used by # US Robotics Security/Accounting Server VALUE USR-Request-Type Access-Password-Change 7 VALUE USR-Request-Type Access-Password-Ack 8 VALUE USR-Request-Type Access-Password-Reject 9 VALUE USR-Request-Type Access-Challenge 11 VALUE USR-Request-Type Status-Server 12 VALUE USR-Request-Type Status-Client 13 # Non standard packet types used by NetServer to implement # resource management and NAS reboot conditions VALUE USR-Request-Type Resource-Free-Request 21 VALUE USR-Request-Type Resource-Free-Response 22 VALUE USR-Request-Type Resource-Query-Request 23 VALUE USR-Request-Type Resource-Query-Response 24 VALUE USR-Request-Type Disconnect-User 25 VALUE USR-Request-Type NAS-Reboot-Request 26 VALUE USR-Request-Type NAS-Reboot-Response 27 # This value is used for Tacacs Plus translation VALUE USR-Request-Type Tacacs-Message 253 VALUE USR-Request-Type Reserved 255 VALUE USR-NAS-Type 3Com-NMC 0 VALUE USR-NAS-Type 3Com-NETServer 1 VALUE USR-NAS-Type 3Com-HiPerArc 2 VALUE USR-NAS-Type TACACS+-Server 3 VALUE USR-NAS-Type 3Com-SA-Server 4 VALUE USR-NAS-Type Ascend 5 VALUE USR-NAS-Type Generic-RADIUS 6 VALUE USR-NAS-Type 3Com-NETBuilder-II 7 VALUE USR-Auth-Mode Auth-3Com 0 VALUE USR-Auth-Mode Auth-Ace 1 VALUE USR-Auth-Mode Auth-Safeword 2 VALUE USR-Auth-Mode Auth-UNIX-PW 3 VALUE USR-Auth-Mode Auth-Defender 4 VALUE USR-Auth-Mode Auth-TACACSP 5 VALUE USR-Auth-Mode Auth-Netware 6 VALUE USR-Auth-Mode Auth-Skey 7 VALUE USR-Auth-Mode Auth-EAP-Proxy 8 VALUE USR-Auth-Mode Auth-UNIX-Crypt 9 Authen-Radius-0.24/raddb/dictionary.versanet000066400000000000000000000041451223417003600211040ustar00rootroot00000000000000# # dictionary.versanet Vendor specfic attributes for versanet # # # VersaNet Communications, Inc. # Http://www.versa-net.com # # #Versanet add Vendor specific terminal cause in our radius group. #You can follow this to set it in NAS box. # # >> gr radius # >> sh # >> set 34 23 # >> co # #This will let our unit transfer every detail terminal cause #information to Redius server's accounting log file and #save as "Vendor Specific=Terminate Cause". # # Version: @(#)dictionary.versanet 1.00 22-Jul-1999 support@versanetcomm.com # VENDOR Versanet 2180 ATTRIBUTE Versanet-Termination-Cause 1 integer Versanet VALUE Versanet-Termination-Cause Normal-Hangup-No-Error-Occurred 0 VALUE Versanet-Termination-Cause Call-Waiting-Caused-Disconnect 3 VALUE Versanet-Termination-Cause Physical-Carrier-Loss 4 VALUE Versanet-Termination-Cause No-err-correction-at-other-end 5 VALUE Versanet-Termination-Cause No-resp-to-feature-negotiation 6 VALUE Versanet-Termination-Cause 1st-modem-async-only-2nd-sync 7 VALUE Versanet-Termination-Cause No-framing-technique-in-common 8 VALUE Versanet-Termination-Cause No-protocol-in-common 9 VALUE Versanet-Termination-Cause Bad-resp-to-feature-negotiation 10 VALUE Versanet-Termination-Cause No-sync-info-from-remote-modem 11 VALUE Versanet-Termination-Cause Normal-Hangup-by-Remote-modem 12 VALUE Versanet-Termination-Cause Retransmission-limit-reached 13 VALUE Versanet-Termination-Cause Protocol-violation-occurred 14 VALUE Versanet-Termination-Cause Lost-DTR 15 VALUE Versanet-Termination-Cause Received-GSTN-cleardown 16 VALUE Versanet-Termination-Cause Inactivity-timeout 17 VALUE Versanet-Termination-Cause Speed-not-supported 18 VALUE Versanet-Termination-Cause Long-space-disconnect 19 VALUE Versanet-Termination-Cause Key-abort-disconnect 20 VALUE Versanet-Termination-Cause Clears-previous-disc-reason 21 VALUE Versanet-Termination-Cause No-connection-established 22 VALUE Versanet-Termination-Cause Disconnect-after-three-retrains 23 Authen-Radius-0.24/raddb/dictionary.xtradius000066400000000000000000000006571223417003600211240ustar00rootroot00000000000000# # Xtradius specific attributes # Version 1.1 - # # Xtradius < 1.1 uses these lines #ATTRIBUTE Exec-Program-Account 1142 string #ATTRIBUTE Exec-Program-Nas 1143 string #ATTRIBUTE Exec-Program-Log 1144 string # # Use these lines with 1.1 ATTRIBUTE Exec-Program-Account 942 string ATTRIBUTE Exec-Program-Nas 943 string ATTRIBUTE Exec-Program-Log 944 string ATTRIBUTE Radius-Shared-Secret 945 string VALUE Auth-Type External 252 Authen-Radius-0.24/test.pl000066400000000000000000000032301223417003600154200ustar00rootroot00000000000000# Before `make install' is performed this script should be runnable with # `make test'. After `make install' it should work as `perl test.pl' use strict; use warnings; use Getopt::Long; use Test::More tests => 6; BEGIN { use_ok('Authen::Radius'); } require_ok('Authen::Radius'); my $interactive = 0; my $verbose = 0; GetOptions( "interactive!" => \$interactive, "verbose+" => \$verbose ); SKIP: { skip( "Non-interactive mode", 3 ) unless ($interactive); print "Make sure this machine is in your Radius clients file!\n"; print "Enter hostname[:port] of your Radius server: "; chomp( my $host = ); print "Enter shared-secret of your Radius server: "; chomp( my $secret = ); print "Enter a username to be validated: "; chomp( my $user = ); print "Enter this user's password: "; chomp( my $pwd = ); my $r = new_ok( 'Authen::Radius' => [ Host => $host, Secret => $secret, Debug => $verbose, ], ); # Authen::Radius->load_dictionary(); my $result = $r->check_pwd( $user, $pwd ); ok($result); my @attributes = $r->get_attributes(); cmp_ok( $#attributes, '!=', -1 ); } # Convert each two-digit hex number back to an ASCII character. sub hex_to_ascii { my $str = shift; return $str unless ( defined $str ); $str =~ s/([a-fA-F0-9]{2})/chr(hex $1)/eg; return $str; } my $key = "Jefe"; my $data = "what do ya want for nothing?"; my $etalon_digest = hex_to_ascii("750c783e6ab0b503eaa86e310a5db738"); my $digest = Authen::Radius::hmac_md5( undef, $data, $key ); cmp_ok( $digest, 'eq', $etalon_digest );