#!/usr/bin/perl
$snmpget="/usr/local/bin/snmpget";
$snmpwalk="/usr/local/bin/snmpwalk";
$nas=shift;
$user=shift;
$com=shift || "public";
$type=shift|| "xml";
@ModulationScheme = (
"error",
"unknown",
"bell103a",
"bell212a",
"v21",
"v22",
"v22bis",
"v32",
"v32bis",
"vfc",
"v34",
"v17",
"v29",
"v33",
"k56flex",
"v23",
"v32terbo",
"v34plus",
"v90",
"v27ter",
);
@Protocol = (
"error",
"normal",
"direct",
"reliableMNP",
"reliableLAPM",
"syncMode",
"asyncMode",
"ara10",
"ara20",
"unknown",
);
$modem=`$snmpwalk $nas $com enterprises.9.2.9.2.1.18 | grep $user`;
if($modem=~/enterprises\.9\.2\.9\.2\.1\.18\.(\d+) =/){
$modem=$1;
$slot=(1+int($modem/120));
$port=$modem%120-1;
$modem="$slot.$port";
$duration=`$snmpget $nas $com enterprises.9.9.47.1.3.1.1.9.$modem` or die "No MIB\n";
$duration=~/\) (.*)\./;
$duration=$1;
$modulation=`$snmpget $nas $com enterprises.9.9.47.1.3.1.1.12.$modem` or die "No MIB\n";
$modulation=~/ \= (\d+)/;
$modulation=$ModulationScheme[$1];
$protocol=`$snmpget $nas $com enterprises.9.9.47.1.3.1.1.13.$modem` or die "No MIB\n";
$protocol=~/ \= (\d+)/;
$protocol=$Protocol[$1];
$txrate=`$snmpget $nas $com enterprises.9.9.47.1.3.1.1.14.$modem` or die "No MIB\n";
$txrate=~/Gauge32\: (\d+)/;
$txrate=$1;
$rxrate=`$snmpget $nas $com enterprises.9.9.47.1.3.1.1.15.$modem` or die "No MIB\n";
$rxrate=~/Gauge32\: (\d+)/;
$rxrate=$1;
$rxsignal=`$snmpget $nas $com enterprises.9.9.47.1.3.1.1.17.$modem` or die "No MIB\n";
$rxsignal=~/ \= (.*)\n/;
$rxsignal=$1;
if($type eq "xml"){
print"$modulation$protocol$txrate$rxrate$rxsignal\n";
}else{
print "Duration>\t$duration\n";
print "Modulation>\t$modulation\n";
print "Protocol>\t$protocol\n";
print "TxRate>\t\t$txrate\n";
print "RxRate>\t\t$rxrate\n";
print "RxSignal>\t$rxsignal dbm\n";
}
}